├── .gitignore ├── .gitattributes ├── screenshots └── es6.png ├── Symbol List Banned.YAML-tmPreferences ├── Comments.YAML-tmPreferences ├── JavaScript Indent.YAML-tmPreferences ├── Symbol List Function.YAML-tmPreferences ├── Symbol List Banned.tmPreferences ├── JavaScript Indent.tmPreferences ├── Symbol List Function.tmPreferences ├── Comments.tmPreferences ├── LICENSE ├── README.md ├── Regular Expressions (JavaScriptNext).YAML-tmLanguage ├── JSON (JavaScriptNext).YAML-tmLanguage ├── Monokai Phoenix.YAML-tmTheme ├── Regular Expressions (JavaScriptNext).tmLanguage ├── JSON (JavaScriptNext).tmLanguage ├── Monokai Phoenix.tmTheme ├── Next.YAML-tmTheme ├── JavaScriptNext.YAML-tmLanguage └── Next.tmTheme /.gitignore: -------------------------------------------------------------------------------- 1 | /*.cache 2 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | # Auto detect text files and perform LF normalization 2 | * text=auto -------------------------------------------------------------------------------- /screenshots/es6.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Benvie/JavaScriptNext.tmLanguage/HEAD/screenshots/es6.png -------------------------------------------------------------------------------- /Symbol List Banned.YAML-tmPreferences: -------------------------------------------------------------------------------- 1 | # [PackageDev] target_format: plist, ext: tmPreferences 2 | name: Symbol List Banned 3 | uuid: 71B2B356-23EC-43B8-80A7-CB32E8F2718F 4 | scope: source.js meta.function-call, source.js meta.instance.constructor 5 | settings: 6 | showInSymbolList: '0' 7 | showInIndexedSymbolList: '1' 8 | -------------------------------------------------------------------------------- /Comments.YAML-tmPreferences: -------------------------------------------------------------------------------- 1 | # [PackageDev] target_format: plist, ext: tmPreferences 2 | name: Comments 3 | uuid: A67A8BD9-A951-406F-9175-018DD4B52FD1 4 | scope: source.js, source.json 5 | settings: 6 | shellVariables: 7 | - name: TM_COMMENT_START 8 | value: '// ' 9 | - name: TM_COMMENT_START_2 10 | value: /* 11 | - name: TM_COMMENT_END_2 12 | value: '*/' 13 | -------------------------------------------------------------------------------- /JavaScript Indent.YAML-tmPreferences: -------------------------------------------------------------------------------- 1 | # [PackageDev] target_format: plist, ext: tmPreferences 2 | name: JavaScript Indent 3 | uuid: d408c7f9-4402-4a22-98f9-156c144591b7 4 | scope: source.js 5 | settings: 6 | bracketIndentNextLinePattern: >- 7 | (?x) 8 | ^ \s* \b(if|while|else)\b [^;]* $ 9 | | ^ \s* \b(for)\b .* $ 10 | decreaseIndentPattern: ^(.*\*/)?\s*[}].*$ 11 | increaseIndentPattern: ^.*\{[^}"']*$ 12 | -------------------------------------------------------------------------------- /Symbol List Function.YAML-tmPreferences: -------------------------------------------------------------------------------- 1 | # [PackageDev] target_format: plist, ext: tmPreferences 2 | name: Symbol List Function 3 | uuid: B521FCF1-DDA6-4C69-8170-F6C2DE4C86CD 4 | scope: source.js meta.function, source.js meta.accessor.js, source.js meta.method.js, source.js meta.prototype.function.js, source.js meta.prototype.function.arrow.js, source.js meta.class.js entity.name.class.js 5 | settings: 6 | showInSymbolList: '1' 7 | showInIndexedSymbolList: '1' 8 | symbolTransformation: s/\s+/ /g; 9 | -------------------------------------------------------------------------------- /Symbol List Banned.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Symbol List Banned 7 | scope 8 | source.js meta.function-call, source.js meta.instance.constructor 9 | settings 10 | 11 | showInIndexedSymbolList 12 | 1 13 | showInSymbolList 14 | 0 15 | 16 | uuid 17 | 71B2B356-23EC-43B8-80A7-CB32E8F2718F 18 | 19 | 20 | -------------------------------------------------------------------------------- /JavaScript Indent.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | JavaScript Indent 7 | scope 8 | source.js 9 | settings 10 | 11 | bracketIndentNextLinePattern 12 | (?x) 13 | ^ \s* \b(if|while|else)\b [^;]* $ 14 | | ^ \s* \b(for)\b .* $ 15 | decreaseIndentPattern 16 | ^(.*\*/)?\s*[}].*$ 17 | increaseIndentPattern 18 | ^.*\{[^}"']*$ 19 | 20 | uuid 21 | d408c7f9-4402-4a22-98f9-156c144591b7 22 | 23 | 24 | -------------------------------------------------------------------------------- /Symbol List Function.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Symbol List Function 7 | scope 8 | source.js meta.function, source.js meta.accessor.js, source.js meta.method.js, source.js meta.prototype.function.js, source.js meta.prototype.function.arrow.js, source.js meta.class.js entity.name.class.js 9 | settings 10 | 11 | showInIndexedSymbolList 12 | 1 13 | showInSymbolList 14 | 1 15 | symbolTransformation 16 | s/\s+/ /g; 17 | 18 | uuid 19 | B521FCF1-DDA6-4C69-8170-F6C2DE4C86CD 20 | 21 | 22 | -------------------------------------------------------------------------------- /Comments.tmPreferences: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Comments 7 | scope 8 | source.js, source.json 9 | settings 10 | 11 | shellVariables 12 | 13 | 14 | name 15 | TM_COMMENT_START 16 | value 17 | // 18 | 19 | 20 | name 21 | TM_COMMENT_START_2 22 | value 23 | /* 24 | 25 | 26 | name 27 | TM_COMMENT_END_2 28 | value 29 | */ 30 | 31 | 32 | 33 | uuid 34 | A67A8BD9-A951-406F-9175-018DD4B52FD1 35 | 36 | 37 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2015 simonzack, zertosh, benvie 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # JavaScript.tmLanguage 2 | Better JavaScript language definition for TextMate and SublimeText. This builds on the language files commonly used and adds more fine grained matching and also includes new features from ECMAScript 6 like modules, succinct methods, arrow functions, classes, generators, and accessors (ES5). 3 | 4 | ## Installation and Use 5 | 6 | If you haven't already, [install Package Control](https://sublime.wbond.net/installation), then select `JavaScript Next` from the `Package Control: Install Package` dropdown list in the Command Palette. 7 | 8 | To set this as your default JavaScript syntax, open a javascript file, then select `View -> Syntax -> Open all with current extension as... -> JavascriptNext`. 9 | 10 | You may also need to change the ColorScheme. Pick one from `Preferences -> Color Scheme -> JavaScriptNext`. 11 | 12 | ## Screenshots 13 | 14 | ![screenshot](https://raw.github.com/Benvie/JavaScriptNext.tmLanguage/master/screenshots/es6.png) 15 | 16 | ## Contributing 17 | 18 | Edit the yaml files with the `YAML-XXX` extensions, convert them to plist xml files, and send in a pull request. The easiest way to do this is by using [AAAPackageDev](https://github.com/SublimeText/AAAPackageDev). You can do all of the above without leaving sublime text. 19 | 20 | YAML is used since it's a lot more compact and easier to edit than xml. -------------------------------------------------------------------------------- /Regular Expressions (JavaScriptNext).YAML-tmLanguage: -------------------------------------------------------------------------------- 1 | # [PackageDev] target_format: plist, ext: tmLanguage 2 | name: Regular Expressions (Javascript Next) 3 | scopeName: source.regexp.js 4 | fileTypes: [re] 5 | uuid: 6D74161E-E1A2-4AF3-922D-759E88DEFF63 6 | foldingStartMarker: (/\*|\{|\() 7 | foldingStopMarker: (\*/|\}|\)) 8 | 9 | patterns: 10 | - include: '#anchor' 11 | - include: '#backref' 12 | - include: '#quantifier' 13 | - include: '#operator' 14 | - include: '#group-assertion' 15 | - include: '#group-definition' 16 | - include: '#character-class' 17 | - include: '#character-class-definition' 18 | 19 | repository: 20 | anchor: 21 | patterns: 22 | - name: keyword.control.anchor.regexp 23 | match: \\[bB]|\^|\$ 24 | 25 | backref: 26 | patterns: 27 | - name: keyword.other.back-reference.regexp 28 | match: \\[1-9][0-9]* 29 | 30 | quantifier: 31 | patterns: 32 | - name: keyword.operator.quantifier.regexp 33 | match: '(\?|\*\??|\+\??)|\{(\d+,\d+|\d+,|\d+)\}' 34 | 35 | operator: 36 | patterns: 37 | - name: keyword.operator.or.regexp 38 | match: \| 39 | 40 | group-assertion: 41 | patterns: 42 | - name: meta.group.assertion.regexp 43 | begin: (\()((\?=)|(\?!)) 44 | beginCaptures: 45 | '1': {name: punctuation.definition.group.regexp} 46 | '2': {name: punctuation.definition.group.assertion.regexp} 47 | '3': {name: meta.assertion.look-ahead.regexp} 48 | '4': {name: meta.assertion.negative-look-ahead.regexp} 49 | end: (\)) 50 | endCaptures: 51 | '1': {name: punctuation.definition.group.regexp} 52 | patterns: 53 | - include: $self 54 | 55 | group-definition: 56 | patterns: 57 | - name: meta.group.regexp 58 | begin: (\()((\?:))? 59 | beginCaptures: 60 | '1': {name: punctuation.definition.group.regexp} 61 | '3': {name: punctuation.definition.group.capture.regexp} 62 | '5': {name: punctuation.definition.group.capture.regexp} 63 | '6': {name: punctuation.definition.group.no-capture.regexp} 64 | end: (\)) 65 | endCaptures: 66 | '1': {name: punctuation.definition.group.regexp} 67 | patterns: 68 | - include: $self 69 | 70 | character-class: 71 | patterns: 72 | - name: constant.other.character-class.escape.backslash.regexp 73 | match: \\[wWsSdD]|\. 74 | 75 | - name: constant.character.escape.backslash.regexp 76 | match: \\([trnvf0\\]|c[A-Z]|x[\da-fA-F]{2}|u[\da-fA-F]{4}|.) 77 | 78 | character-class-definition: 79 | patterns: 80 | - name: constant.other.character-class.set.regexp 81 | begin: (\[)(\^)? 82 | beginCaptures: 83 | '1': {name: punctuation.definition.character-class.regexp} 84 | '2': {name: keyword.operator.negation.regexp} 85 | end: (\]) 86 | endCaptures: 87 | '1': {name: punctuation.definition.character-class.regexp} 88 | patterns: 89 | - include: '#character-class' 90 | - name: constant.other.character-class.range.regexp 91 | match: >- 92 | (?x) 93 | ( 94 | (\\[wWsSdD]|\.)| 95 | (\\([trnvf0]|c[A-Z]|x[\da-fA-F]{2}|u[\da-fA-F]{4}|.)) 96 | )\- 97 | ( 98 | (\\[wWsSdD]|\.)| 99 | (\\([trnvf0]|c[A-Z]|x[\da-fA-F]{2}|u[\da-fA-F]{4}|.)) 100 | ) 101 | captures: 102 | '2': {name: constant.other.character-class.escape.backslash.regexp} 103 | '3': {name: constant.character.escape.backslash.regexp} 104 | '5': {name: constant.other.character-class.escape.backslash.regexp} 105 | '6': {name: constant.character.escape.backslash.regexp} 106 | -------------------------------------------------------------------------------- /JSON (JavaScriptNext).YAML-tmLanguage: -------------------------------------------------------------------------------- 1 | # [PackageDev] target_format: plist, ext: tmLanguage 2 | name: JSON (Javascript Next) 3 | scopeName: source.json 4 | fileTypes: [json, sublime-settings, sublime-menu, sublime-keymap, sublime-mousemap, 5 | sublime-theme, sublime-build, sublime-project, sublime-completions] 6 | uuid: 8f97457b-516e-48ce-83c7-08ae12fb327a 7 | foldingStartMarker: >- 8 | (?x) # turn on extended mode 9 | ^ # a line beginning with 10 | \s* # some optional space 11 | [{\[] # the start of an object or array 12 | (?! # but not followed by 13 | .* # whatever 14 | [}\]] # and the close of an object or array 15 | ,? # an optional comma 16 | \s* # some optional space 17 | $ # at the end of the line 18 | ) 19 | | # ...or... 20 | [{\[] # the start of an object or array 21 | \s* # some optional space 22 | $ # at the end of the line 23 | foldingStopMarker: >- 24 | (?x) # turn on extended mode 25 | ^ # a line beginning with 26 | \s* # some optional space 27 | [}\]] # and the close of an object or array 28 | keyEquivalent: ^~J 29 | 30 | patterns: 31 | - include: '#value' 32 | 33 | repository: 34 | array: 35 | name: meta.structure.array.json 36 | begin: \[ 37 | beginCaptures: 38 | '0': {name: punctuation.definition.array.begin.json} 39 | end: \] 40 | endCaptures: 41 | '0': {name: punctuation.definition.array.end.json} 42 | patterns: 43 | - include: '#value' 44 | - name: punctuation.separator.array.json 45 | match: ',' 46 | - name: invalid.illegal.expected-array-separator.json 47 | match: '[^\s\]]' 48 | 49 | comments: 50 | patterns: 51 | - name: comment.block.documentation.json 52 | begin: /\*\* 53 | end: \*/ 54 | captures: 55 | '0': {name: punctuation.definition.comment.json} 56 | - name: comment.block.json 57 | begin: /\* 58 | end: \*/ 59 | captures: 60 | '0': {name: punctuation.definition.comment.json} 61 | - name: comment.line.double-slash.js 62 | match: (//).*$\n? 63 | captures: 64 | '1': {name: punctuation.definition.comment.json} 65 | 66 | constant: 67 | name: constant.language.json 68 | match: \b(?:true|false|null)\b 69 | 70 | # handles integer and decimal numbers 71 | number: 72 | name: constant.numeric.json 73 | match: >- 74 | (?x) # turn on extended mode 75 | -? # an optional minus 76 | (?: 77 | 0 # a zero 78 | | # ...or... 79 | [1-9] # a 1-9 character 80 | \d* # followed by zero or more digits 81 | ) 82 | (?: 83 | (?: 84 | \. # a period 85 | \d+ # followed by one or more digits 86 | )? 87 | (?: 88 | [eE] # an e character 89 | [+-]? # followed by an option +/- 90 | \d+ # followed by one or more digits 91 | )? # make exponent optional 92 | )? # make decimal portion optional 93 | 94 | # a JSON object 95 | object: 96 | name: meta.structure.dictionary.json 97 | begin: \{ 98 | beginCaptures: 99 | '0': {name: punctuation.definition.dictionary.begin.json} 100 | end: \} 101 | endCaptures: 102 | '0': {name: punctuation.definition.dictionary.end.json} 103 | patterns: 104 | - comment: the JSON object key 105 | include: '#string' 106 | - include: '#comments' 107 | - name: meta.structure.dictionary.value.json 108 | begin: ':' 109 | beginCaptures: 110 | '0': {name: punctuation.separator.dictionary.key-value.json} 111 | end: (,)|(?=\}) 112 | endCaptures: 113 | '1': {name: punctuation.separator.dictionary.pair.json} 114 | patterns: 115 | - comment: the JSON object value 116 | include: '#value' 117 | - name: invalid.illegal.expected-dictionary-separator.json 118 | match: '[^\s,]' 119 | - name: invalid.illegal.expected-dictionary-separator.json 120 | match: '[^\s\}]' 121 | 122 | string: 123 | name: string.quoted.double.json 124 | begin: '"' 125 | beginCaptures: 126 | '0': {name: punctuation.definition.string.begin.json} 127 | end: '"' 128 | endCaptures: 129 | '0': {name: punctuation.definition.string.end.json} 130 | patterns: 131 | - name: constant.character.escape.json 132 | match: >- 133 | (?x) # turn on extended mode 134 | \\ # a literal backslash 135 | (?: # ...followed by... 136 | ["\\/bfnrt] # one of these characters 137 | | # ...or... 138 | u # a u 139 | [0-9a-fA-F]{4}) # and four hex digits 140 | - name: invalid.illegal.unrecognized-string-escape.json 141 | match: \\. 142 | 143 | # the 'value' diagram at http://json.org 144 | value: 145 | patterns: 146 | - include: '#constant' 147 | - include: '#number' 148 | - include: '#string' 149 | - include: '#array' 150 | - include: '#object' 151 | - include: '#comments' 152 | -------------------------------------------------------------------------------- /Monokai Phoenix.YAML-tmTheme: -------------------------------------------------------------------------------- 1 | # [PackageDev] target_format: plist, ext: tmTheme 2 | name: Monokai Phoenix 3 | uuid: 5815b34d-fb7d-4593-bf0c-4f41f8b1f0a9 4 | 5 | settings: 6 | - settings: 7 | activeGuide: '#9D550FB0' 8 | background: '#111111' 9 | bracketContentsForeground: '#F8F8F2A5' 10 | bracketContentsOptions: underline 11 | bracketsForeground: '#F8F8F2A5' 12 | bracketsOptions: underline 13 | caret: '#F8F8F0' 14 | findHighlight: '#FFE792' 15 | findHighlightForeground: '#000000' 16 | foreground: '#F8F8F2' 17 | invisibles: '#3B3A32' 18 | lineHighlight: '#3E3D32' 19 | selection: '#49483E' 20 | selectionBorder: '#222218' 21 | tagsOptions: stippled_underline 22 | 23 | - name: comment 24 | scope: comment 25 | settings: 26 | fontStyle: italic 27 | foreground: '#75715E' 28 | 29 | - name: String 30 | scope: string 31 | settings: 32 | foreground: '#E6DB74' 33 | 34 | - name: Built-in constant 35 | scope: constant.language 36 | settings: 37 | foreground: '#AE81FF' 38 | 39 | - name: User-defined constant 40 | scope: constant.character, constant.other 41 | settings: 42 | foreground: '#AE81FF' 43 | 44 | - name: Invalid 45 | scope: invalid 46 | settings: 47 | background: '#F92672' 48 | 49 | - name: constant 50 | scope: constant 51 | settings: 52 | foreground: '#AE81FFA0' 53 | 54 | - name: Keyword 55 | scope: keyword 56 | settings: 57 | foreground: '#F92672' 58 | 59 | - name: constant.numeric 60 | scope: constant.numeric 61 | settings: 62 | foreground: '#AE81FF' 63 | 64 | - name: Storage 65 | scope: storage 66 | settings: 67 | foreground: '#F92672' 68 | 69 | - name: storage.type 70 | scope: storage.type 71 | settings: 72 | foreground: '#66D9EF' 73 | 74 | - name: Support 75 | scope: support 76 | settings: 77 | foreground: '#8A5C8DFF' 78 | 79 | - name: Function arg 80 | scope: meta.function.argument, variable.parameter, meta.parens.c 81 | settings: 82 | foreground: '#FD971F' 83 | 84 | - name: invalid.illegal 85 | scope: invalid.illegal 86 | settings: 87 | background: '#562D56BF' 88 | foreground: '#FD5FF1FF' 89 | 90 | - name: support.function 91 | scope: support.function 92 | settings: 93 | foreground: '#A6E22E' 94 | 95 | - name: meta.tag entity 96 | scope: entity.name.tag 97 | settings: 98 | foreground: '#F92672' 99 | 100 | - name: Attribute 101 | scope: entity.other.attribute-name 102 | settings: 103 | foreground: '#A6E22E' 104 | 105 | - name: entity.arrow.function.js 106 | scope: entity.arrow.function.js 107 | settings: 108 | foreground: '#AA00FF' 109 | 110 | - name: support.class.error.js 111 | scope: support.class.error.js 112 | settings: 113 | foreground: '#FF5522' 114 | 115 | - name: support.class.node.js 116 | scope: support.class.node.js 117 | settings: 118 | foreground: '#1224FE' 119 | 120 | - name: support.keyword.node.js 121 | scope: support.keyword.node.js 122 | settings: 123 | fontStyle: bold 124 | foreground: '#F92672' 125 | 126 | - name: entity.name.module.js, variable.import.parameter.js, variable.other.class.js 127 | scope: entity.name.module.js, variable.import.parameter.js, variable.other.class.js 128 | settings: 129 | foreground: '#A6E22E' 130 | 131 | - name: entity.name.accessor.js 132 | scope: entity.name.accessor.js 133 | settings: 134 | foreground: '#A6E22E' 135 | 136 | - name: entity.name.method.js 137 | scope: entity.name.method.js 138 | settings: 139 | foreground: '#A6E22E' 140 | 141 | - name: meta.method.js 142 | scope: meta.method.js 143 | settings: 144 | foreground: '#FFF' 145 | 146 | - name: support.function 147 | scope: support.function 148 | settings: 149 | foreground: '#66D9EF' 150 | 151 | - name: Function name 152 | scope: entity.name.function 153 | settings: 154 | foreground: '#A6E22E' 155 | 156 | - name: entity.name.class.js 157 | scope: entity.name.class.js 158 | settings: 159 | fontStyle: italic 160 | foreground: '#A6E22E' 161 | 162 | - name: entity.name.extends.js 163 | scope: entity.name.extends.js 164 | settings: 165 | fontStyle: italic 166 | foreground: '#00FF99' 167 | 168 | - name: entity.other.attribute-name.id 169 | scope: entity.other.attribute-name.id 170 | settings: 171 | foreground: '#A6E22E' 172 | 173 | - name: class name 174 | scope: meta.prototype support.class 175 | settings: 176 | foreground: '#A6E22E' 177 | 178 | - name: Library constant 179 | scope: support.constant 180 | settings: 181 | foreground: '#66D9EF' 182 | 183 | - name: Library class/type 184 | scope: support.type, support.class, variable.language 185 | settings: 186 | fontStyle: italic 187 | foreground: '#66D9EF' 188 | 189 | - name: js undefined 190 | scope: constant.language.undefined.js 191 | settings: 192 | foreground: '#AE81FF' 193 | 194 | - name: 'false' 195 | scope: constant.language.boolean.false 196 | settings: 197 | foreground: '#AE81FF' 198 | 199 | - name: 'true' 200 | scope: constant.language.boolean.true 201 | settings: 202 | foreground: '#AE81FF' 203 | 204 | - name: js null 205 | scope: constant.language.null.js 206 | settings: 207 | foreground: '#AE81FF' 208 | 209 | - name: Inherited class 210 | scope: entity.other.inherited-class 211 | settings: 212 | fontStyle: italic underline 213 | foreground: '#A6E22E' 214 | 215 | - name: diff.header 216 | scope: meta.diff, meta.diff.header, entity.name.namespace 217 | settings: 218 | foreground: '#75715E' 219 | 220 | - name: diff.deleted 221 | scope: markup.deleted 222 | settings: 223 | background: '#420E09FF' 224 | foreground: '#F92672' 225 | 226 | - name: diff.changed 227 | scope: markup.changed 228 | settings: 229 | background: '#4A410DFF' 230 | foreground: '#E6DB74' 231 | 232 | - name: diff.inserted 233 | scope: markup.inserted 234 | settings: 235 | background: '#253B22FF' 236 | foreground: '#F8F8F8FF' 237 | 238 | - name: Log Entry 239 | scope: meta.line.entry.logfile, meta.line.exit.logfile 240 | settings: 241 | background: '#EEEEEE29' 242 | foreground: '#F8F8F8FF' 243 | 244 | - name: Log Entry Error 245 | scope: meta.line.error.logfile 246 | settings: 247 | background: '#751012' 248 | foreground: '#F8F8F8' 249 | 250 | - name: JSON String 251 | scope: meta.structure.dictionary.json string.quoted.double 252 | settings: 253 | foreground: '#CFCFC2' 254 | -------------------------------------------------------------------------------- /Regular Expressions (JavaScriptNext).tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | re 8 | 9 | foldingStartMarker 10 | (/\*|\{|\() 11 | foldingStopMarker 12 | (\*/|\}|\)) 13 | name 14 | Regular Expressions (Javascript Next) 15 | patterns 16 | 17 | 18 | include 19 | #anchor 20 | 21 | 22 | include 23 | #backref 24 | 25 | 26 | include 27 | #quantifier 28 | 29 | 30 | include 31 | #operator 32 | 33 | 34 | include 35 | #group-assertion 36 | 37 | 38 | include 39 | #group-definition 40 | 41 | 42 | include 43 | #character-class 44 | 45 | 46 | include 47 | #character-class-definition 48 | 49 | 50 | repository 51 | 52 | anchor 53 | 54 | patterns 55 | 56 | 57 | match 58 | \\[bB]|\^|\$ 59 | name 60 | keyword.control.anchor.regexp 61 | 62 | 63 | 64 | backref 65 | 66 | patterns 67 | 68 | 69 | match 70 | \\[1-9][0-9]* 71 | name 72 | keyword.other.back-reference.regexp 73 | 74 | 75 | 76 | character-class 77 | 78 | patterns 79 | 80 | 81 | match 82 | \\[wWsSdD]|\. 83 | name 84 | constant.other.character-class.escape.backslash.regexp 85 | 86 | 87 | match 88 | \\([trnvf0\\]|c[A-Z]|x[\da-fA-F]{2}|u[\da-fA-F]{4}|.) 89 | name 90 | constant.character.escape.backslash.regexp 91 | 92 | 93 | 94 | character-class-definition 95 | 96 | patterns 97 | 98 | 99 | begin 100 | (\[)(\^)? 101 | beginCaptures 102 | 103 | 1 104 | 105 | name 106 | punctuation.definition.character-class.regexp 107 | 108 | 2 109 | 110 | name 111 | keyword.operator.negation.regexp 112 | 113 | 114 | end 115 | (\]) 116 | endCaptures 117 | 118 | 1 119 | 120 | name 121 | punctuation.definition.character-class.regexp 122 | 123 | 124 | name 125 | constant.other.character-class.set.regexp 126 | patterns 127 | 128 | 129 | include 130 | #character-class 131 | 132 | 133 | captures 134 | 135 | 2 136 | 137 | name 138 | constant.other.character-class.escape.backslash.regexp 139 | 140 | 3 141 | 142 | name 143 | constant.character.escape.backslash.regexp 144 | 145 | 5 146 | 147 | name 148 | constant.other.character-class.escape.backslash.regexp 149 | 150 | 6 151 | 152 | name 153 | constant.character.escape.backslash.regexp 154 | 155 | 156 | match 157 | (?x) 158 | ( 159 | (\\[wWsSdD]|\.)| 160 | (\\([trnvf0]|c[A-Z]|x[\da-fA-F]{2}|u[\da-fA-F]{4}|.)) 161 | )\- 162 | ( 163 | (\\[wWsSdD]|\.)| 164 | (\\([trnvf0]|c[A-Z]|x[\da-fA-F]{2}|u[\da-fA-F]{4}|.)) 165 | ) 166 | name 167 | constant.other.character-class.range.regexp 168 | 169 | 170 | 171 | 172 | 173 | group-assertion 174 | 175 | patterns 176 | 177 | 178 | begin 179 | (\()((\?=)|(\?!)) 180 | beginCaptures 181 | 182 | 1 183 | 184 | name 185 | punctuation.definition.group.regexp 186 | 187 | 2 188 | 189 | name 190 | punctuation.definition.group.assertion.regexp 191 | 192 | 3 193 | 194 | name 195 | meta.assertion.look-ahead.regexp 196 | 197 | 4 198 | 199 | name 200 | meta.assertion.negative-look-ahead.regexp 201 | 202 | 203 | end 204 | (\)) 205 | endCaptures 206 | 207 | 1 208 | 209 | name 210 | punctuation.definition.group.regexp 211 | 212 | 213 | name 214 | meta.group.assertion.regexp 215 | patterns 216 | 217 | 218 | include 219 | $self 220 | 221 | 222 | 223 | 224 | 225 | group-definition 226 | 227 | patterns 228 | 229 | 230 | begin 231 | (\()((\?:))? 232 | beginCaptures 233 | 234 | 1 235 | 236 | name 237 | punctuation.definition.group.regexp 238 | 239 | 3 240 | 241 | name 242 | punctuation.definition.group.capture.regexp 243 | 244 | 5 245 | 246 | name 247 | punctuation.definition.group.capture.regexp 248 | 249 | 6 250 | 251 | name 252 | punctuation.definition.group.no-capture.regexp 253 | 254 | 255 | end 256 | (\)) 257 | endCaptures 258 | 259 | 1 260 | 261 | name 262 | punctuation.definition.group.regexp 263 | 264 | 265 | name 266 | meta.group.regexp 267 | patterns 268 | 269 | 270 | include 271 | $self 272 | 273 | 274 | 275 | 276 | 277 | operator 278 | 279 | patterns 280 | 281 | 282 | match 283 | \| 284 | name 285 | keyword.operator.or.regexp 286 | 287 | 288 | 289 | quantifier 290 | 291 | patterns 292 | 293 | 294 | match 295 | (\?|\*\??|\+\??)|\{(\d+,\d+|\d+,|\d+)\} 296 | name 297 | keyword.operator.quantifier.regexp 298 | 299 | 300 | 301 | 302 | scopeName 303 | source.regexp.js 304 | uuid 305 | 6D74161E-E1A2-4AF3-922D-759E88DEFF63 306 | 307 | 308 | -------------------------------------------------------------------------------- /JSON (JavaScriptNext).tmLanguage: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | fileTypes 6 | 7 | json 8 | sublime-settings 9 | sublime-menu 10 | sublime-keymap 11 | sublime-mousemap 12 | sublime-theme 13 | sublime-build 14 | sublime-project 15 | sublime-completions 16 | 17 | foldingStartMarker 18 | (?x) # turn on extended mode 19 | ^ # a line beginning with 20 | \s* # some optional space 21 | [{\[] # the start of an object or array 22 | (?! # but not followed by 23 | .* # whatever 24 | [}\]] # and the close of an object or array 25 | ,? # an optional comma 26 | \s* # some optional space 27 | $ # at the end of the line 28 | ) 29 | | # ...or... 30 | [{\[] # the start of an object or array 31 | \s* # some optional space 32 | $ # at the end of the line 33 | foldingStopMarker 34 | (?x) # turn on extended mode 35 | ^ # a line beginning with 36 | \s* # some optional space 37 | [}\]] # and the close of an object or array 38 | keyEquivalent 39 | ^~J 40 | name 41 | JSON (Javascript Next) 42 | patterns 43 | 44 | 45 | include 46 | #value 47 | 48 | 49 | repository 50 | 51 | array 52 | 53 | begin 54 | \[ 55 | beginCaptures 56 | 57 | 0 58 | 59 | name 60 | punctuation.definition.array.begin.json 61 | 62 | 63 | end 64 | \] 65 | endCaptures 66 | 67 | 0 68 | 69 | name 70 | punctuation.definition.array.end.json 71 | 72 | 73 | name 74 | meta.structure.array.json 75 | patterns 76 | 77 | 78 | include 79 | #value 80 | 81 | 82 | match 83 | , 84 | name 85 | punctuation.separator.array.json 86 | 87 | 88 | match 89 | [^\s\]] 90 | name 91 | invalid.illegal.expected-array-separator.json 92 | 93 | 94 | 95 | comments 96 | 97 | patterns 98 | 99 | 100 | begin 101 | /\*\* 102 | captures 103 | 104 | 0 105 | 106 | name 107 | punctuation.definition.comment.json 108 | 109 | 110 | end 111 | \*/ 112 | name 113 | comment.block.documentation.json 114 | 115 | 116 | begin 117 | /\* 118 | captures 119 | 120 | 0 121 | 122 | name 123 | punctuation.definition.comment.json 124 | 125 | 126 | end 127 | \*/ 128 | name 129 | comment.block.json 130 | 131 | 132 | captures 133 | 134 | 1 135 | 136 | name 137 | punctuation.definition.comment.json 138 | 139 | 140 | match 141 | (//).*$\n? 142 | name 143 | comment.line.double-slash.js 144 | 145 | 146 | 147 | constant 148 | 149 | match 150 | \b(?:true|false|null)\b 151 | name 152 | constant.language.json 153 | 154 | number 155 | 156 | match 157 | (?x) # turn on extended mode 158 | -? # an optional minus 159 | (?: 160 | 0 # a zero 161 | | # ...or... 162 | [1-9] # a 1-9 character 163 | \d* # followed by zero or more digits 164 | ) 165 | (?: 166 | (?: 167 | \. # a period 168 | \d+ # followed by one or more digits 169 | )? 170 | (?: 171 | [eE] # an e character 172 | [+-]? # followed by an option +/- 173 | \d+ # followed by one or more digits 174 | )? # make exponent optional 175 | )? # make decimal portion optional 176 | name 177 | constant.numeric.json 178 | 179 | object 180 | 181 | begin 182 | \{ 183 | beginCaptures 184 | 185 | 0 186 | 187 | name 188 | punctuation.definition.dictionary.begin.json 189 | 190 | 191 | end 192 | \} 193 | endCaptures 194 | 195 | 0 196 | 197 | name 198 | punctuation.definition.dictionary.end.json 199 | 200 | 201 | name 202 | meta.structure.dictionary.json 203 | patterns 204 | 205 | 206 | comment 207 | the JSON object key 208 | include 209 | #string 210 | 211 | 212 | include 213 | #comments 214 | 215 | 216 | begin 217 | : 218 | beginCaptures 219 | 220 | 0 221 | 222 | name 223 | punctuation.separator.dictionary.key-value.json 224 | 225 | 226 | end 227 | (,)|(?=\}) 228 | endCaptures 229 | 230 | 1 231 | 232 | name 233 | punctuation.separator.dictionary.pair.json 234 | 235 | 236 | name 237 | meta.structure.dictionary.value.json 238 | patterns 239 | 240 | 241 | comment 242 | the JSON object value 243 | include 244 | #value 245 | 246 | 247 | match 248 | [^\s,] 249 | name 250 | invalid.illegal.expected-dictionary-separator.json 251 | 252 | 253 | 254 | 255 | match 256 | [^\s\}] 257 | name 258 | invalid.illegal.expected-dictionary-separator.json 259 | 260 | 261 | 262 | string 263 | 264 | begin 265 | " 266 | beginCaptures 267 | 268 | 0 269 | 270 | name 271 | punctuation.definition.string.begin.json 272 | 273 | 274 | end 275 | " 276 | endCaptures 277 | 278 | 0 279 | 280 | name 281 | punctuation.definition.string.end.json 282 | 283 | 284 | name 285 | string.quoted.double.json 286 | patterns 287 | 288 | 289 | match 290 | (?x) # turn on extended mode 291 | \\ # a literal backslash 292 | (?: # ...followed by... 293 | ["\\/bfnrt] # one of these characters 294 | | # ...or... 295 | u # a u 296 | [0-9a-fA-F]{4}) # and four hex digits 297 | name 298 | constant.character.escape.json 299 | 300 | 301 | match 302 | \\. 303 | name 304 | invalid.illegal.unrecognized-string-escape.json 305 | 306 | 307 | 308 | value 309 | 310 | patterns 311 | 312 | 313 | include 314 | #constant 315 | 316 | 317 | include 318 | #number 319 | 320 | 321 | include 322 | #string 323 | 324 | 325 | include 326 | #array 327 | 328 | 329 | include 330 | #object 331 | 332 | 333 | include 334 | #comments 335 | 336 | 337 | 338 | 339 | scopeName 340 | source.json 341 | uuid 342 | 8f97457b-516e-48ce-83c7-08ae12fb327a 343 | 344 | 345 | -------------------------------------------------------------------------------- /Monokai Phoenix.tmTheme: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | name 6 | Monokai Phoenix 7 | settings 8 | 9 | 10 | settings 11 | 12 | activeGuide 13 | #9D550FB0 14 | background 15 | #111111 16 | bracketContentsForeground 17 | #F8F8F2A5 18 | bracketContentsOptions 19 | underline 20 | bracketsForeground 21 | #F8F8F2A5 22 | bracketsOptions 23 | underline 24 | caret 25 | #F8F8F0 26 | findHighlight 27 | #FFE792 28 | findHighlightForeground 29 | #000000 30 | foreground 31 | #F8F8F2 32 | invisibles 33 | #3B3A32 34 | lineHighlight 35 | #3E3D32 36 | selection 37 | #49483E 38 | selectionBorder 39 | #222218 40 | tagsOptions 41 | stippled_underline 42 | 43 | 44 | 45 | name 46 | comment 47 | scope 48 | comment 49 | settings 50 | 51 | fontStyle 52 | italic 53 | foreground 54 | #75715E 55 | 56 | 57 | 58 | name 59 | String 60 | scope 61 | string 62 | settings 63 | 64 | foreground 65 | #E6DB74 66 | 67 | 68 | 69 | name 70 | Built-in constant 71 | scope 72 | constant.language 73 | settings 74 | 75 | foreground 76 | #AE81FF 77 | 78 | 79 | 80 | name 81 | User-defined constant 82 | scope 83 | constant.character, constant.other 84 | settings 85 | 86 | foreground 87 | #AE81FF 88 | 89 | 90 | 91 | name 92 | Invalid 93 | scope 94 | invalid 95 | settings 96 | 97 | background 98 | #F92672 99 | 100 | 101 | 102 | name 103 | constant 104 | scope 105 | constant 106 | settings 107 | 108 | foreground 109 | #AE81FFA0 110 | 111 | 112 | 113 | name 114 | Keyword 115 | scope 116 | keyword 117 | settings 118 | 119 | foreground 120 | #F92672 121 | 122 | 123 | 124 | name 125 | constant.numeric 126 | scope 127 | constant.numeric 128 | settings 129 | 130 | foreground 131 | #AE81FF 132 | 133 | 134 | 135 | name 136 | Storage 137 | scope 138 | storage 139 | settings 140 | 141 | foreground 142 | #F92672 143 | 144 | 145 | 146 | name 147 | storage.type 148 | scope 149 | storage.type 150 | settings 151 | 152 | foreground 153 | #66D9EF 154 | 155 | 156 | 157 | name 158 | Support 159 | scope 160 | support 161 | settings 162 | 163 | foreground 164 | #8A5C8DFF 165 | 166 | 167 | 168 | name 169 | Function arg 170 | scope 171 | meta.function.argument, variable.parameter, meta.parens.c 172 | settings 173 | 174 | foreground 175 | #FD971F 176 | 177 | 178 | 179 | name 180 | invalid.illegal 181 | scope 182 | invalid.illegal 183 | settings 184 | 185 | background 186 | #562D56BF 187 | foreground 188 | #FD5FF1FF 189 | 190 | 191 | 192 | name 193 | support.function 194 | scope 195 | support.function 196 | settings 197 | 198 | foreground 199 | #A6E22E 200 | 201 | 202 | 203 | name 204 | meta.tag entity 205 | scope 206 | entity.name.tag 207 | settings 208 | 209 | foreground 210 | #F92672 211 | 212 | 213 | 214 | name 215 | Attribute 216 | scope 217 | entity.other.attribute-name 218 | settings 219 | 220 | foreground 221 | #A6E22E 222 | 223 | 224 | 225 | name 226 | entity.arrow.function.js 227 | scope 228 | entity.arrow.function.js 229 | settings 230 | 231 | foreground 232 | #AA00FF 233 | 234 | 235 | 236 | name 237 | support.class.error.js 238 | scope 239 | support.class.error.js 240 | settings 241 | 242 | foreground 243 | #FF5522 244 | 245 | 246 | 247 | name 248 | support.class.node.js 249 | scope 250 | support.class.node.js 251 | settings 252 | 253 | foreground 254 | #1224FE 255 | 256 | 257 | 258 | name 259 | support.keyword.node.js 260 | scope 261 | support.keyword.node.js 262 | settings 263 | 264 | fontStyle 265 | bold 266 | foreground 267 | #F92672 268 | 269 | 270 | 271 | name 272 | entity.name.module.js, variable.import.parameter.js, variable.other.class.js 273 | scope 274 | entity.name.module.js, variable.import.parameter.js, variable.other.class.js 275 | settings 276 | 277 | foreground 278 | #A6E22E 279 | 280 | 281 | 282 | name 283 | entity.name.accessor.js 284 | scope 285 | entity.name.accessor.js 286 | settings 287 | 288 | foreground 289 | #A6E22E 290 | 291 | 292 | 293 | name 294 | entity.name.method.js 295 | scope 296 | entity.name.method.js 297 | settings 298 | 299 | foreground 300 | #A6E22E 301 | 302 | 303 | 304 | name 305 | meta.method.js 306 | scope 307 | meta.method.js 308 | settings 309 | 310 | foreground 311 | #FFF 312 | 313 | 314 | 315 | name 316 | support.function 317 | scope 318 | support.function 319 | settings 320 | 321 | foreground 322 | #66D9EF 323 | 324 | 325 | 326 | name 327 | Function name 328 | scope 329 | entity.name.function 330 | settings 331 | 332 | foreground 333 | #A6E22E 334 | 335 | 336 | 337 | name 338 | entity.name.class.js 339 | scope 340 | entity.name.class.js 341 | settings 342 | 343 | fontStyle 344 | italic 345 | foreground 346 | #A6E22E 347 | 348 | 349 | 350 | name 351 | entity.name.extends.js 352 | scope 353 | entity.name.extends.js 354 | settings 355 | 356 | fontStyle 357 | italic 358 | foreground 359 | #00FF99 360 | 361 | 362 | 363 | name 364 | entity.other.attribute-name.id 365 | scope 366 | entity.other.attribute-name.id 367 | settings 368 | 369 | foreground 370 | #A6E22E 371 | 372 | 373 | 374 | name 375 | class name 376 | scope 377 | meta.prototype support.class 378 | settings 379 | 380 | foreground 381 | #A6E22E 382 | 383 | 384 | 385 | name 386 | Library constant 387 | scope 388 | support.constant 389 | settings 390 | 391 | foreground 392 | #66D9EF 393 | 394 | 395 | 396 | name 397 | Library class/type 398 | scope 399 | support.type, support.class, variable.language 400 | settings 401 | 402 | fontStyle 403 | italic 404 | foreground 405 | #66D9EF 406 | 407 | 408 | 409 | name 410 | js undefined 411 | scope 412 | constant.language.undefined.js 413 | settings 414 | 415 | foreground 416 | #AE81FF 417 | 418 | 419 | 420 | name 421 | false 422 | scope 423 | constant.language.boolean.false 424 | settings 425 | 426 | foreground 427 | #AE81FF 428 | 429 | 430 | 431 | name 432 | true 433 | scope 434 | constant.language.boolean.true 435 | settings 436 | 437 | foreground 438 | #AE81FF 439 | 440 | 441 | 442 | name 443 | js null 444 | scope 445 | constant.language.null.js 446 | settings 447 | 448 | foreground 449 | #AE81FF 450 | 451 | 452 | 453 | name 454 | Inherited class 455 | scope 456 | entity.other.inherited-class 457 | settings 458 | 459 | fontStyle 460 | italic underline 461 | foreground 462 | #A6E22E 463 | 464 | 465 | 466 | name 467 | diff.header 468 | scope 469 | meta.diff, meta.diff.header, entity.name.namespace 470 | settings 471 | 472 | foreground 473 | #75715E 474 | 475 | 476 | 477 | name 478 | diff.deleted 479 | scope 480 | markup.deleted 481 | settings 482 | 483 | background 484 | #420E09FF 485 | foreground 486 | #F92672 487 | 488 | 489 | 490 | name 491 | diff.changed 492 | scope 493 | markup.changed 494 | settings 495 | 496 | background 497 | #4A410DFF 498 | foreground 499 | #E6DB74 500 | 501 | 502 | 503 | name 504 | diff.inserted 505 | scope 506 | markup.inserted 507 | settings 508 | 509 | background 510 | #253B22FF 511 | foreground 512 | #F8F8F8FF 513 | 514 | 515 | 516 | name 517 | Log Entry 518 | scope 519 | meta.line.entry.logfile, meta.line.exit.logfile 520 | settings 521 | 522 | background 523 | #EEEEEE29 524 | foreground 525 | #F8F8F8FF 526 | 527 | 528 | 529 | name 530 | Log Entry Error 531 | scope 532 | meta.line.error.logfile 533 | settings 534 | 535 | background 536 | #751012 537 | foreground 538 | #F8F8F8 539 | 540 | 541 | 542 | name 543 | JSON String 544 | scope 545 | meta.structure.dictionary.json string.quoted.double 546 | settings 547 | 548 | foreground 549 | #CFCFC2 550 | 551 | 552 | 553 | uuid 554 | 5815b34d-fb7d-4593-bf0c-4f41f8b1f0a9 555 | 556 | 557 | -------------------------------------------------------------------------------- /Next.YAML-tmTheme: -------------------------------------------------------------------------------- 1 | # [PackageDev] target_format: plist, ext: tmTheme 2 | name: Next 3 | uuid: b238c753-1549-3f12-a519-0faa5dcd4f65 4 | 5 | settings: 6 | - settings: 7 | activeGuide: '#3333FFFF' 8 | background: '#000000' 9 | bracketsBackground: '#FF00AA66' 10 | bracketsOptions: background 11 | caret: '#FF0099' 12 | foreground: '#E6E6E6' 13 | guide: '#33333388' 14 | gutter: '#6600FF33' 15 | invisibles: '#404040' 16 | lineHighlight: '#FF009933' 17 | multiEditHighlight: '#00FF0022' 18 | searchHighlight: '#FF00AA99' 19 | selection: '#00FFFF44' 20 | stackGuide: '#333333CC' 21 | 22 | - name: bracket.curly 23 | scope: bracket.curly 24 | settings: 25 | background: '#FF44AA' 26 | foreground: '#3399FF' 27 | 28 | - name: bracket.square 29 | scope: bracket.square 30 | settings: 31 | background: '#2266CC' 32 | foreground: '#FF8800' 33 | 34 | - name: bracket.round 35 | scope: bracket.round 36 | settings: 37 | background: '#9922FF' 38 | foreground: '#00FF00' 39 | 40 | - name: bracket.quote 41 | scope: bracket.quote 42 | settings: 43 | background: '#00FF00' 44 | 45 | - name: comment 46 | scope: comment 47 | settings: 48 | fontStyle: italic 49 | foreground: '#646464FF' 50 | 51 | - name: Invalid 52 | scope: invalid 53 | settings: 54 | background: '#FF000022' 55 | 56 | - name: constant 57 | scope: constant 58 | settings: 59 | foreground: '#3387CCFF' 60 | 61 | - name: Keyword 62 | scope: keyword 63 | settings: 64 | foreground: '#E28964' 65 | 66 | - name: constant.numeric 67 | scope: constant.numeric 68 | settings: 69 | foreground: '#FFFF66' 70 | 71 | - name: Storage 72 | scope: storage 73 | settings: 74 | foreground: '#99CF50' 75 | 76 | - name: storage.modifier 77 | scope: storage.modifier 78 | settings: 79 | foreground: '#CF5099' 80 | 81 | - name: storage.self 82 | scope: storage.self 83 | settings: 84 | fontStyle: bold 85 | foreground: '#CC0033' 86 | 87 | - name: storage.type 88 | scope: storage.type 89 | settings: 90 | foreground: '#CF9950' 91 | 92 | - name: Support 93 | scope: support 94 | settings: 95 | foreground: '#8A5C8DFF' 96 | 97 | - name: entity.name.function 98 | scope: entity.name.function 99 | settings: 100 | foreground: '#BB00FF' 101 | 102 | - name: keyword control 103 | scope: keyword.control 104 | settings: 105 | foreground: '#FF00FF' 106 | 107 | - name: keyword.control.declaration 108 | scope: keyword.control.declaration 109 | settings: 110 | foreground: '#8888AA' 111 | 112 | - name: keyword.control.module 113 | scope: keyword.control.module 114 | settings: 115 | background: '#FFFF3333' 116 | foreground: '#FFFF33' 117 | options: underline 118 | 119 | - name: keyword.control.flow 120 | scope: keyword.control.flow 121 | settings: 122 | background: '#110300' 123 | fontStyle: bold 124 | foreground: '#FF6600' 125 | 126 | - name: keyword.control.conditional 127 | scope: keyword.control.conditional 128 | settings: 129 | foreground: '#FF00FF' 130 | 131 | - name: keyword.control.trycatch 132 | scope: keyword.control.trycatch 133 | settings: 134 | foreground: '#FF0033' 135 | 136 | - name: keyword.control.loop 137 | scope: keyword.control.loop 138 | settings: 139 | foreground: '#009999' 140 | 141 | - name: keyword.control.switch 142 | scope: keyword.control.switch 143 | settings: 144 | foreground: '#999999' 145 | 146 | - name: keyword operator 147 | scope: keyword.operator 148 | settings: 149 | foreground: '#FF0080' 150 | 151 | - name: Function arg 152 | scope: meta.function.argument, variable.parameter, meta.parens.c 153 | settings: 154 | foreground: '#77FF11' 155 | 156 | - name: '' 157 | scope: punctuation.section.embedded 158 | settings: 159 | background: '#0D0D0D37' 160 | foreground: '#00D3FFFF' 161 | 162 | - name: keyword.other.unit 163 | scope: keyword.other.unit, keyword.unit.css 164 | settings: 165 | foreground: '#80FF00FF' 166 | 167 | - name: invalid.illegal 168 | scope: invalid.illegal 169 | settings: 170 | background: '#562D56BF' 171 | foreground: '#FD5FF1FF' 172 | 173 | - name: string.quoted source 174 | scope: string.quoted source 175 | settings: 176 | foreground: '#DAEFA3' 177 | 178 | - name: string constant 179 | scope: string constant 180 | settings: 181 | foreground: '#CFED81' 182 | 183 | - name: string.regexp 184 | scope: string.regexp 185 | settings: 186 | foreground: '#6FFF17' 187 | 188 | - name: punctuation.definition.string 189 | scope: punctuation.definition.string 190 | settings: 191 | background: '#15151501' 192 | foreground: '#B4FF82' 193 | 194 | - name: string.regexp.special 195 | scope: "string.regexp constant.character.escape, string.regexp source.ruby.embedded, string.regexp string.regexp.arbitrary-repitition" 196 | settings: 197 | foreground: '#00D505' 198 | 199 | - name: string.regexp punctuation keyword 200 | scope: string.regexp punctuation keyword 201 | settings: 202 | foreground: '#C559FF' 203 | 204 | - name: string variable 205 | scope: string variable 206 | settings: 207 | foreground: '#8A9A95' 208 | 209 | - name: support.function 210 | scope: support.function 211 | settings: 212 | foreground: '#FCF352FF' 213 | 214 | - name: meta.tag 215 | scope: meta.tag 216 | settings: 217 | foreground: '#4F9EFFFF' 218 | 219 | - name: meta.tag entity 220 | scope: meta.tag entity 221 | settings: 222 | foreground: '#157EFF' 223 | 224 | - name: HTML/XML tag attribute value 225 | scope: meta.tag string.quoted.double.html 226 | settings: 227 | foreground: '#E07D2C' 228 | 229 | - name: html5 tag 230 | scope: meta.tag.block.any.html.html5 231 | settings: 232 | foreground: '#E88BFCFF' 233 | 234 | - name: html5 tag entity 235 | scope: meta.tag.block.any.html.html5 entity 236 | settings: 237 | foreground: '#D730FAFF' 238 | 239 | - name: meta.tag.inline 240 | scope: "source entity.name.tag, source entity.other.attribute-name,meta.tag.inline, meta.tag.inline entity" 241 | settings: 242 | foreground: '#87A7E2FF' 243 | 244 | - name: html js tag 245 | scope: source.js.embedded.html entity.name.tag.script.html 246 | settings: 247 | foreground: '#FF3535' 248 | 249 | - name: html js tag braces 250 | scope: source.js.embedded.html punctuation.definition.tag.html 251 | settings: 252 | foreground: '#FF1E1E' 253 | 254 | - name: html js tag url 255 | scope: source.js.embedded.html string.quoted.double.html 256 | settings: 257 | foreground: '#FF9D9D' 258 | 259 | - name: Attribute 260 | scope: entity.other.attribute-name 261 | settings: 262 | foreground: '#7349BEFF' 263 | 264 | - name: Meta Toc List 265 | scope: meta.toc-list 266 | settings: 267 | background: '#162C1AFF' 268 | foreground: '#BEFEC7FF' 269 | options: underline 270 | 271 | - name: js variable readwrite 272 | scope: meta.initialization, variable.other.readwrite.js 273 | settings: 274 | foreground: '#FF9122' 275 | 276 | - name: js variable dollar 277 | scope: meta.initialization, variable.other.dollar.js 278 | settings: 279 | fontStyle: italic 280 | foreground: '#FF9122' 281 | 282 | - name: js object 283 | scope: variable.other.object.js 284 | settings: 285 | foreground: '#FFEE00' 286 | 287 | - name: js object with parent 288 | scope: meta.property-name.js variable.other.object.js 289 | settings: 290 | foreground: '#FFFF88' 291 | 292 | - name: support.variable.property.js 293 | scope: support.variable.property.js 294 | settings: 295 | foreground: '#3399FF' 296 | 297 | - name: variable.other.dot-access 298 | scope: variable.other.dot-access 299 | settings: 300 | foreground: '#66FFDD' 301 | 302 | - name: variable.other.property.js 303 | scope: variable.other.property.js 304 | settings: 305 | foreground: '#37C1BE' 306 | 307 | - name: punctuation.section.scope.square.js 308 | scope: punctuation.section.scope.square.js 309 | settings: 310 | foreground: '#FF2404' 311 | 312 | - name: punctuation.section.scope.round.js, meta.brace.round 313 | scope: punctuation.section.scope.round.js, meta.brace.round 314 | settings: 315 | foreground: '#1C38FF' 316 | 317 | - name: punctuation.definition.arrow.js 318 | scope: punctuation.definition.arrow.js 319 | settings: 320 | background: '#001133' 321 | fontStyle: bold 322 | foreground: '#AA00FF' 323 | 324 | - name: entity.arrow.function.js 325 | scope: entity.arrow.function.js 326 | settings: 327 | background: '#001133' 328 | fontStyle: bold 329 | foreground: '#AA00FF' 330 | 331 | - name: variable.language 332 | scope: variable.language 333 | settings: 334 | foreground: '#AA0044' 335 | 336 | - name: variable.language.prototype 337 | scope: variable.language.prototype 338 | settings: 339 | foreground: '#FF6600' 340 | 341 | - name: support.class.error.js 342 | scope: support.class.error.js 343 | settings: 344 | foreground: '#FF5522' 345 | 346 | - name: support.class.builtin.js 347 | scope: support.class.builtin.js 348 | settings: 349 | fontStyle: italic 350 | foreground: '#FFEE00' 351 | 352 | - name: support.class.node.js 353 | scope: support.class.node.js 354 | settings: 355 | foreground: '#1224FE' 356 | 357 | - name: entity.name.function.node.js 358 | scope: entity.name.function.node.js 359 | settings: 360 | foreground: '#D84014' 361 | 362 | - name: support.keyword.node.js 363 | scope: support.keyword.node.js 364 | settings: 365 | fontStyle: bold 366 | foreground: '#99EF25' 367 | 368 | - name: variable.import.destructuring.js 369 | scope: variable.import.destructuring.js 370 | settings: 371 | foreground: '#00BBFF' 372 | 373 | - name: other.object.key.js 374 | scope: other.object.key.js 375 | settings: 376 | foreground: '#1C98C1' 377 | 378 | - name: meta.accessor.js punctuation.definition.parameters 379 | scope: meta.accessor.js punctuation.definition.parameters 380 | settings: 381 | foreground: '#005588' 382 | 383 | - name: storage.type.accessor.js 384 | scope: storage.type.accessor.js 385 | settings: 386 | background: '#001122' 387 | fontStyle: bold italic 388 | foreground: '#0066AA' 389 | 390 | - name: entity.name.module.js, variable.import.parameter.js, variable.other.class.js 391 | scope: entity.name.module.js, variable.import.parameter.js, variable.other.class.js 392 | settings: 393 | background: '#220011' 394 | foreground: '#FF0044' 395 | 396 | - name: storage.type.module.js, storage.type.export.js, storage.type.import.js, storage.type.from.js 397 | scope: storage.type.module.js, storage.type.export.js, storage.type.import.js, storage.type.from.js 398 | settings: 399 | background: '#222211' 400 | foreground: '#CCCC44' 401 | 402 | - name: storage.type.class.js, storage.type.extends.js 403 | scope: storage.type.class.js, storage.type.extends.js 404 | settings: 405 | background: '#001122' 406 | foreground: '#0044AA' 407 | 408 | - name: 'meta.function.call.class.static.js ' 409 | scope: 'meta.function.call.class.static.js ' 410 | settings: 411 | foreground: '#880011' 412 | 413 | - name: variable.other.class.static.js 414 | scope: variable.other.class.static.js 415 | settings: 416 | foreground: '#AA0066' 417 | 418 | - name: entity.name.accessor.js 419 | scope: entity.name.accessor.js 420 | settings: 421 | background: '#001122' 422 | fontStyle: bold italic 423 | foreground: '#00FFCC' 424 | 425 | - name: entity.name.method.js 426 | scope: entity.name.method.js 427 | settings: 428 | background: '#110022' 429 | fontStyle: italic bold 430 | foreground: '#AA00FF' 431 | 432 | - name: meta.method.js 433 | scope: meta.method.js 434 | settings: 435 | fontStyle: bold 436 | foreground: '#660099' 437 | 438 | - name: storage.type.function.js 439 | scope: storage.type.function.js 440 | settings: 441 | fontStyle: bold 442 | foreground: '#99CC44' 443 | 444 | - name: string.quoted.single 445 | scope: string.quoted.single 446 | settings: 447 | foreground: '#88FFAAAA' 448 | 449 | - name: variable.other.template-string.js 450 | scope: variable.other.template-string.js 451 | settings: 452 | foreground: '#FF0099' 453 | 454 | - name: string.template-string.js 455 | scope: string.template-string.js 456 | settings: 457 | foreground: '#00FF00' 458 | 459 | - name: punctuation.template-string.element 460 | scope: punctuation.template-string.element 461 | settings: 462 | foreground: '#008800' 463 | 464 | - name: entity.template-string.tag.name.js 465 | scope: entity.template-string.tag.name.js 466 | settings: 467 | foreground: '#FFFF00' 468 | 469 | - name: meta.group.braces.square, punctuation.destructuring 470 | scope: meta.group.braces.square string.quoted.single, punctuation.destructuring 471 | settings: 472 | foreground: '#47E9AC' 473 | 474 | - name: string.quoted.double 475 | scope: string.quoted.double 476 | settings: 477 | foreground: '#11BB11' 478 | 479 | - name: punctuation.section.scope.curly.js 480 | scope: punctuation.section.scope.curly.js 481 | settings: 482 | foreground: '#F9044E' 483 | 484 | - name: meta.delimiter.comma.js 485 | scope: meta.delimiter.comma.js 486 | settings: 487 | foreground: '#00FFFF' 488 | 489 | - name: meta.group.braces.curly string.quoted.single 490 | scope: meta.group.braces.curly string.quoted.single 491 | settings: 492 | foreground: '#16B853' 493 | 494 | - name: support.function 495 | scope: support.function 496 | settings: 497 | foreground: '#B532FF' 498 | 499 | - name: punctuation.definition.string.begin.js 500 | scope: punctuation.definition.string.begin.js 501 | settings: 502 | foreground: '#D2E20C' 503 | 504 | - name: punctuation.definition.string.end.js 505 | scope: punctuation.definition.string.end.js 506 | settings: 507 | foreground: '#CEA30D' 508 | 509 | - name: instance constructor 510 | scope: meta.class.inheritance, meta.instance.constructor 511 | settings: 512 | fontStyle: italic underline 513 | foreground: '#E81E41' 514 | 515 | - name: entity.name.class.js 516 | scope: entity.name.class.js 517 | settings: 518 | background: '#00FFFF33' 519 | fontStyle: italic 520 | foreground: '#00FFFF' 521 | 522 | - name: entity.name.extends.js 523 | scope: entity.name.extends.js 524 | settings: 525 | background: '#00FF9933' 526 | fontStyle: italic 527 | foreground: '#00FF99' 528 | 529 | - name: function call 530 | scope: meta.function-call entity.name.function 531 | settings: 532 | foreground: '#5B24FF' 533 | 534 | - name: function call with args 535 | scope: meta.function-call.function.with-arguments.js 536 | settings: 537 | foreground: '#33FF00' 538 | 539 | - name: js brace 540 | scope: meta.brace.curly.js 541 | settings: 542 | foreground: '#FF0099' 543 | 544 | - name: js paren 545 | scope: meta.brace.round.js 546 | settings: 547 | background: '#000000FF' 548 | foreground: '#D0C5FEFF' 549 | 550 | - name: js constant escape 551 | scope: constant.character.escape 552 | settings: 553 | foreground: '#10CF62FF' 554 | 555 | - name: pseudo-class 556 | scope: "meta.selector.css entity.other.attribute-name.tag.pseudo-class" 557 | settings: 558 | foreground: '#4FBC4B' 559 | 560 | - name: css selectors 561 | scope: entity.namespace.unicode.css 562 | settings: 563 | foreground: '#FF4F4F' 564 | 565 | - name: entity.other.attribute-name.id 566 | scope: entity.other.attribute-name.id 567 | settings: 568 | background: '#0B0028FF' 569 | foreground: '#F20073FF' 570 | 571 | - name: class name 572 | scope: meta.prototype support.class 573 | settings: 574 | foreground: '#FF0099' 575 | 576 | - name: support object 577 | scope: support.object 578 | settings: 579 | fontStyle: bold 580 | foreground: '#FFEE00' 581 | 582 | - name: class name prototype 583 | scope: meta.prototype support.constant 584 | settings: 585 | foreground: '#FF6600' 586 | 587 | - name: prototype declaration 588 | scope: meta.prototype.declaration.js 589 | settings: 590 | fontStyle: bold 591 | 592 | - name: js undefined 593 | scope: constant.language.undefined.js 594 | settings: 595 | foreground: '#555588' 596 | 597 | - name: variable.other.constant.js 598 | scope: variable.other.constant.js 599 | settings: 600 | background: '#003311' 601 | foreground: '#00FF33' 602 | 603 | - name: 'false' 604 | scope: constant.language.boolean.false 605 | settings: 606 | foreground: '#AAAA55' 607 | 608 | - name: 'true' 609 | scope: constant.language.boolean.true 610 | settings: 611 | foreground: '#CC7744' 612 | 613 | - name: js null 614 | scope: constant.language.null.js 615 | settings: 616 | foreground: '#558855' 617 | 618 | - name: css#id punctuation 619 | scope: punctuation.definition.entity.id.css 620 | settings: 621 | background: '#0B0028' 622 | foreground: '#FF489F' 623 | 624 | - name: css.class 625 | scope: "entity.other.attribute-name.class, source.css.less entity.other.attribute-name.class.css" 626 | settings: 627 | background: '#0B0028' 628 | foreground: '#9529B8' 629 | 630 | - name: css.class puntuation 631 | scope: punctuation.definition.entity.class.css 632 | settings: 633 | background: '#0B0028FF' 634 | foreground: '#CD87E4FF' 635 | 636 | - name: css pseudo element 637 | scope: entity.other.attribute-name.pseudo-element.css 638 | settings: 639 | background: '#0B0028FF' 640 | foreground: '#FF00FFFF' 641 | 642 | - name: css property-name 643 | scope: support.type.property-name.css 644 | settings: 645 | foreground: '#B8EFECFF' 646 | 647 | - name: css @at-rule 648 | scope: meta.preprocessor.at-rule keyword.control.at-rule 649 | settings: 650 | foreground: '#D7C271FF' 651 | 652 | - name: css color 653 | scope: "constant.other.color.rgb-value.css, support.constant.color.w3c-standard-color-name.css" 654 | settings: 655 | foreground: '#FB7720FF' 656 | 657 | - name: css constants 658 | scope: support.constant.property-value.css 659 | settings: 660 | foreground: '#7CE85EFF' 661 | 662 | - name: Puncation Termination 663 | scope: punctuation.terminator, punctuation.separator 664 | settings: 665 | foreground: '#4BFCF8FF' 666 | 667 | - name: css constructor.argument 668 | scope: meta.constructor.argument.css 669 | settings: 670 | foreground: '#8F9D6AFF' 671 | 672 | - name: diff.header 673 | scope: meta.diff, meta.diff.header, entity.name.namespace 674 | settings: 675 | background: '#0E2231FF' 676 | foreground: '#F8F8F8FF' 677 | 678 | - name: diff.deleted 679 | scope: markup.deleted 680 | settings: 681 | background: '#420E09FF' 682 | foreground: '#F8F8F8FF' 683 | 684 | - name: diff.changed 685 | scope: markup.changed 686 | settings: 687 | background: '#4A410DFF' 688 | foreground: '#F8F8F8FF' 689 | 690 | - name: diff.inserted 691 | scope: markup.inserted 692 | settings: 693 | background: '#253B22FF' 694 | foreground: '#F8F8F8FF' 695 | 696 | - name: 'Markup: Italic' 697 | scope: markup.italic 698 | settings: 699 | fontStyle: italic 700 | foreground: '#6AD500FF' 701 | 702 | - name: 'Markup: Underline' 703 | scope: markup.underline 704 | settings: 705 | foreground: '#E18964FF' 706 | options: underline 707 | 708 | - name: 'Markup: Quote' 709 | scope: markup.quote 710 | settings: 711 | background: '#FEE09C12' 712 | fontStyle: italic 713 | foreground: '#E1D4B9FF' 714 | 715 | - name: 'Markup: Heading' 716 | scope: markup.heading, markup.heading entity 717 | settings: 718 | background: '#DE3280FF' 719 | foreground: '#FFFFFFFF' 720 | 721 | - name: 'Markup: List' 722 | scope: markup.list 723 | settings: 724 | foreground: '#6657EAFF' 725 | 726 | - name: 'Markup: Raw' 727 | scope: markup.raw 728 | settings: 729 | background: '#B1B3BA08' 730 | foreground: '#578BB3FF' 731 | 732 | - name: 'Markup: Comment' 733 | scope: markup comment 734 | settings: 735 | foreground: '#F67B37FF' 736 | 737 | - name: 'Markup: Separator' 738 | scope: meta.separator 739 | settings: 740 | background: '#242424FF' 741 | foreground: '#60A633FF' 742 | 743 | - name: Log Entry 744 | scope: meta.line.entry.logfile, meta.line.exit.logfile 745 | settings: 746 | background: '#EEEEEE29' 747 | foreground: '#F8F8F8FF' 748 | 749 | - name: Log Entry Error 750 | scope: meta.line.error.logfile 751 | settings: 752 | background: '#751012' 753 | foreground: '#F8F8F8' 754 | 755 | - name: JSON property top 756 | scope: meta.structure.dictionary.json string.quoted.double 757 | settings: 758 | background: '#111111' 759 | foreground: '#1144BB' 760 | 761 | - name: JSON property level 2 762 | scope: "meta.structure meta.structure.dictionary.json string.quoted.double" 763 | settings: 764 | foreground: '#1122BB' 765 | 766 | - name: JSON property level 3 767 | scope: "meta.structure meta.structure meta.structure meta.structure.dictionary.json string.quoted.double" 768 | settings: 769 | foreground: '#2938EB' 770 | 771 | - name: JSON property level 4 772 | scope: "meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.json string.quoted.double" 773 | settings: 774 | foreground: '#6D7EF1' 775 | 776 | - name: JSON property level 5 777 | scope: "meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.json string.quoted.double" 778 | settings: 779 | foreground: '#B3BBF7' 780 | 781 | - name: JSON value 782 | scope: meta.structure.dictionary.value.json string.quoted.double 783 | settings: 784 | foreground: '#AA00AA' 785 | 786 | - name: JSON value level 2 787 | scope: "meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double" 788 | settings: 789 | foreground: '#BF00BF' 790 | 791 | - name: JSON value level 3 792 | scope: "meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double" 793 | settings: 794 | foreground: '#FF00FF' 795 | 796 | - name: JSON value level 4 797 | scope: "meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double" 798 | settings: 799 | foreground: '#FF40FF' 800 | 801 | - name: JSON value level 5 802 | scope: "meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double" 803 | settings: 804 | foreground: '#FF80FF' 805 | 806 | - name: JSON value string punctuation 807 | scope: "meta.structure.dictionary.value.json string punctuation.definition.string.double" 808 | settings: 809 | foreground: '#8409FF' 810 | 811 | - name: JSON array value 812 | scope: meta.structure.array.json string.quoted.double 813 | settings: 814 | foreground: '#5522AA' 815 | 816 | - name: JSON array value level 1 817 | scope: "meta.structure meta.structure meta.structure.array.json string.quoted.double" 818 | settings: 819 | foreground: '#7017C8FF' 820 | 821 | - name: JSON array value level 2 822 | scope: "meta.structure meta.structure meta.structure meta.structure meta.structure.array.json string.quoted.double" 823 | settings: 824 | foreground: '#9541E9FF' 825 | 826 | - name: JSON array value level 3 827 | scope: "meta.structure meta.structure meta.structure meta.structure meta.structure.array.json string.quoted.double" 828 | settings: 829 | foreground: '#BA83F1FF' 830 | 831 | - name: JSON array value level 4 832 | scope: "meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.array.json string.quoted.double" 833 | settings: 834 | foreground: '#DFC6F9FF' 835 | 836 | - name: JSON prop string punctuation 837 | scope: "meta.structure.dictionary.json string punctuation.definition.string" 838 | settings: 839 | foreground: '#66BBDDFF' 840 | 841 | - name: JSON array string puntuation 842 | scope: "meta.structure.array.json string punctuation.definition.string" 843 | settings: 844 | foreground: '#416BE9FF' 845 | 846 | - name: JSON array brackets 847 | scope: meta.structure.array.json punctuation.definition.array 848 | settings: 849 | foreground: '#FCC401FF' 850 | 851 | - name: JSON object braces 852 | scope: "meta.structure.dictionary.json punctuation.definition.dictionary" 853 | settings: 854 | foreground: '#FEDF76FF' 855 | -------------------------------------------------------------------------------- /JavaScriptNext.YAML-tmLanguage: -------------------------------------------------------------------------------- 1 | # [PackageDev] target_format: plist, ext: tmLanguage 2 | name: JavaScript Next 3 | scopeName: source.js 4 | fileTypes: [js, htc, jsx] 5 | uuid: 487CF323-A3F9-48FA-B140-DCE8C893E664 6 | firstLineMatch: ^#!/.*\b(node|js)$\n? 7 | keyEquivalent: ^~J 8 | 9 | patterns: 10 | - include: '#core' 11 | 12 | repository: 13 | core: 14 | patterns: 15 | - include: '#literal-function-labels' 16 | - include: '#literal-arrow-function-labels' 17 | - include: '#literal-labels' 18 | 19 | - include: '#literal-keywords' 20 | - include: '#literal-for' 21 | - include: '#literal-switch' 22 | 23 | - include: '#expression' 24 | - include: '#literal-punctuation' 25 | 26 | expression: 27 | patterns: 28 | - include: '#support' 29 | - include: '#literal-function' 30 | - include: '#literal-arrow-function' 31 | - include: '#literal-prototype' # after literal-function, which includes some prototype strings 32 | 33 | - include: '#literal-regexp' # before operators to avoid ambiguities 34 | - include: '#literal-number' 35 | - include: '#literal-tagged-html' 36 | - include: '#literal-template-string' 37 | - include: '#literal-string' 38 | - include: '#literal-language-constant' 39 | - include: '#literal-language-variable' 40 | 41 | - include: '#literal-method' 42 | - include: '#literal-module' 43 | - include: '#literal-class' 44 | 45 | - include: '#literal-constructor' 46 | - include: '#literal-method-call' 47 | - include: '#literal-function-call' 48 | 49 | - include: '#comments' 50 | - include: '#brackets' 51 | 52 | - include: '#literal-operators' 53 | - include: '#literal-variable' 54 | 55 | round-brackets: 56 | patterns: 57 | - name: meta.group.braces.round 58 | begin: \( 59 | beginCaptures: 60 | '0': {name: meta.brace.round.js} 61 | end: \) 62 | endCaptures: 63 | '0': {name: meta.brace.round.js} 64 | patterns: 65 | - include: '#expression' 66 | 67 | square-brackets: 68 | patterns: 69 | - name: meta.group.braces.square 70 | begin: \[ 71 | beginCaptures: 72 | '0': {name: meta.brace.square.js} 73 | end: \] 74 | endCaptures: 75 | '0': {name: meta.brace.square.js} 76 | patterns: 77 | - include: '#expression' 78 | 79 | curly-brackets: 80 | patterns: 81 | - name: meta.group.braces.curly 82 | begin: \{ 83 | beginCaptures: 84 | '0': {name: meta.brace.curly.js} 85 | end: \} 86 | endCaptures: 87 | '0': {name: meta.brace.curly.js} 88 | patterns: 89 | - include: $self 90 | 91 | brackets: 92 | patterns: 93 | - include: '#round-brackets' 94 | - include: '#square-brackets' 95 | - include: '#curly-brackets' 96 | 97 | comments: 98 | patterns: 99 | - include: '#special-comments-conditional-compilation' 100 | 101 | - name: comment.block.documentation.js 102 | begin: /\*\*(?!/) 103 | end: \*/ 104 | captures: 105 | '0': {name: punctuation.definition.comment.js} 106 | 107 | - name: comment.block.js 108 | begin: /\* 109 | end: \*/ 110 | captures: 111 | '0': {name: punctuation.definition.comment.js} 112 | 113 | - name: comment.block.html.js 114 | match: () 115 | captures: 116 | '0': {name: punctuation.definition.comment.js} 117 | 118 | - name: comment.line.double-slash.js 119 | match: (//).*$\n? 120 | captures: 121 | '1': {name: punctuation.definition.comment.js} 122 | 123 | - name: comment.line.shebang.js 124 | match: ^(#!).*$\n? 125 | captures: 126 | '1': {name: punctuation.definition.comment.js} 127 | 128 | special-comments-conditional-compilation: 129 | patterns: 130 | - name: comment.block.conditional.js 131 | begin: /\*(?=@) 132 | end: \*/ 133 | endCaptures: 134 | '1': {name: keyword.control.conditional.js} 135 | '2': {name: punctuation.definition.keyword.js} 136 | captures: 137 | '0': {name: punctuation.definition.comment.js} 138 | patterns: 139 | - name: punctuation.definition.comment.js 140 | match: /\* 141 | - include: $self 142 | 143 | - name: keyword.control.conditional.js 144 | match: (@)(if|elif|else|end|ifdef|endif|cc_on|set)\b 145 | captures: 146 | '1': {name: punctuation.definition.keyword.js} 147 | 148 | - name: variable.other.conditional.js 149 | match: (@)(_win32|_win16|_mac|_alpha|_x86|_mc680x0|_PowerPC|_jscript|_jscript_build|_jscript_version|_debug|_fast|[a-zA-Z]\w+) 150 | captures: 151 | '1': {name: punctuation.definition.variable.js} 152 | 153 | function-declaration-parameters: 154 | patterns: 155 | - begin: \( 156 | beginCaptures: 157 | '0': {name: punctuation.definition.parameters.begin.js} 158 | end: \) 159 | endCaptures: 160 | '0': {name: punctuation.definition.parameters.end.js} 161 | patterns: 162 | - name: keyword.operator.spread.js 163 | match: (?- 187 | (?x) 188 | (?- 221 | (?x) 222 | (?:\b(static)\s+)? 223 | (?:\b(async)\s+)? 224 | (?:(\*)\s*)?([_$a-zA-Z][$\w]*)\s* 225 | (?=\([^())]*\)(?:\s|/\*.*\*/)*\{) 226 | beginCaptures: 227 | '1': {name: storage.type.js} 228 | '2': {name: storage.type.js} 229 | '3': {name: keyword.generator.asterisk.js} 230 | '4': {name: entity.name.method.js} 231 | end: (?<=\)) 232 | patterns: 233 | - include: '#function-declaration-parameters' 234 | 235 | # getter/setter 236 | - name: meta.accessor.js 237 | begin: >- 238 | (?x) 239 | \b(?:(static)\s+)? 240 | (get|set)\s+ 241 | ([_$a-zA-Z][$\w]*)\s* 242 | (?=\([^())]*\)(?:\s|/\*.*\*/)*\{) 243 | beginCaptures: 244 | '1': {name: storage.type.js} 245 | '2': {name: storage.type.accessor.js} 246 | '3': {name: entity.name.accessor.js} 247 | end: (?<=\)) 248 | patterns: 249 | - include: '#function-declaration-parameters' 250 | 251 | literal-property-initializer: 252 | patterns: 253 | - name: meta.class.property.js 254 | match: \b(?:(static)\s+)?([_$a-zA-Z][$\w]*)\s*= 255 | captures: 256 | '1': {name: storage.type.js} 257 | '2': {name: variable.class.property.js} 258 | 259 | literal-prototype: 260 | patterns: 261 | # e.g. Sound.prototype 262 | - name: meta.prototype.access.js 263 | match: ([_$a-zA-Z][$\w]*)(\.)(prototype)\b 264 | captures: 265 | '1': {name: entity.name.class.js} 266 | '2': {name: keyword.operator.accessor.js} 267 | '3': {name: variable.language.prototype.js} 268 | 269 | # e.g. Sound.prototype = { } when extending an object 270 | - name: meta.prototype.declaration.js 271 | match: ([_$a-zA-Z][$\w]*)(\.)(prototype)\s*=\s* 272 | captures: 273 | '1': {name: entity.name.class.js} 274 | '2': {name: keyword.operator.accessor.js} 275 | '3': {name: variable.language.prototype.js} 276 | 277 | literal-function: 278 | patterns: 279 | # e.g. function play(arg1, arg2) { } 280 | - name: meta.function.js 281 | begin: >- 282 | (?x) 283 | (?:\b(async)\s+)? 284 | \s*(function)(?:\s*(\*)|(?=\s|[(])) 285 | \s*([_$a-zA-Z][$\w]*)?\s* 286 | beginCaptures: 287 | '1': {name: storage.type.js} 288 | '2': {name: storage.type.function.js} 289 | '3': {name: keyword.generator.asterisk.js} 290 | '4': {name: entity.name.function.js} 291 | end: (?<=\)) 292 | patterns: 293 | - include: '#function-declaration-parameters' 294 | 295 | # e.g. play = function(arg1, arg2) { } 296 | - name: meta.function.js 297 | begin: >- 298 | (?x) 299 | (\b[_$a-zA-Z][$\w]*) 300 | \s*= 301 | \s*(?:(async)\s+)? 302 | \s*(function)(?:\s*(\*)|(?=\s|[(])) 303 | \s*([_$a-zA-Z][$\w]*)?\s* 304 | beginCaptures: 305 | '1': {name: entity.name.function.js} 306 | '2': {name: storage.type.js} 307 | '3': {name: storage.type.function.js} 308 | '4': {name: keyword.generator.asterisk.js} 309 | '5': {name: entity.name.function.js} 310 | end: (?<=\)) 311 | patterns: 312 | - include: '#function-declaration-parameters' 313 | 314 | # e.g. Sound.prototype.play = function(arg1, arg2) { } 315 | - name: meta.prototype.function.js 316 | begin: >- 317 | (?x) 318 | (\b_?[A-Z][$\w]*)? 319 | (\.)(prototype) 320 | (\.)([_$a-zA-Z][$\w]*) 321 | \s*= 322 | \s*(?:(async)\s+)? 323 | \s*(function)(?:\s*(\*)|(?=\s|[(])) 324 | \s*([_$a-zA-Z][$\w]*)?\s* 325 | beginCaptures: 326 | '1': {name: entity.name.class.js} 327 | '2': {name: keyword.operator.accessor.js} 328 | '3': {name: variable.language.prototype.js} 329 | '4': {name: keyword.operator.accessor.js} 330 | '5': {name: entity.name.function.js} 331 | '6': {name: storage.type.js} 332 | '7': {name: storage.type.function.js} 333 | '8': {name: keyword.generator.asterisk.js} 334 | '9': {name: entity.name.function.js} 335 | end: (?<=\)) 336 | patterns: 337 | - include: '#function-declaration-parameters' 338 | 339 | # e.g. Sound.play = function(arg1, arg2) { } 340 | - name: meta.function.static.js 341 | begin: >- 342 | (?x) 343 | (\b_?[A-Z][$\w]*)? 344 | (\.)([_$a-zA-Z][$\w]*) 345 | \s*= 346 | \s*(?:(async)\s+)? 347 | \s*(function)(?:\s*(\*)|(?=\s|[(])) 348 | \s*([_$a-zA-Z][$\w]*)?\s* 349 | beginCaptures: 350 | '1': {name: entity.name.class.js} 351 | '2': {name: keyword.operator.accessor.js} 352 | '3': {name: entity.name.function.js} 353 | '4': {name: storage.type.js} 354 | '5': {name: storage.type.function.js} 355 | '6': {name: keyword.generator.asterisk.js} 356 | '7': {name: entity.name.function.js} 357 | end: (?<=\)) 358 | patterns: 359 | - include: '#function-declaration-parameters' 360 | 361 | literal-function-labels: 362 | patterns: 363 | # e.g. play: function(arg1, arg2) { } 364 | - name: meta.function.json.js 365 | begin: >- 366 | (?x) 367 | \b([_$a-zA-Z][$\w]*) 368 | \s*(:) 369 | \s*(?:(async)\s+)? 370 | \s*(function)(?:\s*(\*)|(?=\s|[(])) 371 | \s*([_$a-zA-Z][$\w]*)?\s* 372 | beginCaptures: 373 | '1': {name: entity.name.function.js} 374 | '2': {name: punctuation.separator.key-value.js} 375 | '3': {name: storage.type.js} 376 | '4': {name: storage.type.function.js} 377 | '5': {name: keyword.generator.asterisk.js} 378 | '6': {name: entity.name.function.js} 379 | end: (?<=\)) 380 | patterns: 381 | - include: '#function-declaration-parameters' 382 | 383 | # e.g. "play": function(arg1, arg2) { } 384 | - name: meta.function.json.js 385 | begin: >- 386 | (?x) 387 | (?: 388 | ((')((?:[^']|\\')*)('))| 389 | ((")((?:[^"]|\\")*)(")) 390 | ) 391 | \s*(:) 392 | \s*(?:(async)\s+)? 393 | \s*(function)(?:\s*(\*)|(?=\s|[(])) 394 | \s*([_$a-zA-Z][$\w]*)?\s* 395 | beginCaptures: 396 | '1': {name: string.quoted.single.js} 397 | '2': {name: punctuation.definition.string.begin.js} 398 | '3': {name: entity.name.function.js} 399 | '4': {name: punctuation.definition.string.end.js} 400 | '5': {name: string.quoted.double.js} 401 | '6': {name: punctuation.definition.string.begin.js} 402 | '7': {name: entity.name.function.js} 403 | '8': {name: punctuation.definition.string.end.js} 404 | '9': {name: punctuation.separator.key-value.js} 405 | '10': {name: storage.type.js} 406 | '11': {name: storage.type.function.js} 407 | '12': {name: keyword.generator.asterisk.js} 408 | '13': {name: entity.name.function.js} 409 | end: (?<=\)) 410 | patterns: 411 | - include: '#function-declaration-parameters' 412 | 413 | literal-arrow-function: 414 | patterns: 415 | # e.g. (args) => { } 416 | - name: meta.function.arrow.js 417 | begin: >- 418 | (?x) 419 | (\basync)?\s* 420 | (?=\([^()]*\)\s*(=>)) 421 | beginCaptures: 422 | '1': {name: storage.type.js} 423 | end: (?<=\))\s*(=>) 424 | endCaptures: 425 | '1': {name: storage.type.function.arrow.js} 426 | patterns: 427 | - include: '#function-declaration-parameters' 428 | 429 | # e.g. arg => { } 430 | - name: meta.function.arrow.js 431 | match: >- 432 | (?x) 433 | (\basync)?\s* 434 | \b([_$a-zA-Z][$\w]*)\s*(=>) 435 | captures: 436 | '1': {name: storage.type.js} 437 | '2': {name: variable.parameter.function.js} 438 | '3': {name: storage.type.function.arrow.js} 439 | 440 | # e.g. play = (args) => { } 441 | - name: meta.function.arrow.js 442 | begin: >- 443 | (?x) 444 | (\b[_$a-zA-Z][$\w]*) 445 | \s*= 446 | \s*(async)? 447 | \s*(?=\([^()]*\)\s*(=>)) 448 | beginCaptures: 449 | '1': {name: entity.name.function.js} 450 | '2': {name: storage.type.js} 451 | end: (?<=\))\s*(=>) 452 | endCaptures: 453 | '1': {name: storage.type.function.arrow.js} 454 | patterns: 455 | - include: '#function-declaration-parameters' 456 | 457 | # e.g. play = arg => { } 458 | - name: meta.function.arrow.js 459 | match: >- 460 | (?x) 461 | (\b[_$a-zA-Z][$\w]*) 462 | \s*= 463 | \s*(async)? 464 | \s*\b([_$a-zA-Z][$\w]*)\s*(=>) 465 | captures: 466 | '1': {name: entity.name.function.js} 467 | '2': {name: storage.type.js} 468 | '3': {name: variable.parameter.function.js} 469 | '4': {name: storage.type.function.arrow.js} 470 | 471 | # e.g. Sound.prototype.play = (args) => { } 472 | - name: meta.prototype.function.arrow.js 473 | begin: >- 474 | (?x) 475 | (\b_?[A-Z][$\w]*)? 476 | (\.)(prototype) 477 | (\.)([_$a-zA-Z][$\w]*) 478 | \s*= 479 | \s*(async)? 480 | \s*(?=\([^()]*\)\s*(=>)) 481 | beginCaptures: 482 | '1': {name: entity.name.class.js} 483 | '2': {name: keyword.operator.accessor.js} 484 | '3': {name: variable.language.prototype.js} 485 | '4': {name: keyword.operator.accessor.js} 486 | '5': {name: entity.name.function.js} 487 | '6': {name: storage.type.js} 488 | end: (?<=\))\s*(=>) 489 | endCaptures: 490 | '1': {name: storage.type.function.arrow.js} 491 | patterns: 492 | - include: '#function-declaration-parameters' 493 | 494 | # e.g. Sound.prototype.play = arg => { } 495 | - name: meta.prototype.function.arrow.js 496 | match: >- 497 | (?x) 498 | (\b_?[A-Z][$\w]*)? 499 | (\.)(prototype) 500 | (\.)([_$a-zA-Z][$\w]*) 501 | \s*= 502 | \s*(async)? 503 | \s*\b([_$a-zA-Z][$\w]*)\s*(=>) 504 | captures: 505 | '1': {name: entity.name.class.js} 506 | '2': {name: keyword.operator.accessor.js} 507 | '3': {name: variable.language.prototype.js} 508 | '4': {name: keyword.operator.accessor.js} 509 | '5': {name: entity.name.function.js} 510 | '6': {name: storage.type.js} 511 | '7': {name: variable.parameter.function.js} 512 | '8': {name: storage.type.function.arrow.js} 513 | 514 | # e.g. Sound.play = (args) => { } 515 | - name: meta.function.static.arrow.js 516 | begin: >- 517 | (?x) 518 | (\b_?[A-Z][$\w]*)? 519 | (\.)([_$a-zA-Z][$\w]*) 520 | \s*= 521 | \s*(async)? 522 | \s*(?=\([^()]*\)\s*(=>)) 523 | beginCaptures: 524 | '1': {name: entity.name.class.js} 525 | '2': {name: keyword.operator.accessor.js} 526 | '3': {name: entity.name.function.js} 527 | '4': {name: storage.type.js} 528 | end: (?<=\))\s*(=>) 529 | endCaptures: 530 | '1': {name: storage.type.function.arrow.js} 531 | patterns: 532 | - include: '#function-declaration-parameters' 533 | 534 | # e.g. Sound.play = arg => { } 535 | - name: meta.function.static.arrow.js 536 | match: >- 537 | (?x) 538 | (\b_?[A-Z][$\w]*)? 539 | (\.)([_$a-zA-Z][$\w]*) 540 | \s*= 541 | \s*(async)? 542 | \s*\b([_$a-zA-Z][$\w]*)\s*(=>) 543 | captures: 544 | '1': {name: entity.name.class.js} 545 | '2': {name: keyword.operator.accessor.js} 546 | '3': {name: entity.name.function.js} 547 | '4': {name: storage.type.js} 548 | '5': {name: variable.parameter.function.js} 549 | '6': {name: storage.type.function.arrow.js} 550 | 551 | literal-arrow-function-labels: 552 | patterns: 553 | # e.g. play: (args) => { } 554 | - name: meta.function.json.arrow.js 555 | begin: >- 556 | (?x) 557 | \b([_$a-zA-Z][$\w]*) 558 | \s*(:) 559 | \s*(async)? 560 | \s*(?=\([^()]*\)\s*(=>)) 561 | beginCaptures: 562 | '1': {name: entity.name.function.js} 563 | '2': {name: punctuation.separator.key-value.js} 564 | '3': {name: storage.type.js} 565 | end: (?<=\))\s*(=>) 566 | endCaptures: 567 | '1': {name: storage.type.function.arrow.js} 568 | patterns: 569 | - include: '#function-declaration-parameters' 570 | 571 | # e.g. play: arg => { } 572 | - name: meta.function.json.arrow.js 573 | match: >- 574 | (?x) 575 | \b([_$a-zA-Z][$\w]*) 576 | \s*(:) 577 | \s*(async)? 578 | \s*\b([_$a-zA-Z][$\w]*)\s*(=>) 579 | captures: 580 | '1': {name: entity.name.function.js} 581 | '2': {name: punctuation.separator.key-value.js} 582 | '3': {name: storage.type.js} 583 | '4': {name: variable.parameter.function.js} 584 | '5': {name: storage.type.function.arrow.js} 585 | 586 | # e.g. "play": (args) => { } 587 | - name: meta.function.json.arrow.js 588 | begin: >- 589 | (?x) 590 | (?: 591 | ((')((?:[^']|\\')*)('))| 592 | ((")((?:[^"]|\\")*)(")) 593 | ) 594 | \s*(:) 595 | \s*(async)? 596 | \s*(?=\([^()]*\)\s*(=>)) 597 | beginCaptures: 598 | '1': {name: string.quoted.single.js} 599 | '2': {name: punctuation.definition.string.begin.js} 600 | '3': {name: entity.name.function.js} 601 | '4': {name: punctuation.definition.string.end.js} 602 | '5': {name: string.quoted.double.js} 603 | '6': {name: punctuation.definition.string.begin.js} 604 | '7': {name: entity.name.function.js} 605 | '8': {name: punctuation.definition.string.end.js} 606 | '9': {name: punctuation.separator.key-value.js} 607 | '10': {name: storage.type.js} 608 | end: (?<=\))\s*(=>) 609 | endCaptures: 610 | '1': {name: storage.type.function.arrow.js} 611 | patterns: 612 | - include: '#function-declaration-parameters' 613 | 614 | # e.g. "play": arg => { } 615 | - name: meta.function.json.arrow.js 616 | match: >- 617 | (?x) 618 | (?: 619 | ((')((?:[^']|\\')*)('))| 620 | ((")((?:[^"]|\\")*)(")) 621 | ) 622 | \s*(:) 623 | \s*(async)? 624 | \s*\b([_$a-zA-Z][$\w]*)\s*(=>) 625 | captures: 626 | '1': {name: string.quoted.single.js} 627 | '2': {name: punctuation.definition.string.begin.js} 628 | '3': {name: entity.name.function.js} 629 | '4': {name: punctuation.definition.string.end.js} 630 | '5': {name: string.quoted.double.js} 631 | '6': {name: punctuation.definition.string.begin.js} 632 | '7': {name: entity.name.function.js} 633 | '8': {name: punctuation.definition.string.end.js} 634 | '9': {name: punctuation.separator.key-value.js} 635 | '10': {name: storage.type.js} 636 | '11': {name: variable.parameter.function.js} 637 | '12': {name: storage.type.function.arrow.js} 638 | 639 | literal-function-call: 640 | patterns: 641 | - name: meta.function-call.without-arguments.js 642 | match: >- 643 | (?x) 644 | ([_$a-zA-Z][$\w]*)\s* 645 | (\(\s*\)) 646 | captures: 647 | '1': {name: entity.name.function.js} 648 | '2': {name: meta.group.braces.round.function.arguments.js} 649 | 650 | - name: meta.function-call.with-arguments.js 651 | match: >- 652 | (?x) 653 | ([_$a-zA-Z][$\w]*)\s* 654 | (?=\() 655 | captures: 656 | '1': {name: entity.name.function.js} 657 | 658 | literal-method-call: 659 | patterns: 660 | - name: meta.function-call.static.without-arguments.js 661 | match: >- 662 | (?x) 663 | (?:(?<=\.)|\b) 664 | ([A-Z][$\w]*)\s*(\.) 665 | ([_$a-zA-Z][$\w]*)\s* 666 | (\(\s*\)) 667 | captures: 668 | '1': {name: variable.other.class.js} 669 | '2': {name: keyword.operator.accessor.js} 670 | '3': {name: entity.name.function.js} 671 | '4': {name: meta.group.braces.round.function.arguments.js} 672 | 673 | - name: meta.function-call.static.with-arguments.js 674 | match: >- 675 | (?x) 676 | (?:(?<=\.)|\b) 677 | ([A-Z][$\w]*)\s*(\.) 678 | ([_$a-zA-Z][$\w]*)\s* 679 | (?=\() 680 | captures: 681 | '1': {name: variable.other.class.js} 682 | '2': {name: keyword.operator.accessor.js} 683 | '3': {name: entity.name.function.js} 684 | 685 | - name: meta.function-call.method.without-arguments.js 686 | match: >- 687 | (?x) 688 | (?<=\.) 689 | ([_$a-zA-Z][$\w]*)\s* 690 | (\(\s*\)) 691 | captures: 692 | '1': {name: entity.name.function.js} 693 | '2': {name: meta.group.braces.round.function.arguments.js} 694 | 695 | - name: meta.function-call.method.with-arguments.js 696 | match: >- 697 | (?x) 698 | (?<=\.) 699 | ([_$a-zA-Z][$\w]*)\s* 700 | (?=\() 701 | captures: 702 | '1': {name: entity.name.function.js} 703 | 704 | literal-language-variable: 705 | patterns: 706 | - name: variable.language.arguments.js 707 | match: (?- 842 | (?x) 843 | !(?!=)| # logical-not right-to-left right 844 | && | # logical-and left-to-right both 845 | \|\| | # logical-or left-to-right both 846 | 847 | - name: keyword.operator.assignment.js 848 | match: >- 849 | (?x) 850 | =(?!=)| # assignment right-to-left both 851 | 852 | - name: keyword.operator.assignment.augmented.js 853 | match: >- 854 | (?x) 855 | %= | # assignment right-to-left both 856 | &= | # assignment right-to-left both 857 | \*= | # assignment right-to-left both 858 | \+= | # assignment right-to-left both 859 | -= | # assignment right-to-left both 860 | /= | # assignment right-to-left both 861 | \^= | # assignment right-to-left both 862 | \|= | # assignment right-to-left both 863 | <<= | # assignment right-to-left both 864 | >>= | # assignment right-to-left both 865 | >>>= | # assignment right-to-left both 866 | 867 | - name: keyword.operator.bitwise.js 868 | match: >- 869 | (?x) 870 | ~ | # bitwise-not right-to-left right 871 | << | # bitwise-shift left-to-right both 872 | >>> | # bitwise-shift left-to-right both 873 | >> | # bitwise-shift left-to-right both 874 | & | # bitwise-and left-to-right both 875 | \^ | # bitwise-xor left-to-right both 876 | \| # bitwise-or left-to-right both 877 | 878 | - name: keyword.operator.relational.js 879 | match: >- 880 | (?x) 881 | <= | # relational left-to-right both 882 | >= | # relational left-to-right both 883 | < | # relational left-to-right both 884 | > # relational left-to-right both 885 | 886 | - name: keyword.operator.comparison.js 887 | match: >- 888 | (?x) 889 | === | # equality left-to-right both 890 | !== | # equality left-to-right both 891 | == | # equality left-to-right both 892 | != # equality left-to-right both 893 | 894 | - name: keyword.operator.arithmetic.js 895 | match: >- 896 | (?x) 897 | -- | # decrement n/a right-or-left 898 | \+\+ | # increment n/a right-or-left 899 | / | # division left-to-right both 900 | % | # modulus left-to-right both 901 | \* | # multiplication left-to-right both 902 | \+ | # addition left-to-right both 903 | - # subtraction left-to-right both 904 | 905 | - name: keyword.operator.ternary.js 906 | match: '\?|:' 907 | 908 | - name: keyword.operator.spread.js 909 | match: (?- 917 | (?x) 918 | (?- 944 | (?xi) 945 | (?:\B[-+])? 946 | (?: 947 | \b0b[0-1]*| # binary 948 | \b0o[0-7]*| # octal 949 | \b0x[0-9a-f]*| # hex 950 | ( 951 | \B\.[0-9]+| # e.g. .999 952 | \b[0-9]+(\.[0-9]*)? # e.g. 999.999, 999. or 999 953 | )(e[-+]?[0-9]+)? # e.g. e+123, E-123 954 | ) 955 | 956 | - name: constant.language.infinity.js 957 | match: (?:\B[-+]|\b)(Infinity)\b 958 | 959 | literal-punctuation: 960 | patterns: 961 | - name: punctuation.terminator.statement.js 962 | match: \; 963 | 964 | - name: meta.delimiter.comma.js 965 | match: ',' 966 | 967 | literal-template-string: 968 | patterns: 969 | - name: string.template-string.js 970 | begin: ([a-zA-Z$_][\w$_]*)?(`) 971 | beginCaptures: 972 | '1': {name: entity.template-string.tag.name.js} 973 | '2': {name: punctuation.definition.template-string.begin.js} 974 | end: '`' 975 | endCaptures: 976 | '0': {name: punctuation.definition.template-string.end.js} 977 | patterns: 978 | - include: '#string-content' 979 | - name: entity.template-string.element.js 980 | begin: \${ 981 | beginCaptures: 982 | '0': {name: punctuation.template-string.element.begin.js} 983 | end: '}' 984 | endCaptures: 985 | '0': {name: punctuation.template-string.element.end.js} 986 | patterns: 987 | - include: '#expression' 988 | 989 | literal-tagged-html: 990 | patterns: 991 | - contentName: text.html.basic.embedded.js 992 | begin: '(html)(`)' 993 | beginCaptures: 994 | '1': {name: meta.function-call.tagged-template.js} 995 | '2': {name: punctuation.definition.string.template.begin.js} 996 | end: '`' 997 | endCaptures: 998 | '0': {name: punctuation.definition.string.template.end.js} 999 | patterns: 1000 | - include: 'text.html.basic' 1001 | 1002 | literal-regexp: 1003 | patterns: 1004 | # ignore ++, -- since they're uncommon, distinguishing them is not possible in sublime text, see: 1005 | # http://stackoverflow.com/questions/5519596/when-parsing-javascript-what-determines-the-meaning-of-a-slash 1006 | - name: string.regexp.js 1007 | begin: >- 1008 | (?x) 1009 | (?<= 1010 | \.|\(|,|{|}|\[|;|,|<|>|<=|>=|==|!=|===|!==|\+|-|\*|%|\+\+|--|<<|>>|>>>|&|\||\^|!|~|&&|\|\||\?|:|=|\+=|-=|\*=|%=|<<=|>>=|>>>=|&=|\|=|\^=|/|/=| 1011 | \Wnew|\Wdelete|\Wvoid|\Wtypeof|\Winstanceof|\Win|\Wdo|\Wreturn|\Wcase|\Wthrow| 1012 | ^new|^delete|^void|^typeof|^instanceof|^in|^do|^return|^case|^throw|^ 1013 | )\s* 1014 | (/) 1015 | (?!/|\*|$) 1016 | beginCaptures: 1017 | '1': {name: punctuation.definition.string.begin.js} 1018 | end: (/)([gimy]*) 1019 | endCaptures: 1020 | '1': {name: punctuation.definition.string.end.js} 1021 | '2': {name: keyword.other.js} 1022 | patterns: 1023 | - include: source.regexp.js 1024 | 1025 | literal-string: 1026 | patterns: 1027 | - name: string.quoted.single.js 1028 | begin: "'" 1029 | beginCaptures: 1030 | '0': {name: punctuation.definition.string.begin.js} 1031 | end: (')|(\n) 1032 | endCaptures: 1033 | '1': {name: punctuation.definition.string.end.js} 1034 | '2': {name: invalid.illegal.newline.js} 1035 | patterns: 1036 | - include: '#string-content' 1037 | 1038 | - name: string.quoted.double.js 1039 | begin: '"' 1040 | beginCaptures: 1041 | '0': {name: punctuation.definition.string.begin.js} 1042 | end: (")|(\n) 1043 | endCaptures: 1044 | '1': {name: punctuation.definition.string.end.js} 1045 | '2': {name: invalid.illegal.newline.js} 1046 | patterns: 1047 | - include: '#string-content' 1048 | 1049 | string-content: 1050 | patterns: 1051 | - name: constant.character.escape.newline.js 1052 | match: \\\s*\n 1053 | 1054 | - name: constant.character.escape.js 1055 | match: \\(x[\da-fA-F]{2}|u[\da-fA-F]{4}|.) 1056 | 1057 | literal-variable: 1058 | patterns: 1059 | # e.g. CONSTANT 1060 | - name: variable.other.constant.js 1061 | match: '[A-Z][_$\dA-Z]*\b' 1062 | 1063 | # dollar variables 1064 | - name: variable.other.dollar.js 1065 | match: '(\$)[$\w]+' 1066 | captures: 1067 | '1': {name: punctuation.dollar.js} 1068 | 1069 | # e.g. Class.property 1070 | - name: meta.property.class.js 1071 | match: >- 1072 | (?x) 1073 | \b([A-Z][$\w]*)\s*(\.) 1074 | ([_$a-zA-Z][$\w]*) 1075 | captures: 1076 | '1': {name: variable.other.class.js} 1077 | '2': {name: keyword.operator.accessor.js} 1078 | '3': {name: variable.other.property.static.js} 1079 | 1080 | # e.g. obj.property 1081 | - name: variable.other.object.js 1082 | match: (?- 1120 | (?x) 1121 | \b( 1122 | ELEMENT_NODE|ATTRIBUTE_NODE|TEXT_NODE|CDATA_SECTION_NODE|ENTITY_REFERENCE_NODE|ENTITY_NODE|PROCESSING_INSTRUCTION_NODE|COMMENT_NODE| 1123 | DOCUMENT_NODE|DOCUMENT_TYPE_NODE|DOCUMENT_FRAGMENT_NODE|NOTATION_NODE|INDEX_SIZE_ERR|DOMSTRING_SIZE_ERR|HIERARCHY_REQUEST_ERR| 1124 | WRONG_DOCUMENT_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR|NOT_SUPPORTED_ERR|INUSE_ATTRIBUTE_ERR 1125 | )\b 1126 | 1127 | # console 1128 | - match: (? 2 | 3 | 4 | 5 | name 6 | Next 7 | settings 8 | 9 | 10 | settings 11 | 12 | activeGuide 13 | #3333FFFF 14 | background 15 | #000000 16 | bracketsBackground 17 | #FF00AA66 18 | bracketsOptions 19 | background 20 | caret 21 | #FF0099 22 | foreground 23 | #E6E6E6 24 | guide 25 | #33333388 26 | gutter 27 | #6600FF33 28 | invisibles 29 | #404040 30 | lineHighlight 31 | #FF009933 32 | multiEditHighlight 33 | #00FF0022 34 | searchHighlight 35 | #FF00AA99 36 | selection 37 | #00FFFF44 38 | stackGuide 39 | #333333CC 40 | 41 | 42 | 43 | name 44 | bracket.curly 45 | scope 46 | bracket.curly 47 | settings 48 | 49 | background 50 | #FF44AA 51 | foreground 52 | #3399FF 53 | 54 | 55 | 56 | name 57 | bracket.square 58 | scope 59 | bracket.square 60 | settings 61 | 62 | background 63 | #2266CC 64 | foreground 65 | #FF8800 66 | 67 | 68 | 69 | name 70 | bracket.round 71 | scope 72 | bracket.round 73 | settings 74 | 75 | background 76 | #9922FF 77 | foreground 78 | #00FF00 79 | 80 | 81 | 82 | name 83 | bracket.quote 84 | scope 85 | bracket.quote 86 | settings 87 | 88 | background 89 | #00FF00 90 | 91 | 92 | 93 | name 94 | comment 95 | scope 96 | comment 97 | settings 98 | 99 | fontStyle 100 | italic 101 | foreground 102 | #646464FF 103 | 104 | 105 | 106 | name 107 | Invalid 108 | scope 109 | invalid 110 | settings 111 | 112 | background 113 | #FF000022 114 | 115 | 116 | 117 | name 118 | constant 119 | scope 120 | constant 121 | settings 122 | 123 | foreground 124 | #3387CCFF 125 | 126 | 127 | 128 | name 129 | Keyword 130 | scope 131 | keyword 132 | settings 133 | 134 | foreground 135 | #E28964 136 | 137 | 138 | 139 | name 140 | constant.numeric 141 | scope 142 | constant.numeric 143 | settings 144 | 145 | foreground 146 | #FFFF66 147 | 148 | 149 | 150 | name 151 | Storage 152 | scope 153 | storage 154 | settings 155 | 156 | foreground 157 | #99CF50 158 | 159 | 160 | 161 | name 162 | storage.modifier 163 | scope 164 | storage.modifier 165 | settings 166 | 167 | foreground 168 | #CF5099 169 | 170 | 171 | 172 | name 173 | storage.self 174 | scope 175 | storage.self 176 | settings 177 | 178 | fontStyle 179 | bold 180 | foreground 181 | #CC0033 182 | 183 | 184 | 185 | name 186 | storage.type 187 | scope 188 | storage.type 189 | settings 190 | 191 | foreground 192 | #CF9950 193 | 194 | 195 | 196 | name 197 | Support 198 | scope 199 | support 200 | settings 201 | 202 | foreground 203 | #8A5C8DFF 204 | 205 | 206 | 207 | name 208 | entity.name.function 209 | scope 210 | entity.name.function 211 | settings 212 | 213 | foreground 214 | #BB00FF 215 | 216 | 217 | 218 | name 219 | keyword control 220 | scope 221 | keyword.control 222 | settings 223 | 224 | foreground 225 | #FF00FF 226 | 227 | 228 | 229 | name 230 | keyword.control.declaration 231 | scope 232 | keyword.control.declaration 233 | settings 234 | 235 | foreground 236 | #8888AA 237 | 238 | 239 | 240 | name 241 | keyword.control.module 242 | scope 243 | keyword.control.module 244 | settings 245 | 246 | background 247 | #FFFF3333 248 | foreground 249 | #FFFF33 250 | options 251 | underline 252 | 253 | 254 | 255 | name 256 | keyword.control.flow 257 | scope 258 | keyword.control.flow 259 | settings 260 | 261 | background 262 | #110300 263 | fontStyle 264 | bold 265 | foreground 266 | #FF6600 267 | 268 | 269 | 270 | name 271 | keyword.control.conditional 272 | scope 273 | keyword.control.conditional 274 | settings 275 | 276 | foreground 277 | #FF00FF 278 | 279 | 280 | 281 | name 282 | keyword.control.trycatch 283 | scope 284 | keyword.control.trycatch 285 | settings 286 | 287 | foreground 288 | #FF0033 289 | 290 | 291 | 292 | name 293 | keyword.control.loop 294 | scope 295 | keyword.control.loop 296 | settings 297 | 298 | foreground 299 | #009999 300 | 301 | 302 | 303 | name 304 | keyword.control.switch 305 | scope 306 | keyword.control.switch 307 | settings 308 | 309 | foreground 310 | #999999 311 | 312 | 313 | 314 | name 315 | keyword operator 316 | scope 317 | keyword.operator 318 | settings 319 | 320 | foreground 321 | #FF0080 322 | 323 | 324 | 325 | name 326 | Function arg 327 | scope 328 | meta.function.argument, variable.parameter, meta.parens.c 329 | settings 330 | 331 | foreground 332 | #77FF11 333 | 334 | 335 | 336 | name 337 | 338 | scope 339 | punctuation.section.embedded 340 | settings 341 | 342 | background 343 | #0D0D0D37 344 | foreground 345 | #00D3FFFF 346 | 347 | 348 | 349 | name 350 | keyword.other.unit 351 | scope 352 | keyword.other.unit, keyword.unit.css 353 | settings 354 | 355 | foreground 356 | #80FF00FF 357 | 358 | 359 | 360 | name 361 | invalid.illegal 362 | scope 363 | invalid.illegal 364 | settings 365 | 366 | background 367 | #562D56BF 368 | foreground 369 | #FD5FF1FF 370 | 371 | 372 | 373 | name 374 | string.quoted source 375 | scope 376 | string.quoted source 377 | settings 378 | 379 | foreground 380 | #DAEFA3 381 | 382 | 383 | 384 | name 385 | string constant 386 | scope 387 | string constant 388 | settings 389 | 390 | foreground 391 | #CFED81 392 | 393 | 394 | 395 | name 396 | string.regexp 397 | scope 398 | string.regexp 399 | settings 400 | 401 | foreground 402 | #6FFF17 403 | 404 | 405 | 406 | name 407 | punctuation.definition.string 408 | scope 409 | punctuation.definition.string 410 | settings 411 | 412 | background 413 | #15151501 414 | foreground 415 | #B4FF82 416 | 417 | 418 | 419 | name 420 | string.regexp.special 421 | scope 422 | string.regexp constant.character.escape, string.regexp source.ruby.embedded, string.regexp string.regexp.arbitrary-repitition 423 | settings 424 | 425 | foreground 426 | #00D505 427 | 428 | 429 | 430 | name 431 | string.regexp punctuation keyword 432 | scope 433 | string.regexp punctuation keyword 434 | settings 435 | 436 | foreground 437 | #C559FF 438 | 439 | 440 | 441 | name 442 | string variable 443 | scope 444 | string variable 445 | settings 446 | 447 | foreground 448 | #8A9A95 449 | 450 | 451 | 452 | name 453 | support.function 454 | scope 455 | support.function 456 | settings 457 | 458 | foreground 459 | #FCF352FF 460 | 461 | 462 | 463 | name 464 | meta.tag 465 | scope 466 | meta.tag 467 | settings 468 | 469 | foreground 470 | #4F9EFFFF 471 | 472 | 473 | 474 | name 475 | meta.tag entity 476 | scope 477 | meta.tag entity 478 | settings 479 | 480 | foreground 481 | #157EFF 482 | 483 | 484 | 485 | name 486 | HTML/XML tag attribute value 487 | scope 488 | meta.tag string.quoted.double.html 489 | settings 490 | 491 | foreground 492 | #E07D2C 493 | 494 | 495 | 496 | name 497 | html5 tag 498 | scope 499 | meta.tag.block.any.html.html5 500 | settings 501 | 502 | foreground 503 | #E88BFCFF 504 | 505 | 506 | 507 | name 508 | html5 tag entity 509 | scope 510 | meta.tag.block.any.html.html5 entity 511 | settings 512 | 513 | foreground 514 | #D730FAFF 515 | 516 | 517 | 518 | name 519 | meta.tag.inline 520 | scope 521 | source entity.name.tag, source entity.other.attribute-name,meta.tag.inline, meta.tag.inline entity 522 | settings 523 | 524 | foreground 525 | #87A7E2FF 526 | 527 | 528 | 529 | name 530 | html js tag 531 | scope 532 | source.js.embedded.html entity.name.tag.script.html 533 | settings 534 | 535 | foreground 536 | #FF3535 537 | 538 | 539 | 540 | name 541 | html js tag braces 542 | scope 543 | source.js.embedded.html punctuation.definition.tag.html 544 | settings 545 | 546 | foreground 547 | #FF1E1E 548 | 549 | 550 | 551 | name 552 | html js tag url 553 | scope 554 | source.js.embedded.html string.quoted.double.html 555 | settings 556 | 557 | foreground 558 | #FF9D9D 559 | 560 | 561 | 562 | name 563 | Attribute 564 | scope 565 | entity.other.attribute-name 566 | settings 567 | 568 | foreground 569 | #7349BEFF 570 | 571 | 572 | 573 | name 574 | Meta Toc List 575 | scope 576 | meta.toc-list 577 | settings 578 | 579 | background 580 | #162C1AFF 581 | foreground 582 | #BEFEC7FF 583 | options 584 | underline 585 | 586 | 587 | 588 | name 589 | js variable readwrite 590 | scope 591 | meta.initialization, variable.other.readwrite.js 592 | settings 593 | 594 | foreground 595 | #FF9122 596 | 597 | 598 | 599 | name 600 | js variable dollar 601 | scope 602 | meta.initialization, variable.other.dollar.js 603 | settings 604 | 605 | fontStyle 606 | italic 607 | foreground 608 | #FF9122 609 | 610 | 611 | 612 | name 613 | js object 614 | scope 615 | variable.other.object.js 616 | settings 617 | 618 | foreground 619 | #FFEE00 620 | 621 | 622 | 623 | name 624 | js object with parent 625 | scope 626 | meta.property-name.js variable.other.object.js 627 | settings 628 | 629 | foreground 630 | #FFFF88 631 | 632 | 633 | 634 | name 635 | support.variable.property.js 636 | scope 637 | support.variable.property.js 638 | settings 639 | 640 | foreground 641 | #3399FF 642 | 643 | 644 | 645 | name 646 | variable.other.dot-access 647 | scope 648 | variable.other.dot-access 649 | settings 650 | 651 | foreground 652 | #66FFDD 653 | 654 | 655 | 656 | name 657 | variable.other.property.js 658 | scope 659 | variable.other.property.js 660 | settings 661 | 662 | foreground 663 | #37C1BE 664 | 665 | 666 | 667 | name 668 | punctuation.section.scope.square.js 669 | scope 670 | punctuation.section.scope.square.js 671 | settings 672 | 673 | foreground 674 | #FF2404 675 | 676 | 677 | 678 | name 679 | punctuation.section.scope.round.js, meta.brace.round 680 | scope 681 | punctuation.section.scope.round.js, meta.brace.round 682 | settings 683 | 684 | foreground 685 | #1C38FF 686 | 687 | 688 | 689 | name 690 | punctuation.definition.arrow.js 691 | scope 692 | punctuation.definition.arrow.js 693 | settings 694 | 695 | background 696 | #001133 697 | fontStyle 698 | bold 699 | foreground 700 | #AA00FF 701 | 702 | 703 | 704 | name 705 | entity.arrow.function.js 706 | scope 707 | entity.arrow.function.js 708 | settings 709 | 710 | background 711 | #001133 712 | fontStyle 713 | bold 714 | foreground 715 | #AA00FF 716 | 717 | 718 | 719 | name 720 | variable.language 721 | scope 722 | variable.language 723 | settings 724 | 725 | foreground 726 | #AA0044 727 | 728 | 729 | 730 | name 731 | variable.language.prototype 732 | scope 733 | variable.language.prototype 734 | settings 735 | 736 | foreground 737 | #FF6600 738 | 739 | 740 | 741 | name 742 | support.class.error.js 743 | scope 744 | support.class.error.js 745 | settings 746 | 747 | foreground 748 | #FF5522 749 | 750 | 751 | 752 | name 753 | support.class.builtin.js 754 | scope 755 | support.class.builtin.js 756 | settings 757 | 758 | fontStyle 759 | italic 760 | foreground 761 | #FFEE00 762 | 763 | 764 | 765 | name 766 | support.class.node.js 767 | scope 768 | support.class.node.js 769 | settings 770 | 771 | foreground 772 | #1224FE 773 | 774 | 775 | 776 | name 777 | entity.name.function.node.js 778 | scope 779 | entity.name.function.node.js 780 | settings 781 | 782 | foreground 783 | #D84014 784 | 785 | 786 | 787 | name 788 | support.keyword.node.js 789 | scope 790 | support.keyword.node.js 791 | settings 792 | 793 | fontStyle 794 | bold 795 | foreground 796 | #99EF25 797 | 798 | 799 | 800 | name 801 | variable.import.destructuring.js 802 | scope 803 | variable.import.destructuring.js 804 | settings 805 | 806 | foreground 807 | #00BBFF 808 | 809 | 810 | 811 | name 812 | other.object.key.js 813 | scope 814 | other.object.key.js 815 | settings 816 | 817 | foreground 818 | #1C98C1 819 | 820 | 821 | 822 | name 823 | meta.accessor.js punctuation.definition.parameters 824 | scope 825 | meta.accessor.js punctuation.definition.parameters 826 | settings 827 | 828 | foreground 829 | #005588 830 | 831 | 832 | 833 | name 834 | storage.type.accessor.js 835 | scope 836 | storage.type.accessor.js 837 | settings 838 | 839 | background 840 | #001122 841 | fontStyle 842 | bold italic 843 | foreground 844 | #0066AA 845 | 846 | 847 | 848 | name 849 | entity.name.module.js, variable.import.parameter.js, variable.other.class.js 850 | scope 851 | entity.name.module.js, variable.import.parameter.js, variable.other.class.js 852 | settings 853 | 854 | background 855 | #220011 856 | foreground 857 | #FF0044 858 | 859 | 860 | 861 | name 862 | storage.type.module.js, storage.type.export.js, storage.type.import.js, storage.type.from.js 863 | scope 864 | storage.type.module.js, storage.type.export.js, storage.type.import.js, storage.type.from.js 865 | settings 866 | 867 | background 868 | #222211 869 | foreground 870 | #CCCC44 871 | 872 | 873 | 874 | name 875 | storage.type.class.js, storage.type.extends.js 876 | scope 877 | storage.type.class.js, storage.type.extends.js 878 | settings 879 | 880 | background 881 | #001122 882 | foreground 883 | #0044AA 884 | 885 | 886 | 887 | name 888 | meta.function.call.class.static.js 889 | scope 890 | meta.function.call.class.static.js 891 | settings 892 | 893 | foreground 894 | #880011 895 | 896 | 897 | 898 | name 899 | variable.other.class.static.js 900 | scope 901 | variable.other.class.static.js 902 | settings 903 | 904 | foreground 905 | #AA0066 906 | 907 | 908 | 909 | name 910 | entity.name.accessor.js 911 | scope 912 | entity.name.accessor.js 913 | settings 914 | 915 | background 916 | #001122 917 | fontStyle 918 | bold italic 919 | foreground 920 | #00FFCC 921 | 922 | 923 | 924 | name 925 | entity.name.method.js 926 | scope 927 | entity.name.method.js 928 | settings 929 | 930 | background 931 | #110022 932 | fontStyle 933 | italic bold 934 | foreground 935 | #AA00FF 936 | 937 | 938 | 939 | name 940 | meta.method.js 941 | scope 942 | meta.method.js 943 | settings 944 | 945 | fontStyle 946 | bold 947 | foreground 948 | #660099 949 | 950 | 951 | 952 | name 953 | storage.type.function.js 954 | scope 955 | storage.type.function.js 956 | settings 957 | 958 | fontStyle 959 | bold 960 | foreground 961 | #99CC44 962 | 963 | 964 | 965 | name 966 | string.quoted.single 967 | scope 968 | string.quoted.single 969 | settings 970 | 971 | foreground 972 | #88FFAAAA 973 | 974 | 975 | 976 | name 977 | variable.other.template-string.js 978 | scope 979 | variable.other.template-string.js 980 | settings 981 | 982 | foreground 983 | #FF0099 984 | 985 | 986 | 987 | name 988 | string.template-string.js 989 | scope 990 | string.template-string.js 991 | settings 992 | 993 | foreground 994 | #00FF00 995 | 996 | 997 | 998 | name 999 | punctuation.template-string.element 1000 | scope 1001 | punctuation.template-string.element 1002 | settings 1003 | 1004 | foreground 1005 | #008800 1006 | 1007 | 1008 | 1009 | name 1010 | entity.template-string.tag.name.js 1011 | scope 1012 | entity.template-string.tag.name.js 1013 | settings 1014 | 1015 | foreground 1016 | #FFFF00 1017 | 1018 | 1019 | 1020 | name 1021 | meta.group.braces.square, punctuation.destructuring 1022 | scope 1023 | meta.group.braces.square string.quoted.single, punctuation.destructuring 1024 | settings 1025 | 1026 | foreground 1027 | #47E9AC 1028 | 1029 | 1030 | 1031 | name 1032 | string.quoted.double 1033 | scope 1034 | string.quoted.double 1035 | settings 1036 | 1037 | foreground 1038 | #11BB11 1039 | 1040 | 1041 | 1042 | name 1043 | punctuation.section.scope.curly.js 1044 | scope 1045 | punctuation.section.scope.curly.js 1046 | settings 1047 | 1048 | foreground 1049 | #F9044E 1050 | 1051 | 1052 | 1053 | name 1054 | meta.delimiter.comma.js 1055 | scope 1056 | meta.delimiter.comma.js 1057 | settings 1058 | 1059 | foreground 1060 | #00FFFF 1061 | 1062 | 1063 | 1064 | name 1065 | meta.group.braces.curly string.quoted.single 1066 | scope 1067 | meta.group.braces.curly string.quoted.single 1068 | settings 1069 | 1070 | foreground 1071 | #16B853 1072 | 1073 | 1074 | 1075 | name 1076 | support.function 1077 | scope 1078 | support.function 1079 | settings 1080 | 1081 | foreground 1082 | #B532FF 1083 | 1084 | 1085 | 1086 | name 1087 | punctuation.definition.string.begin.js 1088 | scope 1089 | punctuation.definition.string.begin.js 1090 | settings 1091 | 1092 | foreground 1093 | #D2E20C 1094 | 1095 | 1096 | 1097 | name 1098 | punctuation.definition.string.end.js 1099 | scope 1100 | punctuation.definition.string.end.js 1101 | settings 1102 | 1103 | foreground 1104 | #CEA30D 1105 | 1106 | 1107 | 1108 | name 1109 | instance constructor 1110 | scope 1111 | meta.class.inheritance, meta.instance.constructor 1112 | settings 1113 | 1114 | fontStyle 1115 | italic underline 1116 | foreground 1117 | #E81E41 1118 | 1119 | 1120 | 1121 | name 1122 | entity.name.class.js 1123 | scope 1124 | entity.name.class.js 1125 | settings 1126 | 1127 | background 1128 | #00FFFF33 1129 | fontStyle 1130 | italic 1131 | foreground 1132 | #00FFFF 1133 | 1134 | 1135 | 1136 | name 1137 | entity.name.extends.js 1138 | scope 1139 | entity.name.extends.js 1140 | settings 1141 | 1142 | background 1143 | #00FF9933 1144 | fontStyle 1145 | italic 1146 | foreground 1147 | #00FF99 1148 | 1149 | 1150 | 1151 | name 1152 | function call 1153 | scope 1154 | meta.function-call entity.name.function 1155 | settings 1156 | 1157 | foreground 1158 | #5B24FF 1159 | 1160 | 1161 | 1162 | name 1163 | function call with args 1164 | scope 1165 | meta.function-call.function.with-arguments.js 1166 | settings 1167 | 1168 | foreground 1169 | #33FF00 1170 | 1171 | 1172 | 1173 | name 1174 | js brace 1175 | scope 1176 | meta.brace.curly.js 1177 | settings 1178 | 1179 | foreground 1180 | #FF0099 1181 | 1182 | 1183 | 1184 | name 1185 | js paren 1186 | scope 1187 | meta.brace.round.js 1188 | settings 1189 | 1190 | background 1191 | #000000FF 1192 | foreground 1193 | #D0C5FEFF 1194 | 1195 | 1196 | 1197 | name 1198 | js constant escape 1199 | scope 1200 | constant.character.escape 1201 | settings 1202 | 1203 | foreground 1204 | #10CF62FF 1205 | 1206 | 1207 | 1208 | name 1209 | pseudo-class 1210 | scope 1211 | meta.selector.css entity.other.attribute-name.tag.pseudo-class 1212 | settings 1213 | 1214 | foreground 1215 | #4FBC4B 1216 | 1217 | 1218 | 1219 | name 1220 | css selectors 1221 | scope 1222 | entity.namespace.unicode.css 1223 | settings 1224 | 1225 | foreground 1226 | #FF4F4F 1227 | 1228 | 1229 | 1230 | name 1231 | entity.other.attribute-name.id 1232 | scope 1233 | entity.other.attribute-name.id 1234 | settings 1235 | 1236 | background 1237 | #0B0028FF 1238 | foreground 1239 | #F20073FF 1240 | 1241 | 1242 | 1243 | name 1244 | class name 1245 | scope 1246 | meta.prototype support.class 1247 | settings 1248 | 1249 | foreground 1250 | #FF0099 1251 | 1252 | 1253 | 1254 | name 1255 | support object 1256 | scope 1257 | support.object 1258 | settings 1259 | 1260 | fontStyle 1261 | bold 1262 | foreground 1263 | #FFEE00 1264 | 1265 | 1266 | 1267 | name 1268 | class name prototype 1269 | scope 1270 | meta.prototype support.constant 1271 | settings 1272 | 1273 | foreground 1274 | #FF6600 1275 | 1276 | 1277 | 1278 | name 1279 | prototype declaration 1280 | scope 1281 | meta.prototype.declaration.js 1282 | settings 1283 | 1284 | fontStyle 1285 | bold 1286 | 1287 | 1288 | 1289 | name 1290 | js undefined 1291 | scope 1292 | constant.language.undefined.js 1293 | settings 1294 | 1295 | foreground 1296 | #555588 1297 | 1298 | 1299 | 1300 | name 1301 | variable.other.constant.js 1302 | scope 1303 | variable.other.constant.js 1304 | settings 1305 | 1306 | background 1307 | #003311 1308 | foreground 1309 | #00FF33 1310 | 1311 | 1312 | 1313 | name 1314 | false 1315 | scope 1316 | constant.language.boolean.false 1317 | settings 1318 | 1319 | foreground 1320 | #AAAA55 1321 | 1322 | 1323 | 1324 | name 1325 | true 1326 | scope 1327 | constant.language.boolean.true 1328 | settings 1329 | 1330 | foreground 1331 | #CC7744 1332 | 1333 | 1334 | 1335 | name 1336 | js null 1337 | scope 1338 | constant.language.null.js 1339 | settings 1340 | 1341 | foreground 1342 | #558855 1343 | 1344 | 1345 | 1346 | name 1347 | css#id punctuation 1348 | scope 1349 | punctuation.definition.entity.id.css 1350 | settings 1351 | 1352 | background 1353 | #0B0028 1354 | foreground 1355 | #FF489F 1356 | 1357 | 1358 | 1359 | name 1360 | css.class 1361 | scope 1362 | entity.other.attribute-name.class, source.css.less entity.other.attribute-name.class.css 1363 | settings 1364 | 1365 | background 1366 | #0B0028 1367 | foreground 1368 | #9529B8 1369 | 1370 | 1371 | 1372 | name 1373 | css.class puntuation 1374 | scope 1375 | punctuation.definition.entity.class.css 1376 | settings 1377 | 1378 | background 1379 | #0B0028FF 1380 | foreground 1381 | #CD87E4FF 1382 | 1383 | 1384 | 1385 | name 1386 | css pseudo element 1387 | scope 1388 | entity.other.attribute-name.pseudo-element.css 1389 | settings 1390 | 1391 | background 1392 | #0B0028FF 1393 | foreground 1394 | #FF00FFFF 1395 | 1396 | 1397 | 1398 | name 1399 | css property-name 1400 | scope 1401 | support.type.property-name.css 1402 | settings 1403 | 1404 | foreground 1405 | #B8EFECFF 1406 | 1407 | 1408 | 1409 | name 1410 | css @at-rule 1411 | scope 1412 | meta.preprocessor.at-rule keyword.control.at-rule 1413 | settings 1414 | 1415 | foreground 1416 | #D7C271FF 1417 | 1418 | 1419 | 1420 | name 1421 | css color 1422 | scope 1423 | constant.other.color.rgb-value.css, support.constant.color.w3c-standard-color-name.css 1424 | settings 1425 | 1426 | foreground 1427 | #FB7720FF 1428 | 1429 | 1430 | 1431 | name 1432 | css constants 1433 | scope 1434 | support.constant.property-value.css 1435 | settings 1436 | 1437 | foreground 1438 | #7CE85EFF 1439 | 1440 | 1441 | 1442 | name 1443 | Puncation Termination 1444 | scope 1445 | punctuation.terminator, punctuation.separator 1446 | settings 1447 | 1448 | foreground 1449 | #4BFCF8FF 1450 | 1451 | 1452 | 1453 | name 1454 | css constructor.argument 1455 | scope 1456 | meta.constructor.argument.css 1457 | settings 1458 | 1459 | foreground 1460 | #8F9D6AFF 1461 | 1462 | 1463 | 1464 | name 1465 | diff.header 1466 | scope 1467 | meta.diff, meta.diff.header, entity.name.namespace 1468 | settings 1469 | 1470 | background 1471 | #0E2231FF 1472 | foreground 1473 | #F8F8F8FF 1474 | 1475 | 1476 | 1477 | name 1478 | diff.deleted 1479 | scope 1480 | markup.deleted 1481 | settings 1482 | 1483 | background 1484 | #420E09FF 1485 | foreground 1486 | #F8F8F8FF 1487 | 1488 | 1489 | 1490 | name 1491 | diff.changed 1492 | scope 1493 | markup.changed 1494 | settings 1495 | 1496 | background 1497 | #4A410DFF 1498 | foreground 1499 | #F8F8F8FF 1500 | 1501 | 1502 | 1503 | name 1504 | diff.inserted 1505 | scope 1506 | markup.inserted 1507 | settings 1508 | 1509 | background 1510 | #253B22FF 1511 | foreground 1512 | #F8F8F8FF 1513 | 1514 | 1515 | 1516 | name 1517 | Markup: Italic 1518 | scope 1519 | markup.italic 1520 | settings 1521 | 1522 | fontStyle 1523 | italic 1524 | foreground 1525 | #6AD500FF 1526 | 1527 | 1528 | 1529 | name 1530 | Markup: Underline 1531 | scope 1532 | markup.underline 1533 | settings 1534 | 1535 | foreground 1536 | #E18964FF 1537 | options 1538 | underline 1539 | 1540 | 1541 | 1542 | name 1543 | Markup: Quote 1544 | scope 1545 | markup.quote 1546 | settings 1547 | 1548 | background 1549 | #FEE09C12 1550 | fontStyle 1551 | italic 1552 | foreground 1553 | #E1D4B9FF 1554 | 1555 | 1556 | 1557 | name 1558 | Markup: Heading 1559 | scope 1560 | markup.heading, markup.heading entity 1561 | settings 1562 | 1563 | background 1564 | #DE3280FF 1565 | foreground 1566 | #FFFFFFFF 1567 | 1568 | 1569 | 1570 | name 1571 | Markup: List 1572 | scope 1573 | markup.list 1574 | settings 1575 | 1576 | foreground 1577 | #6657EAFF 1578 | 1579 | 1580 | 1581 | name 1582 | Markup: Raw 1583 | scope 1584 | markup.raw 1585 | settings 1586 | 1587 | background 1588 | #B1B3BA08 1589 | foreground 1590 | #578BB3FF 1591 | 1592 | 1593 | 1594 | name 1595 | Markup: Comment 1596 | scope 1597 | markup comment 1598 | settings 1599 | 1600 | foreground 1601 | #F67B37FF 1602 | 1603 | 1604 | 1605 | name 1606 | Markup: Separator 1607 | scope 1608 | meta.separator 1609 | settings 1610 | 1611 | background 1612 | #242424FF 1613 | foreground 1614 | #60A633FF 1615 | 1616 | 1617 | 1618 | name 1619 | Log Entry 1620 | scope 1621 | meta.line.entry.logfile, meta.line.exit.logfile 1622 | settings 1623 | 1624 | background 1625 | #EEEEEE29 1626 | foreground 1627 | #F8F8F8FF 1628 | 1629 | 1630 | 1631 | name 1632 | Log Entry Error 1633 | scope 1634 | meta.line.error.logfile 1635 | settings 1636 | 1637 | background 1638 | #751012 1639 | foreground 1640 | #F8F8F8 1641 | 1642 | 1643 | 1644 | name 1645 | JSON property top 1646 | scope 1647 | meta.structure.dictionary.json string.quoted.double 1648 | settings 1649 | 1650 | background 1651 | #111111 1652 | foreground 1653 | #1144BB 1654 | 1655 | 1656 | 1657 | name 1658 | JSON property level 2 1659 | scope 1660 | meta.structure meta.structure.dictionary.json string.quoted.double 1661 | settings 1662 | 1663 | foreground 1664 | #1122BB 1665 | 1666 | 1667 | 1668 | name 1669 | JSON property level 3 1670 | scope 1671 | meta.structure meta.structure meta.structure meta.structure.dictionary.json string.quoted.double 1672 | settings 1673 | 1674 | foreground 1675 | #2938EB 1676 | 1677 | 1678 | 1679 | name 1680 | JSON property level 4 1681 | scope 1682 | meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.json string.quoted.double 1683 | settings 1684 | 1685 | foreground 1686 | #6D7EF1 1687 | 1688 | 1689 | 1690 | name 1691 | JSON property level 5 1692 | scope 1693 | meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.json string.quoted.double 1694 | settings 1695 | 1696 | foreground 1697 | #B3BBF7 1698 | 1699 | 1700 | 1701 | name 1702 | JSON value 1703 | scope 1704 | meta.structure.dictionary.value.json string.quoted.double 1705 | settings 1706 | 1707 | foreground 1708 | #AA00AA 1709 | 1710 | 1711 | 1712 | name 1713 | JSON value level 2 1714 | scope 1715 | meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double 1716 | settings 1717 | 1718 | foreground 1719 | #BF00BF 1720 | 1721 | 1722 | 1723 | name 1724 | JSON value level 3 1725 | scope 1726 | meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double 1727 | settings 1728 | 1729 | foreground 1730 | #FF00FF 1731 | 1732 | 1733 | 1734 | name 1735 | JSON value level 4 1736 | scope 1737 | meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double 1738 | settings 1739 | 1740 | foreground 1741 | #FF40FF 1742 | 1743 | 1744 | 1745 | name 1746 | JSON value level 5 1747 | scope 1748 | meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double 1749 | settings 1750 | 1751 | foreground 1752 | #FF80FF 1753 | 1754 | 1755 | 1756 | name 1757 | JSON value string punctuation 1758 | scope 1759 | meta.structure.dictionary.value.json string punctuation.definition.string.double 1760 | settings 1761 | 1762 | foreground 1763 | #8409FF 1764 | 1765 | 1766 | 1767 | name 1768 | JSON array value 1769 | scope 1770 | meta.structure.array.json string.quoted.double 1771 | settings 1772 | 1773 | foreground 1774 | #5522AA 1775 | 1776 | 1777 | 1778 | name 1779 | JSON array value level 1 1780 | scope 1781 | meta.structure meta.structure meta.structure.array.json string.quoted.double 1782 | settings 1783 | 1784 | foreground 1785 | #7017C8FF 1786 | 1787 | 1788 | 1789 | name 1790 | JSON array value level 2 1791 | scope 1792 | meta.structure meta.structure meta.structure meta.structure meta.structure.array.json string.quoted.double 1793 | settings 1794 | 1795 | foreground 1796 | #9541E9FF 1797 | 1798 | 1799 | 1800 | name 1801 | JSON array value level 3 1802 | scope 1803 | meta.structure meta.structure meta.structure meta.structure meta.structure.array.json string.quoted.double 1804 | settings 1805 | 1806 | foreground 1807 | #BA83F1FF 1808 | 1809 | 1810 | 1811 | name 1812 | JSON array value level 4 1813 | scope 1814 | meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.array.json string.quoted.double 1815 | settings 1816 | 1817 | foreground 1818 | #DFC6F9FF 1819 | 1820 | 1821 | 1822 | name 1823 | JSON prop string punctuation 1824 | scope 1825 | meta.structure.dictionary.json string punctuation.definition.string 1826 | settings 1827 | 1828 | foreground 1829 | #66BBDDFF 1830 | 1831 | 1832 | 1833 | name 1834 | JSON array string puntuation 1835 | scope 1836 | meta.structure.array.json string punctuation.definition.string 1837 | settings 1838 | 1839 | foreground 1840 | #416BE9FF 1841 | 1842 | 1843 | 1844 | name 1845 | JSON array brackets 1846 | scope 1847 | meta.structure.array.json punctuation.definition.array 1848 | settings 1849 | 1850 | foreground 1851 | #FCC401FF 1852 | 1853 | 1854 | 1855 | name 1856 | JSON object braces 1857 | scope 1858 | meta.structure.dictionary.json punctuation.definition.dictionary 1859 | settings 1860 | 1861 | foreground 1862 | #FEDF76FF 1863 | 1864 | 1865 | 1866 | uuid 1867 | b238c753-1549-3f12-a519-0faa5dcd4f65 1868 | 1869 | 1870 | --------------------------------------------------------------------------------