diff --git a/Comments.YAML-tmLanguage b/Comments.YAML-tmLanguage new file mode 100644 index 0000000..7ef1c0d --- /dev/null +++ b/Comments.YAML-tmLanguage @@ -0,0 +1,12 @@ +# [PackageDev] target_format: plist, ext: tmLanguage +name: Comments +uuid: BCCA5D24-53BF-4C69-9419-D393D5590D54 +scope: source.js, source.json +settings: + shellVariables: + - name: TM_COMMENT_START + value: '// ' + - name: TM_COMMENT_START_2 + value: /* + - name: TM_COMMENT_END_2 + value: '*/' diff --git a/Comments.tmPreferences b/Comments.tmPreferences new file mode 100644 index 0000000..b26c1f9 --- /dev/null +++ b/Comments.tmPreferences @@ -0,0 +1,36 @@ + + + + + name + Comments + scope + source.js, source.json + settings + + shellVariables + + + name + TM_COMMENT_START + value + // + + + name + TM_COMMENT_START_2 + value + /* + + + name + TM_COMMENT_END_2 + value + */ + + + + uuid + A67A8BD9-A951-406F-9175-018DD4B52FD1 + + diff --git a/JavaScriptNext Monokai-Phoenix.tmTheme b/JavaScriptNext Monokai-Phoenix.tmTheme new file mode 100644 index 0000000..b68c190 --- /dev/null +++ b/JavaScriptNext Monokai-Phoenix.tmTheme @@ -0,0 +1,571 @@ + + + + + name + JavaScriptNext Monokai-Phoenix + settings + + + settings + + background + #111111 + caret + #F8F8F0 + foreground + #F8F8F2 + invisibles + #3B3A32 + lineHighlight + #3E3D32 + selection + #49483E + findHighlight + #FFE792 + findHighlightForeground + #000000 + selectionBorder + #222218 + activeGuide + #9D550FB0 + + bracketsForeground + #F8F8F2A5 + bracketsOptions + underline + + bracketContentsForeground + #F8F8F2A5 + bracketContentsOptions + underline + + tagsOptions + stippled_underline + + + + name + comment + scope + comment + settings + + fontStyle + italic + foreground + #75715E + + + + name + String + scope + string + settings + + foreground + #E6DB74 + + + + name + Built-in constant + scope + constant.language + settings + + foreground + #AE81FF + + + + name + User-defined constant + scope + constant.character, constant.other + settings + + foreground + #AE81FF + + + + name + Invalid + scope + invalid + settings + + background + #F92672 + + + + name + constant + scope + constant + settings + + foreground + #AE81FFA0 + + + + name + Keyword + scope + keyword + settings + + foreground + #F92672 + + + + name + constant.numeric + scope + constant.numeric + settings + + foreground + #AE81FF + + + + name + Storage + scope + storage + settings + + foreground + #F92672 + + + + name + storage.type + scope + storage.type + settings + + foreground + #66D9EF + + + + name + Support + scope + support + settings + + foreground + #8a5c8dff + + + + name + Function arg + scope + meta.function.argument, variable.parameter, meta.parens.c + settings + + foreground + #FD971F + + + + name + invalid.illegal + scope + invalid.illegal + settings + + background + #562d56bf + foreground + #fd5ff1ff + + + + name + support.function + scope + support.function + settings + + foreground + #A6E22E + + + + name + meta.tag entity + scope + entity.name.tag + settings + + foreground + #F92672 + + + + name + Attribute + scope + entity.other.attribute-name + settings + + foreground + #A6E22E + + + + name + entity.arrow.function.js + scope + entity.arrow.function.js + settings + + foreground + #aa00ff + + + + name + support.class.error.js + scope + support.class.error.js + settings + + foreground + #ff5522 + + + + name + support.class.node.js + scope + support.class.node.js + settings + + foreground + #1224fe + + + + name + support.keyword.node.js + scope + support.keyword.node.js + settings + + fontStyle + bold + foreground + #F92672 + + + + name + entity.name.module.js, variable.import.parameter.js, variable.other.class.js + scope + entity.name.module.js, variable.import.parameter.js, variable.other.class.js + settings + + foreground + #A6E22E + + + + name + entity.name.accessor.js + scope + entity.name.accessor.js + settings + + background + #001122 + fontStyle + + foreground + #A6E22E + + + + name + entity.name.method.js + scope + entity.name.method.js + settings + + background + #110022 + fontStyle + + foreground + #A6E22E + + + + name + meta.method.js + scope + meta.method.js + settings + + fontStyle + + foreground + #fff + + + + name + support.function + scope + support.function + settings + + foreground + #66D9EF + + + + name + Function name + scope + entity.name.function + settings + + fontStyle + + foreground + #A6E22E + + + + name + entity.name.class.js + scope + entity.name.class.js + settings + + fontStyle + italic + foreground + #A6E22E + + + + name + entity.name.extends.js + scope + entity.name.extends.js + settings + + fontStyle + italic + foreground + #00ff99 + + + + name + entity.other.attribute-name.id + scope + entity.other.attribute-name.id + settings + + foreground + #A6E22E + + + + name + class name + scope + meta.prototype support.class + settings + + foreground + #A6E22E + + + + name + Library constant + scope + support.constant + settings + + foreground + #66D9EF + + + + name + Library class/type + scope + support.type, support.class + settings + + fontStyle + italic + foreground + #66D9EF + + + + name + js undefined + scope + constant.language.undefined.js + settings + + foreground + #AE81FF + + + + name + false + scope + constant.language.boolean.false + settings + + foreground + #AE81FF + + + + name + true + scope + constant.language.boolean.true + settings + + foreground + #AE81FF + + + + name + js null + scope + constant.language.null.js + settings + + foreground + #AE81FF + + + + name + Inherited class + scope + entity.other.inherited-class + settings + + fontStyle + italic underline + foreground + #A6E22E + + + + name + diff.header + scope + meta.diff, meta.diff.header, entity.name.namespace + settings + + foreground + #75715E + + + + name + diff.deleted + scope + markup.deleted + settings + + background + #420e09ff + foreground + #F92672 + + + + name + diff.changed + scope + markup.changed + settings + + background + #4a410dff + foreground + #E6DB74 + + + + name + diff.inserted + scope + markup.inserted + settings + + background + #253b22ff + foreground + #f8f8f8ff + + + + name + Log Entry + scope + meta.line.entry.logfile, meta.line.exit.logfile + settings + + background + #eeeeee29 + foreground + #f8f8f8ff + + + + name + Log Entry Error + scope + meta.line.error.logfile + settings + + background + #751012 + foreground + #f8f8f8 + + + + name + JSON String + scope + meta.structure.dictionary.json string.quoted.double + settings + + foreground + #CFCFC2 + + + + uuid + b238c753-1549-3f12-a519-0faa5dcd4f65 + + diff --git a/JavaScriptNext.YAML-tmLanguage b/JavaScriptNext.YAML-tmLanguage new file mode 100644 index 0000000..bf97c26 --- /dev/null +++ b/JavaScriptNext.YAML-tmLanguage @@ -0,0 +1,746 @@ +# [PackageDev] target_format: plist, ext: tmLanguage +name: JavaScript Next +scopeName: source.js +fileTypes: [js, htc, jsx] +uuid: 487CF323-A3F9-48FA-B140-DCE8C893E664 +firstLineMatch: ^#!/.*\b(node|js) +keyEquivalent: ^~J + +patterns: +- include: '#comments' +- include: '#support' +- include: '#core' +- include: '#special' + +repository: + brackets: + patterns: + - name: meta.function-call.method.with-arguments.js + match: >- + (?x) + (?<=\.) + ([_$a-zA-Z][_$\w]*)? + (?=\() + captures: + '1': {name: entity.name.function.js} + + - name: meta.group.braces.round + begin: (\() + beginCaptures: + '1': {name: meta.brace.round.js} + end: (\)) + endCaptures: + '1': {name: meta.brace.round.js} + patterns: + - include: source.js + + - name: meta.group.braces.square + begin: (\[) + beginCaptures: + '1': {name: meta.brace.square.js} + end: (\]) + endCaptures: + '1': {name: meta.brace.square.js} + patterns: + - include: source.js + + comments: + patterns: + - include: '#special-comments-conditional-compilation' + + - name: comment.block.documentation.js + begin: /\*\*(?!/) + end: \*/ + captures: + '0': {name: punctuation.definition.comment.js} + + - name: comment.block.js + begin: /\* + end: \*/ + captures: + '0': {name: punctuation.definition.comment.js} + + - name: comment.line.double-slash.js + match: (//).*$\n? + captures: + '1': {name: punctuation.definition.comment.js} + + - name: comment.block.html.js + match: () + captures: + '0': {name: punctuation.definition.comment.html.js} + '2': {name: punctuation.definition.comment.html.js} + + function-declaration-parameters: + patterns: + - begin: (\() + beginCaptures: + '1': {name: punctuation.definition.parameters.begin.js} + end: (\)) + endCaptures: + '1': {name: punctuation.definition.parameters.end.js} + patterns: + - name: variable.parameter.function.js + match: |- + (?x) + [_$a-zA-Z][_$\w]* + - name: punctuation.separator.parameter.function.js + match: ',' + - include: '#comments' + + core: + patterns: + - include: '#leading-space' + + # literals + - include: '#literal-regex' # before operators to avoid ambiguities + - include: '#literal-number' + - include: '#literal-quasi' + - include: '#literal-language-constant' + + # keywords/operators + - include: '#literal-keywords' + + # modules/classes/functions + - include: '#literal-class' + - include: '#literal-module' + - include: '#literal-arrow-function' + - include: '#literal-function-storage' + - include: '#literal-method' # before function calls & after function declarations, to differentiate methods from them + - include: '#literal-prototype-storage' # after literal-function-storage, which includes some prototype strings + + # after literal-function-storage which requires the below in some cases + - include: '#literal-string' + - include: '#literal-language-variable' + + # function calls + - include: '#literal-function-call' + + # punctuation + - include: '#literal-labels' + - include: '#literal-variable' + - include: '#literal-punctuation' + + # brackets + - include: '#brackets' + + literal-module: + patterns: + # module names are defined using strings + - name: storage.type.module.js + match: \b(module)\b + + - name: keyword.operator.module.js + match: \b(import|export|from|as)\b + + literal-class: + patterns: + # e.g. class MyClass { } + - name: meta.class.js + match: \b(class)\b(?:\s+([_$a-zA-Z][_$\w]*)\s*(?:\b(extends)\b\s*([_$a-zA-Z][_$\w]*))?)?\s* + captures: + '1': {name: storage.type.class.js} + '2': {name: entity.name.class.js} + '3': {name: storage.type.extends.js} + '4': {name: entity.name.extends.js} + + # definitions here don't include field modifications (e.g. this.a = 'b'), as modifications can occur outside the class + - match: \b(?:(public|private|static)\s+)(?:(var|let|const)\s+)?([_$a-zA-Z][_$\w]*\s*)(?=\=) + captures: + '1': {name: storage.modifier.js} + '2': {name: storage.type.js} + '3': {name: entity.name.field.js} + + - match: \b(private)(?=\s*\() + captures: + '1': {name: support.function.private.js} + + - name: storage.modifier.js + match: \b(public|private|static)\b + + # getter/setter + - name: meta.accessor.js + begin: \b(get|set)\s*\b([_$a-zA-Z][_$\w]*)\s* + beginCaptures: + '1': {name: storage.type.accessor.js} + '2': {name: entity.name.accessor.js} + end: (?<=\)) + patterns: + - include: '#function-declaration-parameters' + + literal-function-call: + patterns: + - name: meta.function-call.static.with-arguments.js + begin: (?=[_$a-zA-Z][_$\w]*\s*\() + end: (?=\() + patterns: + - name: entity.name.function.js + match: ([_$a-zA-Z][_$\w]*)? + + literal-prototype-storage: + patterns: + # e.g. Sound.prototype = { } when extending an object + - name: meta.prototype.declaration.js + match: ([_$a-zA-Z][_$\w]*)\.(prototype)\s*=\s* + captures: + '1': {name: entity.name.class.js} + '2': {name: support.constant.js} + + # e.g. Sound.prototype + - name: meta.prototype.js + match: ([_$a-zA-Z][_$\w]*)\.(prototype) + captures: + '1': {name: entity.name.class.js} + '2': {name: support.constant.js} + + literal-function-storage: + patterns: + # e.g. function play(arg1, arg2) { } + - name: meta.function.js + begin: \b(function(?:\s*\*|(?=\s|[(])))(?:\s*([a-zA-Z_$][_$\w]*))?\s* + beginCaptures: + '1': {name: storage.type.function.js} + '2': {name: entity.name.function.js} + end: (?<=\)) + patterns: + - include: '#function-declaration-parameters' + + # e.g. Sound.prototype.play = function(arg1, arg2) { } + - name: meta.prototype.function.js + begin: ([_$a-zA-Z][_$\w]*)\.(prototype)\.([_$a-zA-Z][_$\w]*)\s*=\s*(function(?:\s*\*|(?=\s|[(])))\s* + beginCaptures: + '1': {name: entity.name.class.js} + '2': {name: support.constant.js} + '3': {name: entity.name.function.js} + '4': {name: storage.type.function.js} + end: (?<=\)) + patterns: + - include: '#function-declaration-parameters' + + # include symbol classes which not involve expressions + # e.g. Sound.play = function(arg1, arg2) { } + - name: meta.function.static.js + begin: >- + (?x) + (?= + ([_$a-zA-Z][_$\w]*)? + \.([_$a-zA-Z][_$\w]*)\s* + =\s* + (function\s*\*?)\s* + ) + end: (?<=\)) + patterns: + - include: '#literal-language-variable' + - begin: \b(function(?:\s*\*|(?=\s|[(])))(?:\s*([a-zA-Z_$][_$\w]*))?\s* + beginCaptures: + '1': {name: storage.type.function.js} + '2': {name: entity.name.function.js} + end: (?<=\)) + patterns: + - include: '#function-declaration-parameters' + + # e.g. play: function(arg1, arg2) { } + - name: meta.function.json.js + begin: \b([_$a-zA-Z][_$\w]*)\s*(:)\s*\b(function(?:\s*\*|(?=\s|[(])))\s* + beginCaptures: + '1': {name: entity.name.function.js} + '2': {name: punctuation.separator.key-value.js} + '3': {name: storage.type.function.js} + end: (?<=\)) + patterns: + - include: '#function-declaration-parameters' + + # e.g. "play": function(arg1, arg2) { } + - name: meta.function.json.js + begin: |- + (?x) + (?: + ((')(.*?)(? { } + - name: meta.function.arrow.js + begin: |- + (?x) + (?=\([^())]*\)\s*(=>)) + end: (?<=\))\s*(=>) + endCaptures: + '1': {name: storage.type.function.arrow.js} + patterns: + - include: '#function-declaration-parameters' + + literal-method: + patterns: + - name: meta.function-call.method.with-arguments.js + match: |- + (?x) + (?<=\.) + ([_$a-zA-Z][_$\w]*) + (?=\() + captures: + '1': {name: entity.name.function.js} + + - name: meta.function-call.method.without-arguments.js + match: |- + (?x) + (?<=\.) + ([_$a-zA-Z][_$\w]*) + (\(\s*\)) + captures: + '1': {name: entity.name.function.js} + '2': {name: meta.group.braces.round.function.arguments.js} + '3': {name: meta.brace.round.js} + + # ES6 methods, e.g. play(arg1, arg2) { } + - name: meta.method.js + begin: |- + (?x) + (?=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|/=|%=|\+=|\-=|&=|\^=' + + - name: punctuation.separator.key-value + match: ':' + + - name: keyword.operator.logical.js + match: |- + (?x) + !(?!=)| # logical-not right-to-left right + && | # logical-and left-to-right both + \|\| # logical-or left-to-right both + + - name: keyword.operator.assignment.augmented.js + match: |- + (?x) + %= | # assignment right-to-left both + &= | # assignment right-to-left both + \*= | # assignment right-to-left both + \+= | # assignment right-to-left both + -= | # assignment right-to-left both + /= | # assignment right-to-left both + \^= | # assignment right-to-left both + \|= | # assignment right-to-left both + <<= | # assignment right-to-left both + >>= | # assignment right-to-left both + >>>= # assignment right-to-left both + + - name: keyword.operator.bitwise.js + match: |- + (?x) + ~ | # bitwise-not right-to-left right + << | # bitwise-shift left-to-right both + >>> | # bitwise-shift left-to-right both + >> | # bitwise-shift left-to-right both + & | # bitwise-and left-to-right both + \^ | # bitwise-xor left-to-right both + \| # bitwise-or left-to-right both + + - name: keyword.operator.relational.js + match: |- + (?x) + <= | # relational left-to-right both + >= | # relational left-to-right both + < | # relational left-to-right both + > # relational left-to-right both + + - name: keyword.operator.comparison.js + match: |- + (?x) + === | # equality left-to-right both + !== | # equality left-to-right both + == | # equality left-to-right both + != # equality left-to-right both + + - name: keyword.operator.assignment.js + match: (?x)= + + - name: keyword.operator.arithmetic.js + match: |- + (?x) + -- | # decrement n/a right-or-left + \+\+ | # increment n/a right-or-left + / | # division left-to-right both + % | # modulus left-to-right both + \* | # multiplication left-to-right both + \+ | # addition left-to-right both + - # subtraction left-to-right both + + literal-labels: + patterns: + - match: (?<=['"])(\s*)(:) + captures: + '2': {name: punctuation.separator.key-value.js} + + - name: constant.other.object.key.js + match: (?- + (?x) + (?<= + [\[,=(:?]| + ^|&&| + return + )\s* + (/) + (?![/*+{}?]|$) + beginCaptures: + '1': {name: string.regexp.js} + '2': {name: punctuation.definition.string.begin.js} + end: ((/)([gimy]*)) + endCaptures: + '1': {name: string.regexp.js} + '2': {name: punctuation.definition.string.end.js} + '3': {name: keyword.other.js} + patterns: + - include: source.regexp.js + + literal-string: + patterns: + - name: string.quoted.single.js + begin: "'" + beginCaptures: + '0': {name: punctuation.definition.string.begin.js} + end: (')|(\n) + endCaptures: + '1': {name: punctuation.definition.string.end.js} + '2': {name: invalid.illegal.newline.js} + patterns: + - include: '#string-content' + + - name: string.quoted.double.js + begin: '"' + beginCaptures: + '0': {name: punctuation.definition.string.begin.js} + end: (")|(\n) + endCaptures: + '1': {name: punctuation.definition.string.end.js} + '2': {name: invalid.illegal.newline.js} + patterns: + - include: '#string-content' + + literal-variable: + patterns: + - name: variable.other.constant.js + match: \.?[A-Z][_$\dA-Z]*\b + + - name: meta.entity.static.js + match: \b([A-Z][_$\w]*\.?)\s*?(?:([a-z$_][\w_$]*(?=\())|([a-z$_][\w_$]*))? + captures: + '1': {name: variable.other.class.js} + '2': {name: meta.function-call.class.static.js} + '3': {name: variable.other.class.static.js} + + - name: variable.other.object.js + match: (? + (?x) + \b( + ELEMENT_NODE|ATTRIBUTE_NODE|TEXT_NODE|CDATA_SECTION_NODE|ENTITY_REFERENCE_NODE|ENTITY_NODE|PROCESSING_INSTRUCTION_NODE|COMMENT_NODE| + DOCUMENT_NODE|DOCUMENT_TYPE_NODE|DOCUMENT_FRAGMENT_NODE|NOTATION_NODE|INDEX_SIZE_ERR|DOMSTRING_SIZE_ERR|HIERARCHY_REQUEST_ERR| + WRONG_DOCUMENT_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR|NOT_SUPPORTED_ERR|INUSE_ATTRIBUTE_ERR + )\b + + # firebug + - name: support.type.object.firebug.js + match: \b(console)\b + + # node + - name: support.module.node.js + match: \b(natives|buffer|child_process|cluster|crypto|d(gram|ns)|fs|http(s)?|net|os|path|punycode|(query)?string(_decoder)?|re(adline|pl)|tls|tty|util|vm|zlib)\b + + - name: support.type.object.node.js + match: \b(process(.env)?|global|GLOBAL|root|std(out|in|err)|exports|__dirname|__filename|console)\b + + - name: support.class.node.js + match: \b(Buffer|EventEmitter|Server|Pipe|Socket|REPLServer|ReadStream|WriteStream|Stream|Inflate|Deflate|InflateRaw|DeflateRaw|GZip|GUnzip|Unzip|Zip)\b diff --git a/JavaScriptNext.YAML-tmTheme b/JavaScriptNext.YAML-tmTheme new file mode 100644 index 0000000..4164c46 --- /dev/null +++ b/JavaScriptNext.YAML-tmTheme @@ -0,0 +1,848 @@ +# [PackageDev] target_format: plist, ext: tmTheme +name: JavaScriptNext +uuid: b238c753-1549-3f12-a519-0faa5dcd4f65 + +settings: +- settings: + activeGuide: '#3333FFFF' + background: '#000000' + bracketsBackground: '#ff00aa66' + bracketsOptions: background + caret: '#ff0099' + foreground: '#e6e6e6' + guide: '#33333388' + gutter: '#6600ff33' + invisibles: '#404040' + lineHighlight: '#ff009933' + multiEditHighlight: '#00ff0022' + searchHighlight: '#FF00AA99' + selection: '#00ffff44' + stackGuide: '#333333CC' + +- name: bracket.curly + scope: bracket.curly + settings: + background: '#FF44AA' + foreground: '#3399FF' + +- name: bracket.square + scope: bracket.square + settings: + background: '#2266CC' + foreground: '#FF8800' + +- name: bracket.round + scope: bracket.round + settings: + background: '#9922FF' + foreground: '#00FF00' + +- name: bracket.quote + scope: bracket.quote + settings: + background: '#00FF00' + +- name: comment + scope: comment + settings: + fontStyle: italic + foreground: '#646464ff' + +- name: Invalid + scope: invalid + settings: + background: '#ff000022' + +- name: constant + scope: constant + settings: + foreground: '#3387ccff' + +- name: Keyword + scope: keyword + settings: + foreground: '#e28964' + +- name: constant.numeric + scope: constant.numeric + settings: + foreground: '#ffff66' + +- name: Storage + scope: storage + settings: + foreground: '#99cf50' + +- name: storage.modifier + scope: storage.modifier + settings: + foreground: '#cf5099' + +- name: storage.self + scope: storage.self + settings: + fontStyle: bold + foreground: '#cc0033' + +- name: storage.type + scope: storage.type + settings: + foreground: '#cf9950' + +- name: Support + scope: support + settings: + foreground: '#8a5c8dff' + +- name: entity.name.function + scope: entity.name.function + settings: + foreground: '#bb00ff' + +- name: keyword control + scope: keyword.control + settings: + foreground: '#ff00ff' + +- name: keyword.control.declaration + scope: keyword.control.declaration + settings: + foreground: '#8888aa' + +- name: keyword.control.module + scope: keyword.control.module + settings: + background: '#ffff3333' + foreground: '#ffff33' + options: underline + +- name: keyword.control.flow + scope: keyword.control.flow + settings: + background: '#110300' + fontStyle: bold + foreground: '#ff6600' + +- name: keyword.control.conditional + scope: keyword.control.conditional + settings: + foreground: '#ff00ff' + +- name: keyword.control.trycatch + scope: keyword.control.trycatch + settings: + foreground: '#ff0033' + +- name: keyword.control.loop + scope: keyword.control.loop + settings: + foreground: '#009999' + +- name: keyword.control.switch + scope: keyword.control.switch + settings: + foreground: '#999999' + +- name: keyword operator + scope: keyword.operator + settings: + foreground: '#ff0080' + +- name: Function arg + scope: meta.function.argument, variable.parameter, meta.parens.c + settings: + foreground: '#77ff11' + +- name: '' + scope: punctuation.section.embedded + settings: + background: '#0D0D0D37' + foreground: '#00d3ffff' + +- name: keyword.other.unit + scope: keyword.other.unit, keyword.unit.css + settings: + foreground: '#80ff00ff' + +- name: invalid.illegal + scope: invalid.illegal + settings: + background: '#562d56bf' + foreground: '#fd5ff1ff' + +- name: string.quoted source + scope: string.quoted source + settings: + foreground: '#daefa3' + +- name: string constant + scope: string constant + settings: + foreground: '#cfed81' + +- name: string.regexp + scope: string.regexp + settings: + foreground: '#6fff17' + +- name: punctuation.definition.string + scope: punctuation.definition.string + settings: + background: '#15151501' + foreground: '#b4ff82' + +- name: string.regexp.special + scope: "string.regexp constant.character.escape, string.regexp source.ruby.embedded, string.regexp string.regexp.arbitrary-repitition" + settings: + foreground: '#00d505' + +- name: string.regexp punctuation keyword + scope: string.regexp punctuation keyword + settings: + foreground: '#c559ff' + +- name: string variable + scope: string variable + settings: + foreground: '#8a9a95' + +- name: support.function + scope: support.function + settings: + foreground: '#fcf352ff' + +- name: meta.tag + scope: meta.tag + settings: + foreground: '#4f9effff' + +- name: meta.tag entity + scope: meta.tag entity + settings: + foreground: '#157eff' + +- name: HTML/XML tag attribute value + scope: meta.tag string.quoted.double.html + settings: + foreground: '#E07D2C' + +- name: html5 tag + scope: meta.tag.block.any.html.html5 + settings: + foreground: '#e88bfcff' + +- name: html5 tag entity + scope: meta.tag.block.any.html.html5 entity + settings: + foreground: '#d730faff' + +- name: meta.tag.inline + scope: "source entity.name.tag, source entity.other.attribute-name,meta.tag.inline, meta.tag.inline entity" + settings: + foreground: '#87a7e2ff' + +- name: html js tag + scope: source.js.embedded.html entity.name.tag.script.html + settings: + foreground: '#FF3535' + +- name: html js tag braces + scope: source.js.embedded.html punctuation.definition.tag.html + settings: + foreground: '#FF1E1E' + +- name: html js tag url + scope: source.js.embedded.html string.quoted.double.html + settings: + foreground: '#FF9D9D' + +- name: Attribute + scope: entity.other.attribute-name + settings: + foreground: '#7349beff' + +- name: Meta Toc List + scope: meta.toc-list + settings: + background: '#162c1aff' + foreground: '#BEFEC7FF' + options: underline + +- name: js variable readwrite + scope: meta.initialization, variable.other.readwrite.js + settings: + foreground: '#ff9122' + +- name: js object + scope: variable.other.object.js + settings: + foreground: '#ffee00' + +- name: js object with parent + scope: meta.property-name.js variable.other.object.js + settings: + foreground: '#ffff88' + +- name: support.variable.property.js + scope: support.variable.property.js + settings: + foreground: '#3399ff' + +- name: variable.other.dot-access + scope: variable.other.dot-access + settings: + foreground: '#66ffdd' + +- name: variable.other.property.js + scope: variable.other.property.js + settings: + foreground: '#37C1BE' + +- name: punctuation.section.scope.square.js + scope: punctuation.section.scope.square.js + settings: + foreground: '#ff2404' + +- name: punctuation.section.scope.round.js, meta.brace.round + scope: punctuation.section.scope.round.js, meta.brace.round + settings: + foreground: '#1c38ff' + +- name: punctuation.definition.arrow.js + scope: punctuation.definition.arrow.js + settings: + background: '#001133' + fontStyle: bold + foreground: '#aa00ff' + +- name: entity.arrow.function.js + scope: entity.arrow.function.js + settings: + background: '#001133' + fontStyle: bold + foreground: '#aa00ff' + +- name: variable.language + scope: variable.language + settings: + foreground: '#aa0044' + +- name: variable.language.prototype + scope: variable.language.prototype + settings: + foreground: '#ff6600' + +- name: support.class.error.js + scope: support.class.error.js + settings: + foreground: '#ff5522' + +- name: support.class.builtin.js + scope: support.class.builtin.js + settings: + fontStyle: italic + foreground: '#ffee00' + +- name: support.class.node.js + scope: support.class.node.js + settings: + foreground: '#1224fe' + +- name: entity.name.function.node.js + scope: entity.name.function.node.js + settings: + foreground: '#d84014' + +- name: support.keyword.node.js + scope: support.keyword.node.js + settings: + fontStyle: bold + foreground: '#99ef25' + +- name: variable.import.destructuring.js + scope: variable.import.destructuring.js + settings: + foreground: '#00bbff' + +- name: other.object.key.js + scope: other.object.key.js + settings: + foreground: '#1C98C1' + +- name: meta.accessor.js punctuation.definition.parameters + scope: meta.accessor.js punctuation.definition.parameters + settings: + foreground: '#005588' + +- name: storage.type.accessor.js + scope: storage.type.accessor.js + settings: + background: '#001122' + fontStyle: bold italic + foreground: '#0066aa' + +- name: entity.name.module.js, variable.import.parameter.js, variable.other.class.js + scope: entity.name.module.js, variable.import.parameter.js, variable.other.class.js + settings: + background: '#220011' + foreground: '#ff0044' + +- name: storage.type.module.js, storage.type.export.js, storage.type.import.js, storage.type.from.js + scope: storage.type.module.js, storage.type.export.js, storage.type.import.js, storage.type.from.js + settings: + background: '#222211' + foreground: '#cccc44' + +- name: storage.type.class.js, storage.type.extends.js + scope: storage.type.class.js, storage.type.extends.js + settings: + background: '#001122' + foreground: '#0044aa' + +- name: 'meta.function.call.class.static.js ' + scope: 'meta.function.call.class.static.js ' + settings: + foreground: '#880011' + +- name: variable.other.class.static.js + scope: variable.other.class.static.js + settings: + foreground: '#aa0066' + +- name: entity.name.accessor.js + scope: entity.name.accessor.js + settings: + background: '#001122' + fontStyle: bold italic + foreground: '#00ffcc' + +- name: entity.name.method.js + scope: entity.name.method.js + settings: + background: '#110022' + fontStyle: italic bold + foreground: '#aa00ff' + +- name: meta.method.js + scope: meta.method.js + settings: + fontStyle: bold + foreground: '#660099' + +- name: storage.type.function.js + scope: storage.type.function.js + settings: + fontStyle: bold + foreground: '#99cc44' + +- name: string.quoted.single + scope: string.quoted.single + settings: + foreground: '#88FFAAAA' + +- name: variable.other.quasi.js + scope: variable.other.quasi.js + settings: + foreground: '#ff0099' + +- name: string.quasi.js + scope: string.quasi.js + settings: + foreground: '#00FF00' + +- name: punctuation.quasi.element + scope: punctuation.quasi.element + settings: + foreground: '#008800' + +- name: entity.quasi.tag.name.js + scope: entity.quasi.tag.name.js + settings: + foreground: '#ffff00' + +- name: meta.group.braces.square, punctuation.destructuring + scope: meta.group.braces.square string.quoted.single, punctuation.destructuring + settings: + foreground: '#47E9AC' + +- name: string.quoted.double + scope: string.quoted.double + settings: + foreground: '#11bb11' + +- name: punctuation.section.scope.curly.js + scope: punctuation.section.scope.curly.js + settings: + foreground: '#F9044E' + +- name: meta.delimiter.object.comma.js + scope: meta.delimiter.object.comma.js + settings: + foreground: '#00ffff' + +- name: meta.group.braces.curly string.quoted.single + scope: meta.group.braces.curly string.quoted.single + settings: + foreground: '#16B853' + +- name: support.function + scope: support.function + settings: + foreground: '#B532ff' + +- name: punctuation.definition.string.begin.js + scope: punctuation.definition.string.begin.js + settings: + foreground: '#D2E20C' + +- name: punctuation.definition.string.end.js + scope: punctuation.definition.string.end.js + settings: + foreground: '#CEA30D' + +- name: instance constructor + scope: meta.class.inheritance, meta.instance.constructor + settings: + fontStyle: italic underline + foreground: '#e81e41' + +- name: entity.name.class.js + scope: entity.name.class.js + settings: + background: '#00ffff33' + fontStyle: italic + foreground: '#00ffff' + +- name: entity.name.extends.js + scope: entity.name.extends.js + settings: + background: '#00ff9933' + fontStyle: italic + foreground: '#00ff99' + +- name: function call + scope: meta.function-call entity.name.function + settings: + foreground: '#5b24ff' + +- name: function call with args + scope: meta.function-call.function.with-arguments.js + settings: + foreground: '#33ff00' + +- name: js brace + scope: meta.brace.curly.js + settings: + foreground: '#ff0099' + +- name: js paren + scope: meta.brace.round.js + settings: + background: '#000000ff' + foreground: '#d0c5feff' + +- name: js constant escape + scope: constant.character.escape + settings: + foreground: '#10cf62ff' + +- name: pseudo-class + scope: "meta.selector.css entity.other.attribute-name.tag.pseudo-class" + settings: + foreground: '#4fbc4b' + +- name: css selectors + scope: entity.namespace.unicode.css + settings: + foreground: '#FF4F4F' + +- name: entity.other.attribute-name.id + scope: entity.other.attribute-name.id + settings: + background: '#0b0028ff' + foreground: '#f20073ff' + +- name: class name + scope: meta.prototype support.class + settings: + foreground: '#ff0099' + +- name: support object + scope: support.object + settings: + fontStyle: bold + foreground: '#ffee00' + +- name: class name prototype + scope: meta.prototype support.constant + settings: + foreground: '#ff6600' + +- name: prototype declaration + scope: meta.prototype.declaration.js + settings: + fontStyle: bold + +- name: js undefined + scope: constant.language.undefined.js + settings: + foreground: '#555588' + +- name: variable.other.constant.js + scope: variable.other.constant.js + settings: + background: '#003311' + foreground: '#00ff33' + +- name: 'false' + scope: constant.language.boolean.false + settings: + foreground: '#aaaa55' + +- name: 'true' + scope: constant.language.boolean.true + settings: + foreground: '#cc7744' + +- name: js null + scope: constant.language.null.js + settings: + foreground: '#558855' + +- name: css#id punctuation + scope: punctuation.definition.entity.id.css + settings: + background: '#0b0028' + foreground: '#ff489f' + +- name: css.class + scope: "entity.other.attribute-name.class, source.css.less entity.other.attribute-name.class.css" + settings: + background: '#0b0028' + foreground: '#9529b8' + +- name: css.class puntuation + scope: punctuation.definition.entity.class.css + settings: + background: '#0b0028ff' + foreground: '#cd87e4ff' + +- name: css pseudo element + scope: entity.other.attribute-name.pseudo-element.css + settings: + background: '#0b0028ff' + foreground: '#ff00ffff' + +- name: css property-name + scope: support.type.property-name.css + settings: + foreground: '#b8efecff' + +- name: css @at-rule + scope: meta.preprocessor.at-rule keyword.control.at-rule + settings: + foreground: '#d7c271ff' + +- name: css color + scope: "constant.other.color.rgb-value.css, support.constant.color.w3c-standard-color-name.css" + settings: + foreground: '#fb7720ff' + +- name: css constants + scope: support.constant.property-value.css + settings: + foreground: '#7ce85eff' + +- name: Puncation Termination + scope: punctuation.terminator, punctuation.separator + settings: + foreground: '#4bfcf8ff' + +- name: css constructor.argument + scope: meta.constructor.argument.css + settings: + foreground: '#8f9d6aff' + +- name: diff.header + scope: meta.diff, meta.diff.header, entity.name.namespace + settings: + background: '#0e2231ff' + foreground: '#f8f8f8ff' + +- name: diff.deleted + scope: markup.deleted + settings: + background: '#420e09ff' + foreground: '#f8f8f8ff' + +- name: diff.changed + scope: markup.changed + settings: + background: '#4a410dff' + foreground: '#f8f8f8ff' + +- name: diff.inserted + scope: markup.inserted + settings: + background: '#253b22ff' + foreground: '#f8f8f8ff' + +- name: 'Markup: Italic' + scope: markup.italic + settings: + fontStyle: italic + foreground: '#6ad500ff' + +- name: 'Markup: Underline' + scope: markup.underline + settings: + foreground: '#e18964ff' + options: underline + +- name: 'Markup: Quote' + scope: markup.quote + settings: + background: '#fee09c12' + fontStyle: italic + foreground: '#e1d4b9ff' + +- name: 'Markup: Heading' + scope: markup.heading, markup.heading entity + settings: + background: '#de3280ff' + foreground: '#ffffffff' + +- name: 'Markup: List' + scope: markup.list + settings: + foreground: '#6657eaff' + +- name: 'Markup: Raw' + scope: markup.raw + settings: + background: '#b1b3ba08' + foreground: '#578bb3ff' + +- name: 'Markup: Comment' + scope: markup comment + settings: + foreground: '#f67b37ff' + +- name: 'Markup: Separator' + scope: meta.separator + settings: + background: '#242424ff' + foreground: '#60a633ff' + +- name: Log Entry + scope: meta.line.entry.logfile, meta.line.exit.logfile + settings: + background: '#eeeeee29' + foreground: '#f8f8f8ff' + +- name: Log Entry Error + scope: meta.line.error.logfile + settings: + background: '#751012' + foreground: '#f8f8f8' + +- name: JSON property top + scope: meta.structure.dictionary.json string.quoted.double + settings: + background: '#111111' + foreground: '#1144bb' + +- name: JSON property level 2 + scope: "meta.structure meta.structure.dictionary.json string.quoted.double" + settings: + foreground: '#1122bb' + +- name: JSON property level 3 + scope: "meta.structure meta.structure meta.structure meta.structure.dictionary.json string.quoted.double" + settings: + foreground: '#2938eb' + +- name: JSON property level 4 + scope: "meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.json string.quoted.double" + settings: + foreground: '#6d7ef1' + +- name: JSON property level 5 + scope: "meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.json string.quoted.double" + settings: + foreground: '#b3bbf7' + +- name: JSON value + scope: meta.structure.dictionary.value.json string.quoted.double + settings: + foreground: '#aa00aa' + +- name: JSON value level 2 + scope: "meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double" + settings: + foreground: '#bf00bf' + +- name: JSON value level 3 + scope: "meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double" + settings: + foreground: '#ff00ff' + +- name: JSON value level 4 + scope: "meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double" + settings: + foreground: '#ff40ff' + +- name: JSON value level 5 + 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" + settings: + foreground: '#ff80ff' + +- name: JSON value string punctuation + scope: "meta.structure.dictionary.value.json string punctuation.definition.string.double" + settings: + foreground: '#8409ff' + +- name: JSON array value + scope: meta.structure.array.json string.quoted.double + settings: + foreground: '#5522aa' + +- name: JSON array value level 1 + scope: "meta.structure meta.structure meta.structure.array.json string.quoted.double" + settings: + foreground: '#7017c8ff' + +- name: JSON array value level 2 + scope: "meta.structure meta.structure meta.structure meta.structure meta.structure.array.json string.quoted.double" + settings: + foreground: '#9541e9ff' + +- name: JSON array value level 3 + scope: "meta.structure meta.structure meta.structure meta.structure meta.structure.array.json string.quoted.double" + settings: + foreground: '#ba83f1ff' + +- name: JSON array value level 4 + scope: "meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.array.json string.quoted.double" + settings: + foreground: '#dfc6f9ff' + +- name: JSON prop string punctuation + scope: "meta.structure.dictionary.json string punctuation.definition.string" + settings: + foreground: '#66bbddff' + +- name: JSON array string puntuation + scope: "meta.structure.array.json string punctuation.definition.string" + settings: + foreground: '#416be9ff' + +- name: JSON array brackets + scope: meta.structure.array.json punctuation.definition.array + settings: + foreground: '#fcc401ff' + +- name: JSON object braces + scope: "meta.structure.dictionary.json punctuation.definition.dictionary" + settings: + foreground: '#fedf76ff' diff --git a/JavaScriptNext.tmLanguage b/JavaScriptNext.tmLanguage index 9668791..4dc8f78 100644 --- a/JavaScriptNext.tmLanguage +++ b/JavaScriptNext.tmLanguage @@ -1,1883 +1,1861 @@ - + - - name - JavaScriptNext - fileTypes - - js - htc - jsx - - scopeName - source.js - firstLineMatch - ^#!/.*\b(node|js) - keyEquivalent - ^~J - patterns - - - - include - #comments - - - include - #support - - - include - #core - - - include - #special - - - include - #sugar - - - repository - - comments - - patterns - - - include - #special-comments-conditional-compilation - - - begin - /\*\* - captures - - 0 - - name - punctuation.definition.comment.js - - - end - \*/ - name - comment.block.documentation.js - - - begin - /\* - captures - - 0 - - name - punctuation.definition.comment.js - - - end - \*/ - name - comment.block.js - - - captures - - 1 - - name - punctuation.definition.comment.js - - - match - (//).*$\n? - name - comment.line.double-slash.js - - - captures - - 0 - - name - punctuation.definition.comment.html.js - - 2 - - name - punctuation.definition.comment.html.js - - - match - (<!--|-->) - name - comment.block.html.js - - - - core - - patterns - - - include - #leading-space - - - include - #brackets - - - include - #literal-method - - - include - #literal-number - - - include - #literal-string - - - include - #arrow-function - - - include - #literal-class - - - include - #literal-quasi - - - include - #literal-regex - - - include - #literal-module - - - include - #literal-keywords - - - include - #literal-function-call - - - include - #literal-function-constructor - - - include - #literal-labels - - - include - #literal-variable - - - include - #literal-punctuation - - - - brackets - - patterns - - - captures - - 1 - - name - entity.name.function.js - - - name - meta.function-call.method.with-arguments.js - match - (?x)(?<= \. ) ([_$a-zA-Z][_$\w]*)? (?=\() - - - begin - (\()(?!\)) - captures - - 1 - - name - punctuation.section.scope.round.js - - - name - meta.group.braces.round - patterns - - - include - $base - - - end - (\)) - - - begin - (\[)(?!\]) - captures - - 1 - - name - punctuation.section.scope.square.js - - - name - meta.group.braces.square - patterns - - - include - $base - - - end - (\]) - - - - literal-function-call - - patterns - - - begin - (?=[_$a-zA-Z][_$\w]*\s*\() - end - (?=\() - name - meta.function-call.static.with-arguments.js - patterns - - - match - ([_$a-zA-Z][_$\w]*)? - name - entity.name.function.js - - - - - - literal-method - - patterns - - - captures - - 1 - - name - entity.name.function.js - - - name - meta.function-call.method.with-arguments.js - match - (?x)(?<= \. ) ([_$a-zA-Z][_$\w]*) (?=\() - - - captures - - 2 - - name - meta.group.braces.round.function.arguments.js - - 1 - - name - entity.name.function.js - - 3 - - name - punctuation.section.scope.round.js - - - name - meta.function-call.method.without-arguments.js - match - (?x)(?<= \. ) ([_$a-zA-Z][_$\w]*) ((\( \s* \))) - - - begin - (?x) - \b(function) - (?= - (?:\b(?:[_$a-zA-Z][_$\w]*))? \s* # The function name - \(.*?\) # The properties that the function accepts - ) - comment - function(one,two,...)\n?{...} - beginCaptures - - 1 - - name - storage.type.function.js - - - name - meta.function.js - patterns - - - include - $base - - - end - (?<=})(\s*\n)? - - - captures - - 1 - - name - entity.name.method.js - - 2 - - name - punctuation.definition.parameters.begin.js - - 3 - - name - variable.parameter.method.js - - 4 - - name - punctuation.definition.parameters.begin.js - - - name - meta.method.js - match - (?x) - (?<![_$\w] )(?<!function) - ([_$a-zA-Z][_$\w]*) - (\() (\s* - (.*?) - )?\s* (\)) - \s* - (?={) - - - - literal-class - - patterns - - - captures - - 1 - - name - storage.type.class.js - - 2 - - name - entity.name.class.js - - 3 - - name - storage.type.extends.js - - 4 - - name - entity.name.extends.js - - - comment - match regular class like: class MyClass { } - match - \b(class)\b(?:\s+([a-zA-Z_$]\w*)\s*(?:\b(extends)\b\s*([a-zA-Z_$][.\w]*))?)?\s* - name - meta.class.js - - - captures - - 1 - - name - storage.type.accessor.js - - 2 - - name - entity.name.accessor.js - - 3 - - name - punctuation.definition.parameters.begin.js - - 4 - - name - variable.parameter.accessor.js - - 5 - - name - punctuation.definition.parameters.end.js - - - comment - Concise getter and setter - match - \b([gs]et\s*)\b([a-zA-Z_$][\w?_$]*)\s*(\()(.*?)(\)) - name - meta.accessor.js - - - - literal-module - - patterns - - - comment - match module like: module Module { } - match - \b(module)(?:\s+([a-zA-Z_$][_$\w]*))?\s*(?=\{) - name - meta.module.js - captures - - 1 - - name - storage.type.module.js - - 2 - - name - entity.name.module.js - - - - - comment - match export like: export decl - match - \b(export)\b\s*(?=(?:module|class|function|var|let|const)\b(?:\s+[a-zA-Z_$][_$\w]*)?) - name - meta.module.export.js - captures - - 1 - - name - storage.type.export.js - - - - - - arrow-function - - patterns - - - name - arrow.function.js - patterns - - - match - (?x)\s*( - (?:(\() (.*?)? (\))) - | ([_$a-zA-Z][_$\w]*) - )\s*(=>) - name - storage.type.function.arrow.js - comment - match stuff like:(args) => - captures - - 1 - - name - entity.arrow.function.js - - 2 - - name - punctuation.definition.parameters.begin.js - - 3 - - name - variable.parameter.function.arrow.js - - 4 - - name - punctuation.definition.parameters.end.js - - 5 - - name - variable.parameter.function.arrow.js - - 6 - - name - punctuation.definition.arrow.js - - - - - - - - literal-function-constructor - - patterns - - - captures - - 1 - - name - storage.type.function.js - - 2 - - name - entity.name.function.js - - 3 - - name - punctuation.definition.parameters.begin.js - - 4 - - name - variable.parameter.function.js - - 5 - - name - punctuation.definition.parameters.end.js - - - comment - match regular function like: function myFunc(arg) { } - match - \b(function)(?:\s+([a-zA-Z_$]\w*))?\s*(\()(.*?)(\)) - name - meta.function.js - - - captures - - 1 - - name - support.class.js - - 2 - - name - support.constant.js - - - comment - match stuff like: Sound.prototype = { } when extending an object - match - ([a-zA-Z_?.$][\w?.$]*)\.(prototype)\s*=\s* - name - meta.prototype.declaration.js - - - captures - - 1 - - name - support.class.js - - 2 - - name - support.constant.js - - 3 - - name - entity.name.function.js - - 4 - - name - storage.type.function.js - - 5 - - name - punctuation.definition.parameters.begin.js - - 6 - - name - variable.parameter.function.js - - 7 - - name - punctuation.definition.parameters.end.js - - - comment - match stuff like: Sound.prototype.play = function() { } - match - ([a-zA-Z_?.$][\w?.$]*)\.(prototype)\.([a-zA-Z_?.$][\w?.$]*)\s*=\s*(function)?\s*(\()(.*?)(\)) - name - meta.prototype.function.js - - - captures - - 1 - - name - support.class.js - - 2 - - name - support.constant.js - - - comment - Sound.prototype - match - ([a-zA-Z_?.$][\w?.$]*)\.(prototype) - name - meta.prototype.js - - - captures - - 1 - - name - support.class.js - - 2 - - name - support.constant.js - - 3 - - name - entity.name.function.js - - - comment - match stuff like: Sound.prototype.play = myfunc - match - ([a-zA-Z_?.$][\w?.$]*)\.(prototype)\.([a-zA-Z_?.$][\w?.$]*)\s*=\s* - name - meta.function.js - - - captures - - 1 - - name - support.object.js - - 2 - - name - entity.name.function.js - - 3 - - name - storage.type.function.js - - 4 - - name - entity.name.function.js - - 5 - - name - punctuation.definition.parameters.begin.js - - 6 - - name - variable.parameter.function.js - - 7 - - name - punctuation.definition.parameters.end.js - - - comment - match stuff like: Sound.play = function() { } - match - ([a-zA-Z_?.$][\w?.$]*)\.([a-zA-Z_?.$][\w?.$]*)\s*=\s*(function)( [a-zA-Z_?.$][\w?.$]*)?\s*(\()(.*?)(\)) - name - meta.function.js - - - captures - - 1 - - name - entity.name.function.js - - 2 - - name - punctuation.separator.key-value.js - - 3 - - name - storage.type.function.js - - 4 - - name - punctuation.definition.parameters.begin.js - - 5 - - name - variable.parameter.function.js - - 6 - - name - punctuation.definition.parameters.end.js - - - comment - match stuff like: foobar: function() { } - match - \b([a-zA-Z_?.$][\w?.$]*)\s*(:)\s*\b(function)?\s*(\()(.*?)(\)) - name - meta.function.json.js - - - captures - - 1 - - name - string.quoted.single.js - - 10 - - name - storage.type.function.js - - 11 - - name - punctuation.definition.parameters.begin.js - - 12 - - name - variable.parameter.function.js - - 13 - - name - punctuation.definition.parameters.end.js - - 2 - - name - punctuation.definition.string.begin.js - - 3 - - name - entity.name.function.js - - 4 - - name - punctuation.definition.string.end.js - - 5 - - name - string.quoted.double.js - - 6 - - name - punctuation.definition.string.begin.js - - 7 - - name - entity.name.function.js - - 8 - - name - punctuation.definition.string.end.js - - 9 - - name - punctuation.separator.key-value.js - - - comment - Attempt to match "foo": function - match - (?:((')(.*?)('))|((")(.*?)(")))\s*(:)\s*\b(function)?\s*(\()(.*?)(\)) - name - meta.function.json.js - - - - literal-keywords - - patterns - - - captures - - 1 - - name - keyword.operator.new.js - - 2 - - name - entity.name.type.new.js - - - match - (new)\s+([a-zA-Z_?.$][\w?.$]*) - name - meta.instance.constructor - - - match - \b(var|let|const)\b - name - keyword.control.declaration.js - - - match - \b(return|yield)\b - name - keyword.control.flow.js - - - match - \b(else|if)\b - name - keyword.control.conditional.js - - - match - \b(catch|finally|throw|try)\b - name - keyword.control.trycatch.js - - - match - \b(break|continue|do|for|goto|while)\b - name - keyword.control.loop.js - - - match - \b(case|default|switch)\b - name - keyword.control.switch.js - - - match - \b(delete|in(stanceof)?|new|typeof|void|with)\b - name - keyword.operator.js - - - match - \btrue\b - name - constant.language.boolean.true.js - - - match - \bfalse\b - name - constant.language.boolean.false.js - - - match - \bnull\b - name - constant.language.null.js - - - match - \bundefined\b - name - constant.language.undefined.js - - - match - \bNaN\b - name - constant.language.nan.js - - - match - (?<!\.)\b(arguments)\b - name - variable.language.arguments.js - - - match - (?<!\.)\b(super)\b - name - variable.language.super.js - - - match - (?<!\.)\b(this)\b - name - variable.language.this.js - - - match - (?<!\.)\b(self)\b - name - storage.self.js - - - match - (?<=\.)\b(__proto__)\b - name - variable.language.proto.js - - - match - (?<=\.)\b(constructor)\b - name - variable.language.constructor.js - - - match - (?<=\.)\b(prototype)\b - name - variable.language.prototype.js - - - match - !|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|/=|%=|\+=|\-=|&=|\^= - name - keyword.operator.js - - - match - : - name - punctuation.separator.key-value - - - match - (?x) - !(?!=)| # logical-not right-to-left right - && | # logical-and left-to-right both - \|\| # logical-or left-to-right both - name - keyword.operator.logical.js - - - match - (?x) - %= | # assignment right-to-left both - &= | # assignment right-to-left both - \*= | # assignment right-to-left both - \+= | # assignment right-to-left both - -= | # assignment right-to-left both - /= | # assignment right-to-left both - \^= | # assignment right-to-left both - \|= | # assignment right-to-left both - <<= | # assignment right-to-left both - >>= | # assignment right-to-left both - >>>= # assignment right-to-left both - name - keyword.operator.assignment.augmented.js - - - match - (?x) - ~ | # bitwise-not right-to-left right - << | # bitwise-shift left-to-right both - >>> | # bitwise-shift left-to-right both - >> | # bitwise-shift left-to-right both - & | # bitwise-and left-to-right both - \^ | # bitwise-xor left-to-right both - \| # bitwise-or left-to-right both - name - keyword.operator.bitwise.js - - - match - (?x) - <= | # relational left-to-right both - >= | # relational left-to-right both - < | # relational left-to-right both - > # relational left-to-right both - name - keyword.operator.relational.js - - - match - (?x) - === | # equality left-to-right both - !== | # equality left-to-right both - == | # equality left-to-right both - != # equality left-to-right both - name - keyword.operator.comparison.js - - - match - (?x)= - name - keyword.operator.assignment.js - - - match - (?x) - -- | # decrement n/a right-or-left - \+\+ | # increment n/a right-or-left - / | # division left-to-right both - % | # modulus left-to-right both - \* | # multiplication left-to-right both - \+ | # addition left-to-right both - - # subtraction left-to-right both - name - keyword.operator.arithmetic.js - - - - literal-labels - - patterns - - - captures - - 2 - - name - punctuation.separator.key-value.js - - - match - (?<=['"])(\s*)(:) - - - captures - - 1 - - name - string.unquoted.label.js - - 2 - - name - punctuation.separator.key-value.js - - - match - (?<!\?|\? |case )(?!\?)([_$a-zA-Z][_$\w]*)\s*(:) - name - constant.other.object.key.js - - - - literal-number - - patterns - - - match - (?i)(?:\B[-+]|\b)0x[0-9a-f]*\.(\B|\b[0-9]+) - name - invalid.illegal.numeric.hex.js - - - match - (?:\B[-+]|\b)0[0-9]+\.(\B|\b[0-9]+) - name - invalid.illegal.numeric.octal.js - - - match - (?xi)(?:\B[-+])?(?: - \b0x[0-9a-f]* # HEX - |( \B\.[0-9]+ # EG: .999 - | \b[0-9]+ (\.[0-9]*)? # EG: 999.999 or 999. or 999 - )(e[-+]?[0-9]+)? # EG: e+123 or E-123 - ) - name - constant.numeric.js - - - match - (?:\B[-+]|\b)(Infinity)\b - name - constant.language.infinity.js - - - - literal-punctuation - - patterns - - - match - \; - name - punctuation.terminator.statement.js - - - match - , - name - meta.delimiter.object.comma.js - - - match - \. - name - meta.delimiter.method.period.js - - - match - \{|\} - name - meta.brace.curly.js - - - match - \(|\) - name - meta.brace.round.js - - - match - \[|\] - name - meta.brace.square.js - - - match - (?<=\.)\s - name - meta.complete.method - - - - literal-quasi - - patterns - - - begin - ([a-zA-Z$_][\w$_]*)?(`) - beginCaptures - - 1 - - name - entity.quasi.tag.name.js - - 2 - - name - punctuation.definition.quasi.begin.js - - - end - ` - endCaptures - - 0 - - name - punctuation.definition.quasi.end.js - - - name - string.quasi.js - patterns - - - name - entity.quasi.element.js - begin - \${ - beginCaptures - - 0 - - name - punctuation.quasi.element.begin.js - - - end - } - endCaptures - - 0 - - name - punctuation.quasi.element.end.js - - - patterns - - - include - $base - - - - - - - - literal-regex - - patterns - - - begin - (?x) (?<= [\[,=(:] | ^ | && | return )\s*((/)) (?! [/*+{}?] | $ ) - beginCaptures - - 1 - - name - string.regexp.js - - 2 - - name - punctuation.definition.string.begin.js - - - contentName - string.regexp.js - end - ((/([igm]*)))|(?=</\s*script\s*>\s*\n)|(?<=[^\\]\n) - endCaptures - - 1 - - name - string.regexp.js - - 2 - - name - punctuation.definition.string.end.js - - 3 - - name - keyword.other.js - - - patterns - - - match - \\\n - name - constant.character.escape.newline.js - - - match - \n - name - invalid.illegal.newline.js - - - match - \\. - name - constant.character.escape.js - - - - - - literal-string - - patterns - - - begin - ' - beginCaptures - - 0 - - name - punctuation.definition.string.begin.js - - - end - (?i)'|(?=</\s*script\s*>\s*\n)|(?<=[^\\]\n) - endCaptures - - 0 - - name - punctuation.definition.string.end.js - - - name - string.quoted.single.js - patterns - - - include - #string-single-innards - - - - - begin - " - beginCaptures - - 0 - - name - punctuation.definition.string.begin.js - - - end - (?i)"|(?=</\s*script\s*>\s*\n)|(?<=[^\\]\n) - endCaptures - - 0 - - name - punctuation.definition.string.end.js - - - name - string.quoted.double.js - patterns - - - include - #string-double-innards - - - - - - literal-variable - - patterns - - - match - \.?[A-Z][_$\dA-Z]*\b - name - variable.other.constant.js - - - match - \b([A-Z][_$\w]*\.?)\s*?(?:([a-z$_][\w_$]*(?=\())|([a-z$_][\w_$]*))? - name - meta.entity.static.js - captures - - 1 - - name - variable.other.class.js - - 2 - - name - meta.function.call.class.static.js - - 3 - - name - variable.other.class.static.js - - - - - match - (?<!\.)[_$a-zA-Z][_$\w]*\s*(?=[\[\.]) - name - variable.other.object.js - - - captures - - 0 - - name - meta.property-name.js - - 1 - - name - variable.other.object.js - - - match - ([_$a-zA-Z][_$\w]*)\s*(?=[\[\.]) - name - meta.property.js - - - captures - - 0 - - name - variable.other.property.js - - - match - (?<=[\.\]])\s*[_$a-zA-Z][_$\w]* - name - meta.property.js - - - match - [_$a-zA-Z][_$\w]* - name - variable.other.readwrite.js - - - - special - - patterns - - - match - \b(console)\b - name - entity.name.type.object.js.firebug - - - match - \.(warn|info|log|error|time|timeEnd|assert)\b - name - support.function.js.firebug - - - match - \b(debugger)\b - name - keyword.other.js - - - - special-comments-conditional-compilation - - patterns - - - begin - /\*(?=@) - captures - - 0 - - name - punctuation.definition.comment.js - - - end - \*/ - endCaptures - - 1 - - name - keyword.control.conditional.js - - 2 - - name - punctuation.definition.keyword.js - - - name - comment.block.conditional.js - patterns - - - include - $base - - - - - captures - - 1 - - name - punctuation.definition.keyword.js - - - match - (@)(if|elif|else|end) - name - keyword.control.conditional.js - - - captures - - 1 - - name - punctuation.definition.keyword.js - - - match - (@)(cc_on|set) - name - keyword.operator.conditional.js - - - captures - - 1 - - name - punctuation.definition.variable.js - - - match - (@)(_win32|_win16|_mac|_alpha|_x86|_mc680x0|_PowerPC|_jscript_build|_jscript_version|_jscript|_debug|_fast|[a-zA-Z]\w+) - name - variable.other.conditional.js - - - - string-double-innards - - patterns - - - match - \\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]|37[0-7]?|[4-7][0-7]?|.) - name - constant.character.escape.js - - - match - \\\n - name - constant.character.escape.newline.js - - - match - \n - name - invalid.illegal.newline.js - - - match - (?i)</\s*script\s*> - name - invalid.deprecated.inconsistent.js - - - - string-single-innards - - patterns - - - match - \\(x\h{2}|[0-2][0-7]{,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.) - name - constant.character.escape.js - - - match - \\\n - name - constant.character.escape.newline.js - - - match - \n - name - invalid.illegal.newline.js - - - match - (?i)</\s*script\s*> - name - invalid.deprecated.inconsistent.js - - - - sugar - - patterns - - - begin - ^(?=(\t| )) - end - (?=[^\t\s]) - name - meta.leading-tabs - patterns - - - captures - - 1 - - name - meta.odd-tab.group1.spaces - - 10 - - name - meta.even-tab.group10.spaces - - 11 - - name - meta.odd-tab.group11.spaces - - 2 - - name - meta.even-tab.group2.spaces - - 3 - - name - meta.odd-tab.group3.spaces - - 4 - - name - meta.even-tab.group4.spaces - - 5 - - name - meta.odd-tab.group5.spaces - - 6 - - name - meta.even-tab.group6.spaces - - 7 - - name - meta.odd-tab.group7.spaces - - 8 - - name - meta.even-tab.group8.spaces - - 9 - - name - meta.odd-tab.group9.spaces - - - match - ( )( )?( )?( )?( )?( )?( )?( )?( )?( )?( )? - - - captures - - 1 - - name - meta.odd-tab.group1.tab - - 10 - - name - meta.even-tab.group10.tab - - 11 - - name - meta.odd-tab.group11.tab - - 2 - - name - meta.even-tab.group2.tab - - 3 - - name - meta.odd-tab.group3.tab - - 4 - - name - meta.even-tab.group4.tab - - 5 - - name - meta.odd-tab.group5.tab - - 6 - - name - meta.even-tab.group6.tab - - 7 - - name - meta.odd-tab.group7.tab - - 8 - - name - meta.even-tab.group8.tab - - 9 - - name - meta.odd-tab.group9.tab - - - match - (\t)(\t)?(\t)?(\t)?(\t)?(\t)?(\t)?(\t)?(\t)?(\t)?(\t)? - - - - - - support - - patterns - - - match - \b(Array|Boolean|Date|Function|Map|Number|Object|Proxy|RegExp|Set|String|WeakMap)\b - name - support.class.builtin.js - - - match - \b((Eval|Range|Reference|Syntax|Type|URI)?Error)\b - name - support.class.error.js - - - match - \b(s(hift|ort|plice)|unshift|p(op|ush)|reverse)\b(?=\() - name - entity.name.function.mutator.js - - - match - \b(natives|buffer|child_process|cluster|crypto|d(gram|ns)|fs|http(s)?|net|os|path|punycode|(query)?string(_decoder)?|re(adline|pl)|tls|tty|util|vm|zlib)\b - name - support.module.node.js - - - match - \b(process(.env)?|global|GLOBAL|root|std(out|in|err)|exports)\b - name - support.keyword.node.js - - - match - \b(Buffer|EventEmitter|Server|Pipe|Socket|REPLServer|ReadStream|WriteStream|Stream|Inflate|Deflate|InflateRaw|DeflateRaw|GZip|GUnzip|Unzip|Zip)\b - name - support.class.node.js - - - match - \b(decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|eval|isFinite|isNaN|parseFloat|parseInt|unescape)\b(?=\() - name - entity.name.function.js - - - match - \b(ELEMENT_NODE|ATTRIBUTE_NODE|TEXT_NODE|CDATA_SECTION_NODE|ENTITY_REFERENCE_NODE|ENTITY_NODE|PROCESSING_INSTRUCTION_NODE|COMMENT_NODE|DOCUMENT_NODE|DOCUMENT_TYPE_NODE|DOCUMENT_FRAGMENT_NODE|NOTATION_NODE|INDEX_SIZE_ERR|DOMSTRING_SIZE_ERR|HIERARCHY_REQUEST_ERR|WRONG_DOCUMENT_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR|NOT_SUPPORTED_ERR|INUSE_ATTRIBUTE_ERR)\b - name - support.constant.dom.js - - - - - uuid - 0D2D03B9-F18B-4D9D-A960-716FDEC35331 - + + fileTypes + + js + htc + jsx + + firstLineMatch + ^#!/.*\b(node|js) + keyEquivalent + ^~J + name + JavaScript Next + patterns + + + include + #comments + + + include + #support + + + include + #core + + + include + #special + + + repository + + brackets + + patterns + + + captures + + 1 + + name + entity.name.function.js + + + match + (?x) + (?<=\.) + ([_$a-zA-Z][_$\w]*)? + (?=\() + name + meta.function-call.method.with-arguments.js + + + begin + (\() + beginCaptures + + 1 + + name + meta.brace.round.js + + + end + (\)) + endCaptures + + 1 + + name + meta.brace.round.js + + + name + meta.group.braces.round + patterns + + + include + source.js + + + + + begin + (\[) + beginCaptures + + 1 + + name + meta.brace.square.js + + + end + (\]) + endCaptures + + 1 + + name + meta.brace.square.js + + + name + meta.group.braces.square + patterns + + + include + source.js + + + + + + comments + + patterns + + + include + #special-comments-conditional-compilation + + + begin + /\*\*(?!/) + captures + + 0 + + name + punctuation.definition.comment.js + + + end + \*/ + name + comment.block.documentation.js + + + begin + /\* + captures + + 0 + + name + punctuation.definition.comment.js + + + end + \*/ + name + comment.block.js + + + captures + + 1 + + name + punctuation.definition.comment.js + + + match + (//).*$\n? + name + comment.line.double-slash.js + + + captures + + 0 + + name + punctuation.definition.comment.html.js + + 2 + + name + punctuation.definition.comment.html.js + + + match + (<!--|-->) + name + comment.block.html.js + + + + core + + patterns + + + include + #leading-space + + + include + #literal-regex + + + include + #literal-number + + + include + #literal-quasi + + + include + #literal-language-constant + + + include + #literal-keywords + + + include + #literal-class + + + include + #literal-module + + + include + #literal-arrow-function + + + include + #literal-function-storage + + + include + #literal-method + + + include + #literal-prototype-storage + + + include + #literal-string + + + include + #literal-language-variable + + + include + #literal-function-call + + + include + #literal-labels + + + include + #literal-variable + + + include + #literal-punctuation + + + include + #brackets + + + + function-declaration-parameters + + patterns + + + begin + (\() + beginCaptures + + 1 + + name + punctuation.definition.parameters.begin.js + + + end + (\)) + endCaptures + + 1 + + name + punctuation.definition.parameters.end.js + + + patterns + + + match + (?x) + [_$a-zA-Z][_$\w]* + name + variable.parameter.function.js + + + match + , + name + punctuation.separator.parameter.function.js + + + include + #comments + + + + + + leading-space + + patterns + + + begin + ^(?=(\t| )) + end + (?=[^\t\s]) + name + meta.leading-tabs + patterns + + + captures + + 1 + + name + meta.odd-tab.group1.spaces + + 10 + + name + meta.even-tab.group10.spaces + + 11 + + name + meta.odd-tab.group11.spaces + + 2 + + name + meta.even-tab.group2.spaces + + 3 + + name + meta.odd-tab.group3.spaces + + 4 + + name + meta.even-tab.group4.spaces + + 5 + + name + meta.odd-tab.group5.spaces + + 6 + + name + meta.even-tab.group6.spaces + + 7 + + name + meta.odd-tab.group7.spaces + + 8 + + name + meta.even-tab.group8.spaces + + 9 + + name + meta.odd-tab.group9.spaces + + + match + ( )( )?( )?( )?( )?( )?( )?( )?( )?( )?( )? + + + captures + + 1 + + name + meta.odd-tab.group1.tab + + 10 + + name + meta.even-tab.group10.tab + + 11 + + name + meta.odd-tab.group11.tab + + 2 + + name + meta.even-tab.group2.tab + + 3 + + name + meta.odd-tab.group3.tab + + 4 + + name + meta.even-tab.group4.tab + + 5 + + name + meta.odd-tab.group5.tab + + 6 + + name + meta.even-tab.group6.tab + + 7 + + name + meta.odd-tab.group7.tab + + 8 + + name + meta.even-tab.group8.tab + + 9 + + name + meta.odd-tab.group9.tab + + + match + (\t)(\t)?(\t)?(\t)?(\t)?(\t)?(\t)?(\t)?(\t)?(\t)?(\t)? + + + + + + literal-arrow-function + + patterns + + + begin + (?x) + (?=\([^())]*\)\s*(=>)) + end + (?<=\))\s*(=>) + endCaptures + + 1 + + name + storage.type.function.arrow.js + + + name + meta.function.arrow.js + patterns + + + include + #function-declaration-parameters + + + + + + literal-class + + patterns + + + captures + + 1 + + name + storage.type.class.js + + 2 + + name + entity.name.class.js + + 3 + + name + storage.type.extends.js + + 4 + + name + entity.name.extends.js + + + match + \b(class)\b(?:\s+([_$a-zA-Z][_$\w]*)\s*(?:\b(extends)\b\s*([_$a-zA-Z][_$\w]*))?)?\s* + name + meta.class.js + + + captures + + 1 + + name + storage.modifier.js + + 2 + + name + storage.type.js + + 3 + + name + entity.name.field.js + + + match + \b(?:(public|private|static)\s+)(?:(var|let|const)\s+)?([_$a-zA-Z][_$\w]*\s*)(?=\=) + + + captures + + 1 + + name + support.function.private.js + + + match + \b(private)(?=\s*\() + + + match + \b(public|private|static)\b + name + storage.modifier.js + + + begin + \b(get|set)\s*\b([_$a-zA-Z][_$\w]*)\s* + beginCaptures + + 1 + + name + storage.type.accessor.js + + 2 + + name + entity.name.accessor.js + + + end + (?<=\)) + name + meta.accessor.js + patterns + + + include + #function-declaration-parameters + + + + + + literal-function-call + + patterns + + + begin + (?=[_$a-zA-Z][_$\w]*\s*\() + end + (?=\() + name + meta.function-call.static.with-arguments.js + patterns + + + match + ([_$a-zA-Z][_$\w]*)? + name + entity.name.function.js + + + + + + literal-function-storage + + patterns + + + begin + \b(function(?:\s*\*|(?=\s|[(])))(?:\s*([a-zA-Z_$][_$\w]*))?\s* + beginCaptures + + 1 + + name + storage.type.function.js + + 2 + + name + entity.name.function.js + + + end + (?<=\)) + name + meta.function.js + patterns + + + include + #function-declaration-parameters + + + + + begin + ([_$a-zA-Z][_$\w]*)\.(prototype)\.([_$a-zA-Z][_$\w]*)\s*=\s*(function(?:\s*\*|(?=\s|[(])))\s* + beginCaptures + + 1 + + name + entity.name.class.js + + 2 + + name + support.constant.js + + 3 + + name + entity.name.function.js + + 4 + + name + storage.type.function.js + + + end + (?<=\)) + name + meta.prototype.function.js + patterns + + + include + #function-declaration-parameters + + + + + begin + (?x) + (?= + ([_$a-zA-Z][_$\w]*)? + \.([_$a-zA-Z][_$\w]*)\s* + =\s* + (function\s*\*?)\s* + ) + end + (?<=\)) + name + meta.function.static.js + patterns + + + include + #literal-language-variable + + + begin + \b(function(?:\s*\*|(?=\s|[(])))(?:\s*([a-zA-Z_$][_$\w]*))?\s* + beginCaptures + + 1 + + name + storage.type.function.js + + 2 + + name + entity.name.function.js + + + end + (?<=\)) + patterns + + + include + #function-declaration-parameters + + + + + + + begin + \b([_$a-zA-Z][_$\w]*)\s*(:)\s*\b(function(?:\s*\*|(?=\s|[(])))\s* + beginCaptures + + 1 + + name + entity.name.function.js + + 2 + + name + punctuation.separator.key-value.js + + 3 + + name + storage.type.function.js + + + end + (?<=\)) + name + meta.function.json.js + patterns + + + include + #function-declaration-parameters + + + + + begin + (?x) + (?: + ((')(.*?)(?<!\\)('))| + ((")(.*?)(?<!\\)(")) + )\s* + (:)\s* + \b(function(?:\s*\*|(?=\s|[(])))\s* + beginCaptures + + 1 + + name + string.quoted.single.js + + 10 + + name + storage.type.function.js + + 2 + + name + punctuation.definition.string.begin.js + + 3 + + name + entity.name.function.js + + 4 + + name + punctuation.definition.string.end.js + + 5 + + name + string.quoted.double.js + + 6 + + name + punctuation.definition.string.begin.js + + 7 + + name + entity.name.function.js + + 8 + + name + punctuation.definition.string.end.js + + 9 + + name + punctuation.separator.key-value.js + + + end + (?<=\)) + name + meta.function.json.js + patterns + + + include + #function-declaration-parameters + + + + + + literal-keywords + + patterns + + + begin + (new)\s+(?=[_$a-zA-Z][_$\w.]*) + beginCaptures + + 1 + + name + keyword.operator.new.js + + + end + (?![_$a-zA-Z][_$\w.]*) + name + meta.instance.constructor + patterns + + + include + #support + + + captures + + 2 + + name + entity.name.type.new.js + + + match + ([_$a-zA-Z][_$\w.]*\.)?([_$a-zA-Z][_$\w]*) + + + + + match + \b(var|let|const)\b + name + storage.type.js + + + match + \b(return|yield)\b + name + keyword.control.flow.js + + + match + \b(else|if)\b + name + keyword.control.conditional.js + + + match + \b(catch|finally|throw|try)\b + name + keyword.control.trycatch.js + + + match + \b(break|continue|do|for|goto|while)\b + name + keyword.control.loop.js + + + match + \b(case|default|switch)\b + name + keyword.control.switch.js + + + match + \b(delete|in(stanceof)?|of|new|typeof|void|with)\b + name + keyword.operator.js + + + match + !|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|/=|%=|\+=|\-=|&=|\^= + name + keyword.operator.js + + + match + : + name + punctuation.separator.key-value + + + match + (?x) + !(?!=)| # logical-not right-to-left right + && | # logical-and left-to-right both + \|\| # logical-or left-to-right both + name + keyword.operator.logical.js + + + match + (?x) + %= | # assignment right-to-left both + &= | # assignment right-to-left both + \*= | # assignment right-to-left both + \+= | # assignment right-to-left both + -= | # assignment right-to-left both + /= | # assignment right-to-left both + \^= | # assignment right-to-left both + \|= | # assignment right-to-left both + <<= | # assignment right-to-left both + >>= | # assignment right-to-left both + >>>= # assignment right-to-left both + name + keyword.operator.assignment.augmented.js + + + match + (?x) + ~ | # bitwise-not right-to-left right + << | # bitwise-shift left-to-right both + >>> | # bitwise-shift left-to-right both + >> | # bitwise-shift left-to-right both + & | # bitwise-and left-to-right both + \^ | # bitwise-xor left-to-right both + \| # bitwise-or left-to-right both + name + keyword.operator.bitwise.js + + + match + (?x) + <= | # relational left-to-right both + >= | # relational left-to-right both + < | # relational left-to-right both + > # relational left-to-right both + name + keyword.operator.relational.js + + + match + (?x) + === | # equality left-to-right both + !== | # equality left-to-right both + == | # equality left-to-right both + != # equality left-to-right both + name + keyword.operator.comparison.js + + + match + (?x)= + name + keyword.operator.assignment.js + + + match + (?x) + -- | # decrement n/a right-or-left + \+\+ | # increment n/a right-or-left + / | # division left-to-right both + % | # modulus left-to-right both + \* | # multiplication left-to-right both + \+ | # addition left-to-right both + - # subtraction left-to-right both + name + keyword.operator.arithmetic.js + + + + literal-labels + + patterns + + + captures + + 2 + + name + punctuation.separator.key-value.js + + + match + (?<=['"])(\s*)(:) + + + captures + + 1 + + name + string.unquoted.label.js + + 2 + + name + punctuation.separator.key-value.js + + + match + (?<!\?|\? |case )(?!\?)([_$a-zA-Z][_$\w]*)\s*(:) + name + constant.other.object.key.js + + + + literal-language-constant + + patterns + + + match + \btrue\b + name + constant.language.boolean.true.js + + + match + \bfalse\b + name + constant.language.boolean.false.js + + + match + \bnull\b + name + constant.language.null.js + + + match + \bundefined\b + name + constant.language.undefined.js + + + match + \bNaN\b + name + constant.language.nan.js + + + + literal-language-variable + + patterns + + + match + (?<!\.)\b(arguments)\b + name + variable.language.arguments.js + + + match + (?<!\.)\b(super)\b + name + variable.language.super.js + + + match + (?<!\.)\b(this)\b + name + variable.language.this.js + + + match + (?<!\.)\b(self)\b + name + variable.language.self.js + + + match + (?<=\.)\b(__proto__)\b + name + variable.language.proto.js + + + match + (?<=\.)\b(constructor)\b + name + variable.language.constructor.js + + + match + (?<=\.)\b(prototype)\b + name + variable.language.prototype.js + + + + literal-method + + patterns + + + captures + + 1 + + name + entity.name.function.js + + + match + (?x) + (?<=\.) + ([_$a-zA-Z][_$\w]*) + (?=\() + name + meta.function-call.method.with-arguments.js + + + captures + + 1 + + name + entity.name.function.js + + 2 + + name + meta.group.braces.round.function.arguments.js + + 3 + + name + meta.brace.round.js + + + match + (?x) + (?<=\.) + ([_$a-zA-Z][_$\w]*) + (\(\s*\)) + name + meta.function-call.method.without-arguments.js + + + begin + (?x) + (?<!function\s) # An approximation due to fixed width look-behind, but usually good enough + \b([_$a-zA-Z][_$\w]*) + \s* + (?=\([^())]*\)\s*\{) + beginCaptures + + 1 + + name + entity.name.method.js + + + end + (?<=\)) + name + meta.method.js + patterns + + + include + #function-declaration-parameters + + + + + + literal-module + + patterns + + + match + \b(module)\b + name + storage.type.module.js + + + match + \b(import|export|from|as)\b + name + keyword.operator.module.js + + + + literal-number + + patterns + + + match + (?i)(?:\B[-+]|\b)0x[0-9a-f]*\.(\B|\b[0-9]+) + name + invalid.illegal.numeric.hex.js + + + match + (?:\B[-+]|\b)0[0-9]+\.(\B|\b[0-9]+) + name + invalid.illegal.numeric.octal.js + + + match + (?xi) + (?:\B[-+])? + (?: + \b0x[0-9a-f]*| # hex + ( + \B\.[0-9]+| # e.g. .999 + \b[0-9]+(\.[0-9]*)? # e.g. 999.999, 999. or 999 + )(e[-+]?[0-9]+)? # e.g. e+123, E-123 + ) + name + constant.numeric.js + + + match + (?:\B[-+]|\b)(Infinity)\b + name + constant.language.infinity.js + + + + literal-prototype-storage + + patterns + + + captures + + 1 + + name + entity.name.class.js + + 2 + + name + support.constant.js + + + match + ([_$a-zA-Z][_$\w]*)\.(prototype)\s*=\s* + name + meta.prototype.declaration.js + + + captures + + 1 + + name + entity.name.class.js + + 2 + + name + support.constant.js + + + match + ([_$a-zA-Z][_$\w]*)\.(prototype) + name + meta.prototype.js + + + + literal-punctuation + + patterns + + + match + \; + name + punctuation.terminator.statement.js + + + match + , + name + meta.delimiter.object.comma.js + + + match + \. + name + meta.delimiter.method.period.js + + + match + \{|\} + name + meta.brace.curly.js + + + match + \(|\) + name + meta.brace.round.js + + + match + \[|\] + name + meta.brace.square.js + + + match + (?<=\.)\s + name + meta.complete.method + + + + literal-quasi + + patterns + + + begin + ([a-zA-Z$_][\w$_]*)?(`) + beginCaptures + + 1 + + name + entity.quasi.tag.name.js + + 2 + + name + punctuation.definition.quasi.begin.js + + + end + ` + endCaptures + + 0 + + name + punctuation.definition.quasi.end.js + + + name + string.quasi.js + patterns + + + begin + \${ + beginCaptures + + 0 + + name + punctuation.quasi.element.begin.js + + + end + } + endCaptures + + 0 + + name + punctuation.quasi.element.end.js + + + name + entity.quasi.element.js + patterns + + + include + source.js + + + + + + + + literal-regex + + patterns + + + begin + (?x) + (?<= + [\[,=(:?]| + ^|&&| + return + )\s* + (/) + (?![/*+{}?]|$) + beginCaptures + + 1 + + name + string.regexp.js + + 2 + + name + punctuation.definition.string.begin.js + + + contentName + string.regexp.js + end + ((/)([gimy]*)) + endCaptures + + 1 + + name + string.regexp.js + + 2 + + name + punctuation.definition.string.end.js + + 3 + + name + keyword.other.js + + + patterns + + + include + source.regexp.js + + + + + + literal-string + + patterns + + + begin + ' + beginCaptures + + 0 + + name + punctuation.definition.string.begin.js + + + end + (')|(\n) + endCaptures + + 1 + + name + punctuation.definition.string.end.js + + 2 + + name + invalid.illegal.newline.js + + + name + string.quoted.single.js + patterns + + + include + #string-content + + + + + begin + " + beginCaptures + + 0 + + name + punctuation.definition.string.begin.js + + + end + (")|(\n) + endCaptures + + 1 + + name + punctuation.definition.string.end.js + + 2 + + name + invalid.illegal.newline.js + + + name + string.quoted.double.js + patterns + + + include + #string-content + + + + + + literal-variable + + patterns + + + match + \.?[A-Z][_$\dA-Z]*\b + name + variable.other.constant.js + + + captures + + 1 + + name + variable.other.class.js + + 2 + + name + meta.function-call.class.static.js + + 3 + + name + variable.other.class.static.js + + + match + \b([A-Z][_$\w]*\.?)\s*?(?:([a-z$_][\w_$]*(?=\())|([a-z$_][\w_$]*))? + name + meta.entity.static.js + + + match + (?<!\.)[_$a-zA-Z][_$\w]*\s*(?=[\[\.]) + name + variable.other.object.js + + + captures + + 0 + + name + meta.property-name.js + + 1 + + name + variable.other.object.js + + + match + ([_$a-zA-Z][_$\w]*)\s*(?=[\[\.]) + name + meta.property.js + + + captures + + 0 + + name + variable.other.property.js + + + match + (?<=[\.])\s*[_$a-zA-Z][_$\w]* + name + meta.property.js + + + match + [_$a-zA-Z][_$\w]* + name + variable.other.readwrite.js + + + + special + + patterns + + + match + \b(console)\b + name + entity.name.type.object.js.firebug + + + match + \.(warn|info|log|error|time|timeEnd|assert)\b + name + support.function.js.firebug + + + match + \b(debugger)\b + name + keyword.other.js + + + + special-comments-conditional-compilation + + patterns + + + begin + /\*(?=@) + captures + + 0 + + name + punctuation.definition.comment.js + + + end + \*/ + endCaptures + + 1 + + name + keyword.control.conditional.js + + 2 + + name + punctuation.definition.keyword.js + + + name + comment.block.conditional.js + patterns + + + include + source.js + + + + + captures + + 1 + + name + punctuation.definition.keyword.js + + + match + (@)(if|elif|else|end) + name + keyword.control.conditional.js + + + captures + + 1 + + name + punctuation.definition.keyword.js + + + match + (@)(cc_on|set) + name + keyword.operator.conditional.js + + + captures + + 1 + + name + punctuation.definition.variable.js + + + match + (@)(_win32|_win16|_mac|_alpha|_x86|_mc680x0|_PowerPC|_jscript_build|_jscript_version|_jscript|_debug|_fast|[a-zA-Z]\w+) + name + variable.other.conditional.js + + + + string-content + + patterns + + + match + \\\s*\n + name + constant.character.escape.newline.js + + + match + \\(x[\da-fA-F]{2}|u[\da-fA-F]{4}|.) + name + constant.character.escape.js + + + + support + + patterns + + + match + \b(Array|Boolean|Date|Function|Map|Number|Object|Proxy|RegExp|Set|String|WeakMap)\b + name + support.class.builtin.js + + + match + \b(decodeURI|decodeURIComponent|encodeURI|encodeURIComponent|escape|eval|isFinite|isNaN|parseFloat|parseInt|unescape)\b(?=\() + name + support.function.js + + + match + \b(s(hift|ort|plice)|unshift|p(op|ush)|reverse)\b(?=\() + name + support.function.mutator.js + + + match + \b((Eval|Range|Reference|Syntax|Type|URI)?Error)\b + name + support.class.error.js + + + match + \b(document|window)\b + name + support.type.object.dom.js + + + match + (?x) + \b( + ELEMENT_NODE|ATTRIBUTE_NODE|TEXT_NODE|CDATA_SECTION_NODE|ENTITY_REFERENCE_NODE|ENTITY_NODE|PROCESSING_INSTRUCTION_NODE|COMMENT_NODE| + DOCUMENT_NODE|DOCUMENT_TYPE_NODE|DOCUMENT_FRAGMENT_NODE|NOTATION_NODE|INDEX_SIZE_ERR|DOMSTRING_SIZE_ERR|HIERARCHY_REQUEST_ERR| + WRONG_DOCUMENT_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR|NOT_SUPPORTED_ERR|INUSE_ATTRIBUTE_ERR + )\b + + name + support.constant.dom.js + + + match + \b(console)\b + name + support.type.object.firebug.js + + + match + \b(natives|buffer|child_process|cluster|crypto|d(gram|ns)|fs|http(s)?|net|os|path|punycode|(query)?string(_decoder)?|re(adline|pl)|tls|tty|util|vm|zlib)\b + name + support.module.node.js + + + match + \b(process(.env)?|global|GLOBAL|root|std(out|in|err)|exports|__dirname|__filename|console)\b + name + support.type.object.node.js + + + match + \b(Buffer|EventEmitter|Server|Pipe|Socket|REPLServer|ReadStream|WriteStream|Stream|Inflate|Deflate|InflateRaw|DeflateRaw|GZip|GUnzip|Unzip|Zip)\b + name + support.class.node.js + + + + + scopeName + source.js + uuid + 487CF323-A3F9-48FA-B140-DCE8C893E664 + diff --git a/JavaScriptNext.tmTheme b/JavaScriptNext.tmTheme index 2e05217..0447945 100644 --- a/JavaScriptNext.tmTheme +++ b/JavaScriptNext.tmTheme @@ -2,1898 +2,1855 @@ - name - JavaScriptNext - settings - - - settings - - activeGuide - #3333FFFF - background - #000000 - bracketsBackground - #ff00aa66 - bracketsOptions - background - caret - #ff0099 - foreground - #e6e6e6 - guide - #33333388 - gutter - #6600ff33 - invisibles - #404040 - lineHighlight - #ff009933 - multiEditHighlight - #00ff0022 - searchHighlight - #FF00AA99 - selection - #00ffff44 - stackGuide - #333333CC - - - - name - bracket.curly - scope - bracket.curly - settings - - background - #FF44AA - foreground - #3399FF - - - - name - bracket.square - scope - bracket.square - settings - - background - #2266CC - foreground - #FF8800 - - - - name - bracket.round - scope - bracket.round - settings - - background - #9922FF - foreground - #00FF00 - - - - name - bracket.quote - scope - bracket.quote - settings - - background - #00FF00 - - - - name - comment - scope - comment - settings - - fontStyle - italic - foreground - #646464ff - - - - name - Invalid - scope - invalid - settings - - background - #ff000022 - - - - name - constant - scope - constant - settings - - foreground - #3387ccff - - - - name - Keyword - scope - keyword - settings - - foreground - #e28964 - - - - name - constant.numeric - scope - constant.numeric - settings - - foreground - #ffff66 - - - - name - Storage - scope - storage - settings - - foreground - #99cf50 - - - - name - storage.modifier - scope - storage.modifier - settings - - foreground - #cf5099 - - - - name - storage.self - scope - storage.self - settings - - fontStyle - bold - foreground - #cc0033 - - - - name - storage.type - scope - storage.type - settings - - foreground - #cf9950 - - - - name - Support - scope - support - settings - - foreground - #8a5c8dff - - - - name - entity.name.function - scope - entity.name.function - settings - - foreground - #bb00ff - - - - name - keyword control - scope - keyword.control - settings - - foreground - #ff00ff - - - - name - keyword.control.declaration - scope - keyword.control.declaration - settings - - foreground - #8888aa - - - - name - keyword.control.module - scope - keyword.control.module - settings - - foreground - #ffff33 - background - #ffff3333 - options - underline - - - - name - keyword.control.flow - scope - keyword.control.flow - settings - - fontStyle - bold - foreground - #ff6600 - background - #110300 - - - - - name - keyword.control.conditional - scope - keyword.control.conditional - settings - - foreground - #ff00ff - - - - name - keyword.control.trycatch - scope - keyword.control.trycatch - settings - - foreground - #ff0033 - - - - name - keyword.control.loop - scope - keyword.control.loop - settings - - foreground - #009999 - - - - name - keyword.control.switch - scope - keyword.control.switch - settings - - foreground - #999999 - - - - name - keyword operator - scope - keyword.operator - settings - - foreground - #ff0080 - - - - name - Function arg - scope - meta.function.argument, variable.parameter, meta.parens.c - settings - - foreground - #77ff11 - - - - name - - scope - punctuation.section.embedded - settings - - background - #0D0D0D37 - foreground - #00d3ffff - - - - name - keyword.other.unit - scope - keyword.other.unit, keyword.unit.css - settings - - foreground - #80ff00ff - - - - name - invalid.illegal - scope - invalid.illegal - settings - - background - #562d56bf - foreground - #fd5ff1ff - - - - name - string.quoted source - scope - string.quoted source - settings - - foreground - #daefa3 - - - - name - string constant - scope - string constant - settings - - foreground - #cfed81 - - - - name - string.regexp - scope - string.regexp - settings - - foreground - #6fff17 - - - - name - punctuation.definition.string - scope - punctuation.definition.string - settings - - background - #15151501 - foreground - #b4ff82 - - - - name - string.regexp.special - scope - - string.regexp constant.character.escape, string.regexp source.ruby.embedded, string.regexp string.regexp.arbitrary-repitition - - settings - - foreground - #00d505 - - - - name - string.regexp punctuation keyword - scope - string.regexp punctuation keyword - settings - - foreground - #c559ff - - - - name - string variable - scope - string variable - settings - - foreground - #8a9a95 - - - - name - support.function - scope - support.function - settings - - foreground - #fcf352ff - - - - name - meta.tag - scope - meta.tag - settings - - foreground - #4f9effff - - - - name - meta.tag entity - scope - meta.tag entity - settings - - foreground - #157eff - - - - name - HTML/XML tag attribute value - scope - meta.tag string.quoted.double.html - settings - - foreground - #E07D2C - - - - name - html5 tag - scope - meta.tag.block.any.html.html5 - settings - - foreground - #e88bfcff - - - - name - html5 tag entity - scope - meta.tag.block.any.html.html5 entity - settings - - foreground - #d730faff - - - - name - meta.tag.inline - scope - - source entity.name.tag, source entity.other.attribute-name, meta.tag.inline, meta.tag.inline entity - - settings - - foreground - #87a7e2ff - - - - name - html js tag - scope - source.js.embedded.html entity.name.tag.script.html - settings - - foreground - #FF3535 - - - - name - html js tag braces - scope - source.js.embedded.html punctuation.definition.tag.html - settings - - foreground - #FF1E1E - - - - name - html js tag url - scope - source.js.embedded.html string.quoted.double.html - settings - - foreground - #FF9D9D - - - - name - Attribute - scope - entity.other.attribute-name - settings - - foreground - #7349beff - - - - name - Meta Toc List - scope - meta.toc-list - settings - - background - #162c1aff - foreground - #BEFEC7FF - options - underline - - - - name - js variable readwrite - scope - meta.initialization, variable.other.readwrite.js - settings - - foreground - #ff9122 - - - - name - js object - scope - variable.other.object.js - settings - - foreground - #ffee00 - - - - name - js object with parent - scope - meta.property-name.js variable.other.object.js - settings - - foreground - #ffff88 - - - - name - support.variable.property.js - scope - support.variable.property.js - settings - - foreground - #3399ff - - - - name - variable.other.dot-access - scope - variable.other.dot-access - settings - - foreground - #66ffdd - - - - name - variable.other.property.js - scope - variable.other.property.js - settings - - foreground - #37C1BE - - - - name - punctuation.section.scope.square.js - scope - punctuation.section.scope.square.js - settings - - foreground - #ff2404 - - - - name - punctuation.section.scope.round.js, meta.brace.round - scope - punctuation.section.scope.round.js, meta.brace.round - settings - - foreground - #1c38ff - - - - name - punctuation.definition.arrow.js - scope - punctuation.definition.arrow.js - settings - - fontStyle - bold - foreground - #aa00ff - background - #001133 - - - - name - entity.arrow.function.js - scope - entity.arrow.function.js - settings - - fontStyle - bold - foreground - #aa00ff - background - #001133 - - - - name - variable.language - scope - variable.language - settings - - foreground - #aa0044 - - - - name - variable.language.prototype - scope - variable.language.prototype - settings - - foreground - #ff6600 - - - - name - support.class.error.js - scope - support.class.error.js - settings - - foreground - #ff5522 - - - - name - support.class.builtin.js - scope - support.class.builtin.js - settings - - fontStyle - italic - foreground - #ffee00 - - - - name - support.class.node.js - scope - support.class.node.js - settings - - foreground - #1224fe - - - - name - entity.name.function.node.js - scope - entity.name.function.node.js - settings - - foreground - #d84014 - - - - name - support.keyword.node.js - scope - support.keyword.node.js - settings - - fontStyle - bold - foreground - #99ef25 - - - - name - variable.import.destructuring.js - scope - variable.import.destructuring.js - settings - - foreground - #00bbff - - - - name - other.object.key.js - scope - other.object.key.js - settings - - foreground - #1C98C1 - - - - name - meta.accessor.js punctuation.definition.parameters - scope - meta.accessor.js punctuation.definition.parameters - settings - - foreground - #005588 - - - - name - storage.type.accessor.js - scope - storage.type.accessor.js - settings - - fontStyle - bold italic - foreground - #0066aa - background - #001122 - - - - name - entity.name.module.js, variable.import.parameter.js, variable.other.class.js - scope - entity.name.module.js, variable.import.parameter.js, variable.other.class.js - settings - - foreground - #ff0044 - background - #220011 - - - - name - storage.type.module.js, storage.type.export.js, storage.type.import.js, storage.type.from.js - scope - storage.type.module.js, storage.type.export.js, storage.type.import.js, storage.type.from.js - settings - - foreground - #cccc44 - background - #222211 - - - - name - storage.type.class.js, storage.type.extends.js - scope - storage.type.class.js, storage.type.extends.js - settings - - foreground - #0044aa - background - #001122 - - - - name - meta.function.call.class.static.js - scope - meta.function.call.class.static.js - settings - - foreground - #880011 - - - - name - variable.other.class.static.js - scope - variable.other.class.static.js - settings - - foreground - #aa0066 - - - - name - entity.name.accessor.js - scope - entity.name.accessor.js - settings - - fontStyle - bold italic - foreground - #00ffcc - background - #001122 - - - - name - entity.name.method.js - scope - entity.name.method.js - settings - - fontStyle - italic bold - foreground - #aa00ff - background - #110022 - - - - name - meta.method.js - scope - meta.method.js - settings - - fontStyle - bold - foreground - #660099 - - - - name - storage.type.function.js - scope - storage.type.function.js - settings - - fontStyle - bold - foreground - #99cc44 - - - - name - string.quoted.single - scope - string.quoted.single - settings - - foreground - #88FFAAAA - - - - name - variable.other.quasi.js - scope - variable.other.quasi.js - settings - - foreground - #ff0099 - - - - name - string.quasi.js - scope - string.quasi.js - settings - - foreground - #00FF00 - - - - name - punctuation.quasi.element - scope - punctuation.quasi.element - settings - - foreground - #008800 - - - - name - entity.quasi.tag.name.js - scope - entity.quasi.tag.name.js - settings - - foreground - #ffff00 - - - - name - meta.group.braces.square, punctuation.destructuring - scope - meta.group.braces.square string.quoted.single, punctuation.destructuring - settings - - foreground - #47E9AC - - - - name - string.quoted.double - scope - string.quoted.double - settings - - foreground - #11bb11 - - - - name - punctuation.section.scope.curly.js - scope - punctuation.section.scope.curly.js - settings - - foreground - #F9044E - - - - name - meta.delimiter.object.comma.js - scope - meta.delimiter.object.comma.js - settings - - foreground - #00ffff - - - - name - meta.group.braces.curly string.quoted.single - scope - meta.group.braces.curly string.quoted.single - settings - - foreground - #16B853 - - - - name - support.function - scope - support.function - settings - - foreground - #B532ff - - - - name - punctuation.definition.string.begin.js - scope - punctuation.definition.string.begin.js - settings - - foreground - #D2E20C - - - - name - punctuation.definition.string.end.js - scope - punctuation.definition.string.end.js - settings - - foreground - #CEA30D - - - - name - instance constructor - scope - meta.class.inheritance, meta.instance.constructor - settings - - fontStyle - italic underline - foreground - #e81e41 - - - - name - entity.name.class.js - scope - entity.name.class.js - settings - - fontStyle - italic - background - #00ffff33 - foreground - #00ffff - - - - name - entity.name.extends.js - scope - entity.name.extends.js - settings - - background - #00ff9933 - foreground - #00ff99 - fontStyle - italic - - - - name - function call - scope - meta.function-call entity.name.function - settings - - foreground - #5b24ff - - - - name - function call with args - scope - meta.function-call.function.with-arguments.js - settings - - foreground - #33ff00 - - - - name - js brace - scope - meta.brace.curly.js - settings - - foreground - #ff0099 - - - - name - js paren - scope - meta.brace.round.js - settings - - background - #000000ff - foreground - #d0c5feff - - - - name - js constant escape - scope - constant.character.escape - settings - - foreground - #10cf62ff - - - - name - pseudo-class - scope - - meta.selector.css entity.other.attribute-name.tag.pseudo-class - - settings - - foreground - #4fbc4b - - - - name - css selectors - scope - entity.namespace.unicode.css - settings - - foreground - #FF4F4F - - - - name - entity.other.attribute-name.id - scope - entity.other.attribute-name.id - settings - - background - #0b0028ff - foreground - #f20073ff - - - - name - class name - scope - meta.prototype support.class - settings - - foreground - #ff0099 - - - - name - support object - scope - support.object - settings - - fontStyle - bold - foreground - #ffee00 - - - - name - class name prototype - scope - meta.prototype support.constant - settings - - foreground - #ff6600 - - - - name - prototype declaration - scope - meta.prototype.declaration.js - settings - - fontStyle - bold - - - - name - js undefined - scope - constant.language.undefined.js - settings - - foreground - #555588 - - - - name - variable.other.constant.js - scope - variable.other.constant.js - settings - - foreground - #00ff33 - background - #003311 - - - - name - false - scope - constant.language.boolean.false - settings - - foreground - #aaaa55 - - - - name - true - scope - constant.language.boolean.true - settings - - foreground - #cc7744 - - - - name - js null - scope - constant.language.null.js - settings - - foreground - #558855 - - - - name - css#id punctuation - scope - punctuation.definition.entity.id.css - settings - - background - #0b0028 - foreground - #ff489f - - - - name - css.class - scope - - entity.other.attribute-name.class, source.css.less entity.other.attribute-name.class.css - - settings - - background - #0b0028 - foreground - #9529b8 - - - - name - css.class puntuation - scope - punctuation.definition.entity.class.css - settings - - background - #0b0028ff - foreground - #cd87e4ff - - - - name - css pseudo element - scope - entity.other.attribute-name.pseudo-element.css - settings - - background - #0b0028ff - foreground - #ff00ffff - - - - name - css property-name - scope - support.type.property-name.css - settings - - foreground - #b8efecff - - - - name - css @at-rule - scope - meta.preprocessor.at-rule keyword.control.at-rule - settings - - foreground - #d7c271ff - - - - name - css color - scope - - constant.other.color.rgb-value.css, support.constant.color.w3c-standard-color-name.css - - settings - - foreground - #fb7720ff - - - - name - css constants - scope - support.constant.property-value.css - settings - - foreground - #7ce85eff - - - - name - Puncation Termination - scope - punctuation.terminator, punctuation.separator - settings - - foreground - #4bfcf8ff - - - - name - css constructor.argument - scope - meta.constructor.argument.css - settings - - foreground - #8f9d6aff - - - - name - diff.header - scope - meta.diff, meta.diff.header, entity.name.namespace - settings - - background - #0e2231ff - foreground - #f8f8f8ff - - - - name - diff.deleted - scope - markup.deleted - settings - - background - #420e09ff - foreground - #f8f8f8ff - - - - name - diff.changed - scope - markup.changed - settings - - background - #4a410dff - foreground - #f8f8f8ff - - - - name - diff.inserted - scope - markup.inserted - settings - - background - #253b22ff - foreground - #f8f8f8ff - - - - name - Markup: Italic - scope - markup.italic - settings - - fontStyle - italic - foreground - #6ad500ff - - - - name - Markup: Underline - scope - markup.underline - settings - - foreground - #e18964ff - options - underline - - - - name - Markup: Quote - scope - markup.quote - settings - - background - #fee09c12 - fontStyle - italic - foreground - #e1d4b9ff - - - - name - Markup: Heading - scope - markup.heading, markup.heading entity - settings - - background - #de3280ff - foreground - #ffffffff - - - - name - Markup: List - scope - markup.list - settings - - foreground - #6657eaff - - - - name - Markup: Raw - scope - markup.raw - settings - - background - #b1b3ba08 - foreground - #578bb3ff - - - - name - Markup: Comment - scope - markup comment - settings - - foreground - #f67b37ff - - - - name - Markup: Separator - scope - meta.separator - settings - - background - #242424ff - foreground - #60a633ff - - - - name - Log Entry - scope - meta.line.entry.logfile, meta.line.exit.logfile - settings - - background - #eeeeee29 - foreground - #f8f8f8ff - - - - name - Log Entry Error - scope - meta.line.error.logfile - settings - - background - #751012 - foreground - #f8f8f8 - - - - name - JSON property top - scope - meta.structure.dictionary.json string.quoted.double - settings - - background - #111111 - foreground - #1144bb - - - - name - JSON property level 2 - scope - - meta.structure meta.structure.dictionary.json string.quoted.double - - settings - - foreground - #1122bb - - - - name - JSON property level 3 - scope - - meta.structure meta.structure meta.structure meta.structure.dictionary.json string.quoted.double - - settings - - foreground - #2938eb - - - - name - JSON property level 4 - scope - - meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.json string.quoted.double - - settings - - foreground - #6d7ef1 - - - - name - JSON property level 5 - scope - - meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.json string.quoted.double - - settings - - foreground - #b3bbf7 - - - - name - JSON value - scope - meta.structure.dictionary.value.json string.quoted.double - settings - - foreground - #aa00aa - - - - name - JSON value level 2 - scope - - meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double - - settings - - foreground - #bf00bf - - - - name - JSON value level 3 - scope - - meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double - - settings - - foreground - #ff00ff - - - - name - JSON value level 4 - scope - - meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double - - settings - - foreground - #ff40ff - - - - name - JSON value level 5 - 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 - - settings - - foreground - #ff80ff - - - - name - JSON value string punctuation - scope - - meta.structure.dictionary.value.json string punctuation.definition.string.double - - settings - - foreground - #8409ff - - - - name - JSON array value - scope - meta.structure.array.json string.quoted.double - settings - - foreground - #5522aa - - - - name - JSON array value level 1 - scope - - meta.structure meta.structure meta.structure.array.json string.quoted.double - - settings - - foreground - #7017c8ff - - - - name - JSON array value level 2 - scope - - meta.structure meta.structure meta.structure meta.structure meta.structure.array.json string.quoted.double - - settings - - foreground - #9541e9ff - - - - name - JSON array value level 3 - scope - - meta.structure meta.structure meta.structure meta.structure meta.structure.array.json string.quoted.double - - settings - - foreground - #ba83f1ff - - - - name - JSON array value level 4 - scope - - meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.array.json string.quoted.double - - settings - - foreground - #dfc6f9ff - - - - name - JSON prop string punctuation - scope - - meta.structure.dictionary.json string punctuation.definition.string - - settings - - foreground - #66bbddff - - - - name - JSON array string puntuation - scope - - meta.structure.array.json string punctuation.definition.string - - settings - - foreground - #416be9ff - - - - name - JSON array brackets - scope - meta.structure.array.json punctuation.definition.array - settings - - foreground - #fcc401ff - - - - name - JSON object braces - scope - - meta.structure.dictionary.json punctuation.definition.dictionary - - settings - - foreground - #fedf76ff - - - - uuid - b238c753-1549-3f12-a519-0faa5dcd4f65 + name + JavaScriptNext + settings + + + settings + + activeGuide + #3333FFFF + background + #000000 + bracketsBackground + #ff00aa66 + bracketsOptions + background + caret + #ff0099 + foreground + #e6e6e6 + guide + #33333388 + gutter + #6600ff33 + invisibles + #404040 + lineHighlight + #ff009933 + multiEditHighlight + #00ff0022 + searchHighlight + #FF00AA99 + selection + #00ffff44 + stackGuide + #333333CC + + + + name + bracket.curly + scope + bracket.curly + settings + + background + #FF44AA + foreground + #3399FF + + + + name + bracket.square + scope + bracket.square + settings + + background + #2266CC + foreground + #FF8800 + + + + name + bracket.round + scope + bracket.round + settings + + background + #9922FF + foreground + #00FF00 + + + + name + bracket.quote + scope + bracket.quote + settings + + background + #00FF00 + + + + name + comment + scope + comment + settings + + fontStyle + italic + foreground + #646464ff + + + + name + Invalid + scope + invalid + settings + + background + #ff000022 + + + + name + constant + scope + constant + settings + + foreground + #3387ccff + + + + name + Keyword + scope + keyword + settings + + foreground + #e28964 + + + + name + constant.numeric + scope + constant.numeric + settings + + foreground + #ffff66 + + + + name + Storage + scope + storage + settings + + foreground + #99cf50 + + + + name + storage.modifier + scope + storage.modifier + settings + + foreground + #cf5099 + + + + name + storage.self + scope + storage.self + settings + + fontStyle + bold + foreground + #cc0033 + + + + name + storage.type + scope + storage.type + settings + + foreground + #cf9950 + + + + name + Support + scope + support + settings + + foreground + #8a5c8dff + + + + name + entity.name.function + scope + entity.name.function + settings + + foreground + #bb00ff + + + + name + keyword control + scope + keyword.control + settings + + foreground + #ff00ff + + + + name + keyword.control.declaration + scope + keyword.control.declaration + settings + + foreground + #8888aa + + + + name + keyword.control.module + scope + keyword.control.module + settings + + background + #ffff3333 + foreground + #ffff33 + options + underline + + + + name + keyword.control.flow + scope + keyword.control.flow + settings + + background + #110300 + fontStyle + bold + foreground + #ff6600 + + + + name + keyword.control.conditional + scope + keyword.control.conditional + settings + + foreground + #ff00ff + + + + name + keyword.control.trycatch + scope + keyword.control.trycatch + settings + + foreground + #ff0033 + + + + name + keyword.control.loop + scope + keyword.control.loop + settings + + foreground + #009999 + + + + name + keyword.control.switch + scope + keyword.control.switch + settings + + foreground + #999999 + + + + name + keyword operator + scope + keyword.operator + settings + + foreground + #ff0080 + + + + name + Function arg + scope + meta.function.argument, variable.parameter, meta.parens.c + settings + + foreground + #77ff11 + + + + name + + scope + punctuation.section.embedded + settings + + background + #0D0D0D37 + foreground + #00d3ffff + + + + name + keyword.other.unit + scope + keyword.other.unit, keyword.unit.css + settings + + foreground + #80ff00ff + + + + name + invalid.illegal + scope + invalid.illegal + settings + + background + #562d56bf + foreground + #fd5ff1ff + + + + name + string.quoted source + scope + string.quoted source + settings + + foreground + #daefa3 + + + + name + string constant + scope + string constant + settings + + foreground + #cfed81 + + + + name + string.regexp + scope + string.regexp + settings + + foreground + #6fff17 + + + + name + punctuation.definition.string + scope + punctuation.definition.string + settings + + background + #15151501 + foreground + #b4ff82 + + + + name + string.regexp.special + scope + string.regexp constant.character.escape, string.regexp source.ruby.embedded, string.regexp string.regexp.arbitrary-repitition + settings + + foreground + #00d505 + + + + name + string.regexp punctuation keyword + scope + string.regexp punctuation keyword + settings + + foreground + #c559ff + + + + name + string variable + scope + string variable + settings + + foreground + #8a9a95 + + + + name + support.function + scope + support.function + settings + + foreground + #fcf352ff + + + + name + meta.tag + scope + meta.tag + settings + + foreground + #4f9effff + + + + name + meta.tag entity + scope + meta.tag entity + settings + + foreground + #157eff + + + + name + HTML/XML tag attribute value + scope + meta.tag string.quoted.double.html + settings + + foreground + #E07D2C + + + + name + html5 tag + scope + meta.tag.block.any.html.html5 + settings + + foreground + #e88bfcff + + + + name + html5 tag entity + scope + meta.tag.block.any.html.html5 entity + settings + + foreground + #d730faff + + + + name + meta.tag.inline + scope + source entity.name.tag, source entity.other.attribute-name,meta.tag.inline, meta.tag.inline entity + settings + + foreground + #87a7e2ff + + + + name + html js tag + scope + source.js.embedded.html entity.name.tag.script.html + settings + + foreground + #FF3535 + + + + name + html js tag braces + scope + source.js.embedded.html punctuation.definition.tag.html + settings + + foreground + #FF1E1E + + + + name + html js tag url + scope + source.js.embedded.html string.quoted.double.html + settings + + foreground + #FF9D9D + + + + name + Attribute + scope + entity.other.attribute-name + settings + + foreground + #7349beff + + + + name + Meta Toc List + scope + meta.toc-list + settings + + background + #162c1aff + foreground + #BEFEC7FF + options + underline + + + + name + js variable readwrite + scope + meta.initialization, variable.other.readwrite.js + settings + + foreground + #ff9122 + + + + name + js object + scope + variable.other.object.js + settings + + foreground + #ffee00 + + + + name + js object with parent + scope + meta.property-name.js variable.other.object.js + settings + + foreground + #ffff88 + + + + name + support.variable.property.js + scope + support.variable.property.js + settings + + foreground + #3399ff + + + + name + variable.other.dot-access + scope + variable.other.dot-access + settings + + foreground + #66ffdd + + + + name + variable.other.property.js + scope + variable.other.property.js + settings + + foreground + #37C1BE + + + + name + punctuation.section.scope.square.js + scope + punctuation.section.scope.square.js + settings + + foreground + #ff2404 + + + + name + punctuation.section.scope.round.js, meta.brace.round + scope + punctuation.section.scope.round.js, meta.brace.round + settings + + foreground + #1c38ff + + + + name + punctuation.definition.arrow.js + scope + punctuation.definition.arrow.js + settings + + background + #001133 + fontStyle + bold + foreground + #aa00ff + + + + name + entity.arrow.function.js + scope + entity.arrow.function.js + settings + + background + #001133 + fontStyle + bold + foreground + #aa00ff + + + + name + variable.language + scope + variable.language + settings + + foreground + #aa0044 + + + + name + variable.language.prototype + scope + variable.language.prototype + settings + + foreground + #ff6600 + + + + name + support.class.error.js + scope + support.class.error.js + settings + + foreground + #ff5522 + + + + name + support.class.builtin.js + scope + support.class.builtin.js + settings + + fontStyle + italic + foreground + #ffee00 + + + + name + support.class.node.js + scope + support.class.node.js + settings + + foreground + #1224fe + + + + name + entity.name.function.node.js + scope + entity.name.function.node.js + settings + + foreground + #d84014 + + + + name + support.keyword.node.js + scope + support.keyword.node.js + settings + + fontStyle + bold + foreground + #99ef25 + + + + name + variable.import.destructuring.js + scope + variable.import.destructuring.js + settings + + foreground + #00bbff + + + + name + other.object.key.js + scope + other.object.key.js + settings + + foreground + #1C98C1 + + + + name + meta.accessor.js punctuation.definition.parameters + scope + meta.accessor.js punctuation.definition.parameters + settings + + foreground + #005588 + + + + name + storage.type.accessor.js + scope + storage.type.accessor.js + settings + + background + #001122 + fontStyle + bold italic + foreground + #0066aa + + + + name + entity.name.module.js, variable.import.parameter.js, variable.other.class.js + scope + entity.name.module.js, variable.import.parameter.js, variable.other.class.js + settings + + background + #220011 + foreground + #ff0044 + + + + name + storage.type.module.js, storage.type.export.js, storage.type.import.js, storage.type.from.js + scope + storage.type.module.js, storage.type.export.js, storage.type.import.js, storage.type.from.js + settings + + background + #222211 + foreground + #cccc44 + + + + name + storage.type.class.js, storage.type.extends.js + scope + storage.type.class.js, storage.type.extends.js + settings + + background + #001122 + foreground + #0044aa + + + + name + meta.function.call.class.static.js + scope + meta.function.call.class.static.js + settings + + foreground + #880011 + + + + name + variable.other.class.static.js + scope + variable.other.class.static.js + settings + + foreground + #aa0066 + + + + name + entity.name.accessor.js + scope + entity.name.accessor.js + settings + + background + #001122 + fontStyle + bold italic + foreground + #00ffcc + + + + name + entity.name.method.js + scope + entity.name.method.js + settings + + background + #110022 + fontStyle + italic bold + foreground + #aa00ff + + + + name + meta.method.js + scope + meta.method.js + settings + + fontStyle + bold + foreground + #660099 + + + + name + storage.type.function.js + scope + storage.type.function.js + settings + + fontStyle + bold + foreground + #99cc44 + + + + name + string.quoted.single + scope + string.quoted.single + settings + + foreground + #88FFAAAA + + + + name + variable.other.quasi.js + scope + variable.other.quasi.js + settings + + foreground + #ff0099 + + + + name + string.quasi.js + scope + string.quasi.js + settings + + foreground + #00FF00 + + + + name + punctuation.quasi.element + scope + punctuation.quasi.element + settings + + foreground + #008800 + + + + name + entity.quasi.tag.name.js + scope + entity.quasi.tag.name.js + settings + + foreground + #ffff00 + + + + name + meta.group.braces.square, punctuation.destructuring + scope + meta.group.braces.square string.quoted.single, punctuation.destructuring + settings + + foreground + #47E9AC + + + + name + string.quoted.double + scope + string.quoted.double + settings + + foreground + #11bb11 + + + + name + punctuation.section.scope.curly.js + scope + punctuation.section.scope.curly.js + settings + + foreground + #F9044E + + + + name + meta.delimiter.object.comma.js + scope + meta.delimiter.object.comma.js + settings + + foreground + #00ffff + + + + name + meta.group.braces.curly string.quoted.single + scope + meta.group.braces.curly string.quoted.single + settings + + foreground + #16B853 + + + + name + support.function + scope + support.function + settings + + foreground + #B532ff + + + + name + punctuation.definition.string.begin.js + scope + punctuation.definition.string.begin.js + settings + + foreground + #D2E20C + + + + name + punctuation.definition.string.end.js + scope + punctuation.definition.string.end.js + settings + + foreground + #CEA30D + + + + name + instance constructor + scope + meta.class.inheritance, meta.instance.constructor + settings + + fontStyle + italic underline + foreground + #e81e41 + + + + name + entity.name.class.js + scope + entity.name.class.js + settings + + background + #00ffff33 + fontStyle + italic + foreground + #00ffff + + + + name + entity.name.extends.js + scope + entity.name.extends.js + settings + + background + #00ff9933 + fontStyle + italic + foreground + #00ff99 + + + + name + function call + scope + meta.function-call entity.name.function + settings + + foreground + #5b24ff + + + + name + function call with args + scope + meta.function-call.function.with-arguments.js + settings + + foreground + #33ff00 + + + + name + js brace + scope + meta.brace.curly.js + settings + + foreground + #ff0099 + + + + name + js paren + scope + meta.brace.round.js + settings + + background + #000000ff + foreground + #d0c5feff + + + + name + js constant escape + scope + constant.character.escape + settings + + foreground + #10cf62ff + + + + name + pseudo-class + scope + meta.selector.css entity.other.attribute-name.tag.pseudo-class + settings + + foreground + #4fbc4b + + + + name + css selectors + scope + entity.namespace.unicode.css + settings + + foreground + #FF4F4F + + + + name + entity.other.attribute-name.id + scope + entity.other.attribute-name.id + settings + + background + #0b0028ff + foreground + #f20073ff + + + + name + class name + scope + meta.prototype support.class + settings + + foreground + #ff0099 + + + + name + support object + scope + support.object + settings + + fontStyle + bold + foreground + #ffee00 + + + + name + class name prototype + scope + meta.prototype support.constant + settings + + foreground + #ff6600 + + + + name + prototype declaration + scope + meta.prototype.declaration.js + settings + + fontStyle + bold + + + + name + js undefined + scope + constant.language.undefined.js + settings + + foreground + #555588 + + + + name + variable.other.constant.js + scope + variable.other.constant.js + settings + + background + #003311 + foreground + #00ff33 + + + + name + false + scope + constant.language.boolean.false + settings + + foreground + #aaaa55 + + + + name + true + scope + constant.language.boolean.true + settings + + foreground + #cc7744 + + + + name + js null + scope + constant.language.null.js + settings + + foreground + #558855 + + + + name + css#id punctuation + scope + punctuation.definition.entity.id.css + settings + + background + #0b0028 + foreground + #ff489f + + + + name + css.class + scope + entity.other.attribute-name.class, source.css.less entity.other.attribute-name.class.css + settings + + background + #0b0028 + foreground + #9529b8 + + + + name + css.class puntuation + scope + punctuation.definition.entity.class.css + settings + + background + #0b0028ff + foreground + #cd87e4ff + + + + name + css pseudo element + scope + entity.other.attribute-name.pseudo-element.css + settings + + background + #0b0028ff + foreground + #ff00ffff + + + + name + css property-name + scope + support.type.property-name.css + settings + + foreground + #b8efecff + + + + name + css @at-rule + scope + meta.preprocessor.at-rule keyword.control.at-rule + settings + + foreground + #d7c271ff + + + + name + css color + scope + constant.other.color.rgb-value.css, support.constant.color.w3c-standard-color-name.css + settings + + foreground + #fb7720ff + + + + name + css constants + scope + support.constant.property-value.css + settings + + foreground + #7ce85eff + + + + name + Puncation Termination + scope + punctuation.terminator, punctuation.separator + settings + + foreground + #4bfcf8ff + + + + name + css constructor.argument + scope + meta.constructor.argument.css + settings + + foreground + #8f9d6aff + + + + name + diff.header + scope + meta.diff, meta.diff.header, entity.name.namespace + settings + + background + #0e2231ff + foreground + #f8f8f8ff + + + + name + diff.deleted + scope + markup.deleted + settings + + background + #420e09ff + foreground + #f8f8f8ff + + + + name + diff.changed + scope + markup.changed + settings + + background + #4a410dff + foreground + #f8f8f8ff + + + + name + diff.inserted + scope + markup.inserted + settings + + background + #253b22ff + foreground + #f8f8f8ff + + + + name + Markup: Italic + scope + markup.italic + settings + + fontStyle + italic + foreground + #6ad500ff + + + + name + Markup: Underline + scope + markup.underline + settings + + foreground + #e18964ff + options + underline + + + + name + Markup: Quote + scope + markup.quote + settings + + background + #fee09c12 + fontStyle + italic + foreground + #e1d4b9ff + + + + name + Markup: Heading + scope + markup.heading, markup.heading entity + settings + + background + #de3280ff + foreground + #ffffffff + + + + name + Markup: List + scope + markup.list + settings + + foreground + #6657eaff + + + + name + Markup: Raw + scope + markup.raw + settings + + background + #b1b3ba08 + foreground + #578bb3ff + + + + name + Markup: Comment + scope + markup comment + settings + + foreground + #f67b37ff + + + + name + Markup: Separator + scope + meta.separator + settings + + background + #242424ff + foreground + #60a633ff + + + + name + Log Entry + scope + meta.line.entry.logfile, meta.line.exit.logfile + settings + + background + #eeeeee29 + foreground + #f8f8f8ff + + + + name + Log Entry Error + scope + meta.line.error.logfile + settings + + background + #751012 + foreground + #f8f8f8 + + + + name + JSON property top + scope + meta.structure.dictionary.json string.quoted.double + settings + + background + #111111 + foreground + #1144bb + + + + name + JSON property level 2 + scope + meta.structure meta.structure.dictionary.json string.quoted.double + settings + + foreground + #1122bb + + + + name + JSON property level 3 + scope + meta.structure meta.structure meta.structure meta.structure.dictionary.json string.quoted.double + settings + + foreground + #2938eb + + + + name + JSON property level 4 + scope + meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.json string.quoted.double + settings + + foreground + #6d7ef1 + + + + name + JSON property level 5 + scope + meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.json string.quoted.double + settings + + foreground + #b3bbf7 + + + + name + JSON value + scope + meta.structure.dictionary.value.json string.quoted.double + settings + + foreground + #aa00aa + + + + name + JSON value level 2 + scope + meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double + settings + + foreground + #bf00bf + + + + name + JSON value level 3 + scope + meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double + settings + + foreground + #ff00ff + + + + name + JSON value level 4 + scope + meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.dictionary.value.json string.quoted.double + settings + + foreground + #ff40ff + + + + name + JSON value level 5 + 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 + settings + + foreground + #ff80ff + + + + name + JSON value string punctuation + scope + meta.structure.dictionary.value.json string punctuation.definition.string.double + settings + + foreground + #8409ff + + + + name + JSON array value + scope + meta.structure.array.json string.quoted.double + settings + + foreground + #5522aa + + + + name + JSON array value level 1 + scope + meta.structure meta.structure meta.structure.array.json string.quoted.double + settings + + foreground + #7017c8ff + + + + name + JSON array value level 2 + scope + meta.structure meta.structure meta.structure meta.structure meta.structure.array.json string.quoted.double + settings + + foreground + #9541e9ff + + + + name + JSON array value level 3 + scope + meta.structure meta.structure meta.structure meta.structure meta.structure.array.json string.quoted.double + settings + + foreground + #ba83f1ff + + + + name + JSON array value level 4 + scope + meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure meta.structure.array.json string.quoted.double + settings + + foreground + #dfc6f9ff + + + + name + JSON prop string punctuation + scope + meta.structure.dictionary.json string punctuation.definition.string + settings + + foreground + #66bbddff + + + + name + JSON array string puntuation + scope + meta.structure.array.json string punctuation.definition.string + settings + + foreground + #416be9ff + + + + name + JSON array brackets + scope + meta.structure.array.json punctuation.definition.array + settings + + foreground + #fcc401ff + + + + name + JSON object braces + scope + meta.structure.dictionary.json punctuation.definition.dictionary + settings + + foreground + #fedf76ff + + + + uuid + b238c753-1549-3f12-a519-0faa5dcd4f65 diff --git a/README.md b/README.md index e220a8c..fac3acd 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,22 @@ # JavaScript.tmLanguage -Better JavaScript language definition for TextMate and SublimeText2. 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, and accessors (ES5). +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). + +## Installation and Use + +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. + +To set this as your default JavaScript syntax, open a javascript file, then select `View -> Syntax -> Open all with current extension as... -> JavascriptNext`. + +You may also need to change the ColorScheme, `Preferences -> Color Scheme --> JavaScriptNext - ES6 Syntax`. + +## Screenshots __ES6__ -![screenshot](https://raw.github.com/Benvie/JavaScriptNext.tmLanguage/master/ss-es6.png) +![screenshot](https://raw.github.com/Benvie/JavaScriptNext.tmLanguage/master/screenshots/es6.png) + +![screenshot](http://i.imgur.com/YzwbnTf.png) __ES5__ -![screenshot](https://raw.github.com/Benvie/JavaScriptNext.tmLanguage/master/ss-es5.png) +![screenshot](https://raw.github.com/Benvie/JavaScriptNext.tmLanguage/master/screenshots/es5.png) diff --git a/Regular Expressions (JavaScriptNext).YAML-tmLanguage b/Regular Expressions (JavaScriptNext).YAML-tmLanguage new file mode 100644 index 0000000..11233e0 --- /dev/null +++ b/Regular Expressions (JavaScriptNext).YAML-tmLanguage @@ -0,0 +1,105 @@ +# [PackageDev] target_format: plist, ext: tmLanguage +name: Regular Expressions (Javascript Next) +scopeName: source.regexp.js +fileTypes: [re] +uuid: 6D74161E-E1A2-4AF3-922D-759E88DEFF63 +foldingStartMarker: (/\*|\{|\() +foldingStopMarker: (\*/|\}|\)) + +patterns: +- include: '#anchor' +- include: '#backref' +- include: '#quantifier' +- include: '#operator' +- include: '#group-assertion' +- include: '#group-definition' +- include: '#character-class' +- include: '#character-class-definition' + +repository: + anchor: + patterns: + - name: keyword.control.anchor.regexp + match: \\[bB]|\^|\$ + + backref: + patterns: + - name: keyword.other.back-reference.regexp + match: \\[1-9][0-9]* + + quantifier: + patterns: + - name: keyword.operator.quantifier.regexp + match: '(\?|\*\??|\+\??)|\{(\d+,\d+|\d+,|\d+)\}' + + operator: + patterns: + - name: keyword.operator.or.regexp + match: \| + + group-assertion: + patterns: + - name: meta.group.assertion.regexp + begin: (\()((\?=)|(\?!)) + beginCaptures: + '1': {name: punctuation.definition.group.regexp} + '2': {name: punctuation.definition.group.assertion.regexp} + '3': {name: meta.assertion.look-ahead.regexp} + '4': {name: meta.assertion.negative-look-ahead.regexp} + end: (\)) + endCaptures: + '1': {name: punctuation.definition.group.regexp} + patterns: + - include: $self + + group-definition: + patterns: + - name: meta.group.regexp + begin: (\()((\?:))? + beginCaptures: + '1': {name: punctuation.definition.group.regexp} + '3': {name: punctuation.definition.group.capture.regexp} + '5': {name: punctuation.definition.group.capture.regexp} + '6': {name: punctuation.definition.group.no-capture.regexp} + end: (\)) + endCaptures: + '1': {name: punctuation.definition.group.regexp} + patterns: + - include: $self + + character-class: + patterns: + - name: constant.other.character-class.escape.backslash.regexp + match: \\[wWsSdD]|\. + + - name: constant.character.escape.backslash.regexp + match: \\([trnvf0]|c[A-Z]|x[\da-fA-F]{2}|u[\da-fA-F]{4}|.) + + character-class-definition: + patterns: + - name: constant.other.character-class.set.regexp + begin: (\[)(\^)? + beginCaptures: + '1': {name: punctuation.definition.character-class.regexp} + '2': {name: keyword.operator.negation.regexp} + end: (\]) + endCaptures: + '1': {name: punctuation.definition.character-class.regexp} + patterns: + - include: '#character-class' + - name: constant.other.character-class.range.regexp + match: >- + (?x) + ( + (\\[wWsSdD]|\.)| + (\\([trnvf0]|c[A-Z]|x[\da-fA-F]{2}|u[\da-fA-F]{4}|.)) + )\- + ( + (\\[wWsSdD]|\.)| + (\\([trnvf0]|c[A-Z]|x[\da-fA-F]{2}|u[\da-fA-F]{4}|.)) + ) + captures: + '2': {name: constant.other.character-class.escape.backslash.regexp} + '3': {name: constant.character.escape.backslash.regexp} + '5': {name: constant.other.character-class.escape.backslash.regexp} + '6': {name: constant.character.escape.backslash.regexp} diff --git a/Regular Expressions (JavaScriptNext).tmLanguage b/Regular Expressions (JavaScriptNext).tmLanguage new file mode 100644 index 0000000..faa4f1e --- /dev/null +++ b/Regular Expressions (JavaScriptNext).tmLanguage @@ -0,0 +1,307 @@ + + + + + fileTypes + + re + + foldingStartMarker + (/\*|\{|\() + foldingStopMarker + (\*/|\}|\)) + name + Regular Expressions (Javascript Next) + patterns + + + include + #anchor + + + include + #backref + + + include + #quantifier + + + include + #operator + + + include + #group-assertion + + + include + #group-definition + + + include + #character-class + + + include + #character-class-definition + + + repository + + anchor + + patterns + + + match + \\[bB]|\^|\$ + name + keyword.control.anchor.regexp + + + + backref + + patterns + + + match + \\[1-9][0-9]* + name + keyword.other.back-reference.regexp + + + + character-class + + patterns + + + match + \\[wWsSdD]|\. + name + constant.other.character-class.escape.backslash.regexp + + + match + \\([trnvf0]|c[A-Z]|x[\da-fA-F]{2}|u[\da-fA-F]{4}|.) + name + constant.character.escape.backslash.regexp + + + + character-class-definition + + patterns + + + begin + (\[)(\^)? + beginCaptures + + 1 + + name + punctuation.definition.character-class.regexp + + 2 + + name + keyword.operator.negation.regexp + + + end + (\]) + endCaptures + + 1 + + name + punctuation.definition.character-class.regexp + + + name + constant.other.character-class.set.regexp + patterns + + + include + #character-class + + + captures + + 2 + + name + constant.other.character-class.escape.backslash.regexp + + 3 + + name + constant.character.escape.backslash.regexp + + 5 + + name + constant.other.character-class.escape.backslash.regexp + + 6 + + name + constant.character.escape.backslash.regexp + + + match + (?x) + ( + (\\[wWsSdD]|\.)| + (\\([trnvf0]|c[A-Z]|x[\da-fA-F]{2}|u[\da-fA-F]{4}|.)) + )\- + ( + (\\[wWsSdD]|\.)| + (\\([trnvf0]|c[A-Z]|x[\da-fA-F]{2}|u[\da-fA-F]{4}|.)) + ) + name + constant.other.character-class.range.regexp + + + + + + group-assertion + + patterns + + + begin + (\()((\?=)|(\?!)) + beginCaptures + + 1 + + name + punctuation.definition.group.regexp + + 2 + + name + punctuation.definition.group.assertion.regexp + + 3 + + name + meta.assertion.look-ahead.regexp + + 4 + + name + meta.assertion.negative-look-ahead.regexp + + + end + (\)) + endCaptures + + 1 + + name + punctuation.definition.group.regexp + + + name + meta.group.assertion.regexp + patterns + + + include + $self + + + + + + group-definition + + patterns + + + begin + (\()((\?:))? + beginCaptures + + 1 + + name + punctuation.definition.group.regexp + + 3 + + name + punctuation.definition.group.capture.regexp + + 5 + + name + punctuation.definition.group.capture.regexp + + 6 + + name + punctuation.definition.group.no-capture.regexp + + + end + (\)) + endCaptures + + 1 + + name + punctuation.definition.group.regexp + + + name + meta.group.regexp + patterns + + + include + $self + + + + + + operator + + patterns + + + match + \| + name + keyword.operator.or.regexp + + + + quantifier + + patterns + + + match + (\?|\*\??|\+\??)|\{(\d+,\d+|\d+,|\d+)\} + name + keyword.operator.quantifier.regexp + + + + + scopeName + source.regexp.js + uuid + 6D74161E-E1A2-4AF3-922D-759E88DEFF63 + + diff --git a/Symbol List Banned.YAML-tmPreferences b/Symbol List Banned.YAML-tmPreferences new file mode 100644 index 0000000..eef90e1 --- /dev/null +++ b/Symbol List Banned.YAML-tmPreferences @@ -0,0 +1,7 @@ +# [PackageDev] target_format: plist, ext: tmPreferences +name: Symbol List Banned +uuid: 71B2B356-23EC-43B8-80A7-CB32E8F2718F +scope: source.js meta.function-call, source.js meta.instance.constructor +settings: + showInSymbolList: '0' + showInIndexedSymbolList: '1' diff --git a/Symbol List Banned.tmPreferences b/Symbol List Banned.tmPreferences new file mode 100644 index 0000000..bcad4ab --- /dev/null +++ b/Symbol List Banned.tmPreferences @@ -0,0 +1,19 @@ + + + + + name + Symbol List Banned + scope + source.js meta.function-call, source.js meta.instance.constructor + settings + + showInIndexedSymbolList + 1 + showInSymbolList + 0 + + uuid + 71B2B356-23EC-43B8-80A7-CB32E8F2718F + + diff --git a/Symbol List Function.YAML-tmPreferences b/Symbol List Function.YAML-tmPreferences new file mode 100644 index 0000000..e0d1969 --- /dev/null +++ b/Symbol List Function.YAML-tmPreferences @@ -0,0 +1,7 @@ +# [PackageDev] target_format: plist, ext: tmPreferences +name: Symbol List Function +uuid: B521FCF1-DDA6-4C69-8170-F6C2DE4C86CD +scope: source.js meta.function, source.js meta.accessor.js, source.js meta.method.js, source.js meta.prototype.function.js +settings: + showInSymbolList: '1' + symbolTransformation: s/\s+/ /g; diff --git a/Symbol List Function.tmPreferences b/Symbol List Function.tmPreferences new file mode 100644 index 0000000..4a59e75 --- /dev/null +++ b/Symbol List Function.tmPreferences @@ -0,0 +1,19 @@ + + + + + name + Symbol List Function + scope + source.js meta.function, source.js meta.accessor.js, source.js meta.method.js, source.js meta.prototype.function.js + settings + + showInSymbolList + 1 + symbolTransformation + s/\s+/ /g; + + uuid + B521FCF1-DDA6-4C69-8170-F6C2DE4C86CD + + diff --git a/ss-es5.png b/screenshots/es5.png similarity index 100% rename from ss-es5.png rename to screenshots/es5.png diff --git a/ss-es6.png b/screenshots/es6.png similarity index 100% rename from ss-es6.png rename to screenshots/es6.png