diff --git a/Preferences/JavaScript Indent.tmPreferences b/Preferences/JavaScript Indent.tmPreferences
index b6b6ffc..1ace8e8 100644
--- a/Preferences/JavaScript Indent.tmPreferences
+++ b/Preferences/JavaScript Indent.tmPreferences
@@ -9,9 +9,11 @@
settings
decreaseIndentPattern
- ^(.*\*/)?\s*(\}|\))([^{]*\{)?([;,]?\s*|\.[^{]*|\s*\)[;\s]*)$
+ ^((.*\*/)?\s*(\}|\))([^{]*\{)?([;,]?\s*|\.[^{]*|\s*\)[;\s]*)$|\s*[}]while.*$)
increaseIndentPattern
- ^.*(\{[^}"']*|\([^)"']*)$
+ ^(\/(?!\/)|[^\/])*((\{[^}"']*|\([^)"']*)|\=\s*)$
+ indentNextLinePattern
+ ^\s*((if|while|for|switch|else if).*[)]|else)\s*$
uuid
BC062860-3346-4D3B-8421-C5543F83D11F
diff --git a/Snippets/function.tmSnippet b/Snippets/function.tmSnippet
index 8a3cf1e..b9bf6f6 100644
--- a/Snippets/function.tmSnippet
+++ b/Snippets/function.tmSnippet
@@ -1,9 +1,9 @@
-
+
content
- function($1) {${0:$TM_SELECTED_TEXT}};
+ function($1){${0:$TM_SELECTED_TEXT}}
name
Anonymous Function
scope
diff --git a/Syntaxes/JavaScript.plist b/Syntaxes/JavaScript.plist
index 8430d8e..a98d717 100644
--- a/Syntaxes/JavaScript.plist
+++ b/Syntaxes/JavaScript.plist
@@ -1,19 +1,11 @@
-
+
- comment
- JavaScript Syntax: version 2.0
- fileTypes
-
- js
- htc
- jsx
-
foldingStartMarker
- ^.*\bfunction\s*(\w+\s*)?\([^\)]*\)(\s*\{[^\}]*)?\s*$
+ ^.*(\bfunction\s*(\w+\s*)?\([^\)]*\)(\s*\{[^\}]*)?\s*$)|(={\s*$)|(\({$)
foldingStopMarker
- ^\s*\}
+ (^\s*\})|(^}\));
keyEquivalent
^~J
name
@@ -21,664 +13,641 @@
patterns
- 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.class.js
+ include
+ #conditional-compilation
- 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.function.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.class.js
-
- 2
-
- name
- entity.name.function.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: Sound.play = function() { … }
- match
- ([a-zA-Z_?.$][\w?.$]*)\.([a-zA-Z_?.$][\w?.$]*)\s*=\s*(function)\s*(\()(.*?)(\))
- name
- meta.function.js
-
-
- captures
-
- 1
-
- name
- entity.name.function.js
-
- 2
-
- name
- storage.type.function.js
-
- 3
-
- name
- punctuation.definition.parameters.begin.js
-
- 4
-
- name
- variable.parameter.function.js
-
- 5
-
- name
- punctuation.definition.parameters.end.js
-
-
- comment
- match stuff like: play = function() { … }
- match
- ([a-zA-Z_?$][\w?$]*)\s*=\s*(function)\s*(\()(.*?)(\))
- name
- meta.function.js
-
-
- 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
- entity.name.function.js
-
- 2
-
- name
- storage.type.function.js
-
- 3
-
- name
- punctuation.definition.parameters.begin.js
-
- 4
-
- name
- variable.parameter.function.js
-
- 5
-
- 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
- punctuation.definition.parameters.begin.js
-
- 11
-
- name
- variable.parameter.function.js
-
- 12
-
- 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
- entity.name.function.js
-
-
- comment
- Attempt to match "foo": function
- match
- (?:((')(.*?)('))|((")(.*?)(")))\s*:\s*\b(function)?\s*(\()(.*?)(\))
- name
- meta.function.json.js
-
-
- captures
-
- 1
-
- name
- keyword.operator.new.js
-
- 2
-
- name
- entity.name.type.instance.js
-
-
- match
- (new)\s+(\w+(?:\.\w*)?)
- name
- meta.class.instance.constructor
-
-
- 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((0(x|X)[0-9a-fA-F]+)|([0-9]+(\.[0-9]+)?))\b
- name
- constant.numeric.js
+ include
+ #brackets
begin
- '
- beginCaptures
-
- 0
-
- name
- punctuation.definition.string.begin.js
-
-
- end
- '
- endCaptures
-
- 0
-
- name
- punctuation.definition.string.end.js
-
-
- name
- string.quoted.single.js
- 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
-
-
-
-
- begin
- "
- beginCaptures
-
- 0
-
- name
- punctuation.definition.string.begin.js
-
-
- end
- "
- endCaptures
-
- 0
-
- name
- punctuation.definition.string.end.js
-
-
- name
- string.quoted.double.js
- 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
-
-
-
-
- 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
-
-
- match
- \b(boolean|byte|char|class|double|enum|float|function|int|interface|long|short|var|void)\b
- name
- storage.type.js
-
-
- match
- \b(const|export|extends|final|implements|native|private|protected|public|static|synchronized|throws|transient|volatile)\b
- name
- storage.modifier.js
-
-
- match
- \b(break|case|catch|continue|default|do|else|finally|for|goto|if|import|package|return|switch|throw|try|while)\b
- name
- keyword.control.js
-
-
- match
- \b(delete|in|instanceof|new|typeof|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
- \b(super|this)\b
- name
- variable.language.js
-
-
- match
- \b(debugger)\b
- name
- keyword.other.js
-
-
- match
- \b(Anchor|Applet|Area|Array|Boolean|Button|Checkbox|Date|document|event|FileUpload|Form|Frame|Function|Hidden|History|Image|JavaArray|JavaClass|JavaObject|JavaPackage|java|Layer|Link|Location|Math|MimeType|Number|navigator|netscape|Object|Option|Packages|Password|Plugin|Radio|RegExp|Reset|Select|String|Style|Submit|screen|sun|Text|Textarea|window|XMLHttpRequest)\b
- name
- support.class.js
-
-
- match
- \b(s(h(ift|ow(Mod(elessDialog|alDialog)|Help))|croll(X|By(Pages|Lines)?|Y|To)?|t(op|rike)|i(n|zeToContent|debar|gnText)|ort|u(p|b(str(ing)?)?)|pli(ce|t)|e(nd|t(Re(sizable|questHeader)|M(i(nutes|lliseconds)|onth)|Seconds|Ho(tKeys|urs)|Year|Cursor|Time(out)?|Interval|ZOptions|Date|UTC(M(i(nutes|lliseconds)|onth)|Seconds|Hours|Date|FullYear)|FullYear|Active)|arch)|qrt|lice|avePreferences|mall)|h(ome|andleEvent)|navigate|c(har(CodeAt|At)|o(s|n(cat|textual|firm)|mpile)|eil|lear(Timeout|Interval)?|a(ptureEvents|ll)|reate(StyleSheet|Popup|EventObject))|t(o(GMTString|S(tring|ource)|U(TCString|pperCase)|Lo(caleString|werCase))|est|a(n|int(Enabled)?))|i(s(NaN|Finite)|ndexOf|talics)|d(isableExternalCapture|ump|etachEvent)|u(n(shift|taint|escape|watch)|pdateCommands)|j(oin|avaEnabled)|p(o(p|w)|ush|lugins.refresh|a(ddings|rse(Int|Float)?)|r(int|ompt|eference))|e(scape|nableExternalCapture|val|lementFromPoint|x(p|ec(Script|Command)?))|valueOf|UTC|queryCommand(State|Indeterm|Enabled|Value)|f(i(nd|le(ModifiedDate|Size|CreatedDate|UpdatedDate)|xed)|o(nt(size|color)|rward)|loor|romCharCode)|watch|l(ink|o(ad|g)|astIndexOf)|a(sin|nchor|cos|t(tachEvent|ob|an(2)?)|pply|lert|b(s|ort))|r(ou(nd|teEvents)|e(size(By|To)|calc|turnValue|place|verse|l(oad|ease(Capture|Events)))|andom)|g(o|et(ResponseHeader|M(i(nutes|lliseconds)|onth)|Se(conds|lection)|Hours|Year|Time(zoneOffset)?|Da(y|te)|UTC(M(i(nutes|lliseconds)|onth)|Seconds|Hours|Da(y|te)|FullYear)|FullYear|A(ttention|llResponseHeaders)))|m(in|ove(B(y|elow)|To(Absolute)?|Above)|ergeAttributes|a(tch|rgins|x))|b(toa|ig|o(ld|rderWidths)|link|ack))\b(?=\()
- name
- support.function.js
-
-
- match
- \b(s(ub(stringData|mit)|plitText|e(t(NamedItem|Attribute(Node)?)|lect))|has(ChildNodes|Feature)|namedItem|c(l(ick|o(se|neNode))|reate(C(omment|DATASection|aption)|T(Head|extNode|Foot)|DocumentFragment|ProcessingInstruction|E(ntityReference|lement)|Attribute))|tabIndex|i(nsert(Row|Before|Cell|Data)|tem)|open|delete(Row|C(ell|aption)|T(Head|Foot)|Data)|focus|write(ln)?|a(dd|ppend(Child|Data))|re(set|place(Child|Data)|move(NamedItem|Child|Attribute(Node)?)?)|get(NamedItem|Element(sBy(Name|TagName)|ById)|Attribute(Node)?)|blur)\b(?=\()
- name
- support.function.dom.js
-
-
- match
- (?<=\.)(s(ystemLanguage|cr(ipts|ollbars|een(X|Y|Top|Left))|t(yle(Sheets)?|atus(Text|bar)?)|ibling(Below|Above)|ource|uffixes|e(curity(Policy)?|l(ection|f)))|h(istory|ost(name)?|as(h|Focus))|y|X(MLDocument|SLDocument)|n(ext|ame(space(s|URI)|Prop))|M(IN_VALUE|AX_VALUE)|c(haracterSet|o(n(structor|trollers)|okieEnabled|lorDepth|mp(onents|lete))|urrent|puClass|l(i(p(boardData)?|entInformation)|osed|asses)|alle(e|r)|rypto)|t(o(olbar|p)|ext(Transform|Indent|Decoration|Align)|ags)|SQRT(1_2|2)|i(n(ner(Height|Width)|put)|ds|gnoreCase)|zIndex|o(scpu|n(readystatechange|Line)|uter(Height|Width)|p(sProfile|ener)|ffscreenBuffering)|NEGATIVE_INFINITY|d(i(splay|alog(Height|Top|Width|Left|Arguments)|rectories)|e(scription|fault(Status|Ch(ecked|arset)|View)))|u(ser(Profile|Language|Agent)|n(iqueID|defined)|pdateInterval)|_content|p(ixelDepth|ort|ersonalbar|kcs11|l(ugins|atform)|a(thname|dding(Right|Bottom|Top|Left)|rent(Window|Layer)?|ge(X(Offset)?|Y(Offset)?))|r(o(to(col|type)|duct(Sub)?|mpter)|e(vious|fix)))|e(n(coding|abledPlugin)|x(ternal|pando)|mbeds)|v(isibility|endor(Sub)?|Linkcolor)|URLUnencoded|P(I|OSITIVE_INFINITY)|f(ilename|o(nt(Size|Family|Weight)|rmName)|rame(s|Element)|gColor)|E|whiteSpace|l(i(stStyleType|n(eHeight|kColor))|o(ca(tion(bar)?|lName)|wsrc)|e(ngth|ft(Context)?)|a(st(M(odified|atch)|Index|Paren)|yer(s|X)|nguage))|a(pp(MinorVersion|Name|Co(deName|re)|Version)|vail(Height|Top|Width|Left)|ll|r(ity|guments)|Linkcolor|bove)|r(ight(Context)?|e(sponse(XML|Text)|adyState))|global|x|m(imeTypes|ultiline|enubar|argin(Right|Bottom|Top|Left))|L(N(10|2)|OG(10E|2E))|b(o(ttom|rder(RightWidth|BottomWidth|Style|Color|TopWidth|LeftWidth))|ufferDepth|elow|ackground(Color|Image)))\b
- name
- support.constant.js
-
-
- match
- (?<=\.)(s(hape|ystemId|c(heme|ope|rolling)|ta(ndby|rt)|ize|ummary|pecified|e(ctionRowIndex|lected(Index)?)|rc)|h(space|t(tpEquiv|mlFor)|e(ight|aders)|ref(lang)?)|n(o(Resize|tation(s|Name)|Shade|Href|de(Name|Type|Value)|Wrap)|extSibling|ame)|c(h(ildNodes|Off|ecked|arset)?|ite|o(ntent|o(kie|rds)|de(Base|Type)?|l(s|Span|or)|mpact)|ell(s|Spacing|Padding)|l(ear|assName)|aption)|t(ype|Bodies|itle|Head|ext|a(rget|gName)|Foot)|i(sMap|ndex|d|m(plementation|ages))|o(ptions|wnerDocument|bject)|d(i(sabled|r)|o(c(type|umentElement)|main)|e(clare|f(er|ault(Selected|Checked|Value)))|at(eTime|a))|useMap|p(ublicId|arentNode|r(o(file|mpt)|eviousSibling))|e(n(ctype|tities)|vent|lements)|v(space|ersion|alue(Type)?|Link|Align)|URL|f(irstChild|orm(s)?|ace|rame(Border)?)|width|l(ink(s)?|o(ngDesc|wSrc)|a(stChild|ng|bel))|a(nchors|c(ce(ssKey|pt(Charset)?)|tion)|ttributes|pplets|l(t|ign)|r(chive|eas)|xis|Link|bbr)|r(ow(s|Span|Index)|ules|e(v|ferrer|l|adOnly))|m(ultiple|e(thod|dia)|a(rgin(Height|Width)|xLength))|b(o(dy|rder)|ackground|gColor))\b
- name
- support.constant.dom.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
-
-
- match
- \bon(R(ow(s(inserted|delete)|e(nter|xit))|e(s(ize(start|end)?|et)|adystatechange))|Mouse(o(ut|ver)|down|up|move)|B(efore(cut|deactivate|u(nload|pdate)|p(aste|rint)|editfocus|activate)|lur)|S(croll|top|ubmit|elect(start|ionchange)?)|H(over|elp)|C(hange|ont(extmenu|rolselect)|ut|ellchange|l(ick|ose))|D(eactivate|ata(setc(hanged|omplete)|available)|r(op|ag(start|over|drop|en(ter|d)|leave)?)|blclick)|Unload|P(aste|ropertychange)|Error(update)?|Key(down|up|press)|Focus|Load|A(ctivate|fter(update|print)|bort))\b
- name
- support.function.event-handler.js
-
-
- match
- !|\$|%|&|\*|\-\-|\-|\+\+|\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\|\||\?\:|\*=|/=|%=|\+=|\-=|&=|\^=|\b(in|instanceof|new|delete|typeof|void)\b
- name
- keyword.operator.js
-
-
- match
- \b(Infinity|NaN|Undefined)\b
- name
- constant.language.js
-
-
- begin
- (?<=[=(:]|^|return)\s*(/)(?![/*+{}?])
+ (?x) (function) (?= (\s+ ([_$a-zA-Z][_$\w]*))? \s* \(.*?\))
beginCaptures
1
name
- punctuation.definition.string.begin.js
+ storage.type.function.js
+ comment
+ function(one,two,...)\n?{...}
end
- (/)[igm]*
- endCaptures
-
- 1
-
- name
- punctuation.definition.string.end.js
-
-
+ (?<=})(\s*\n)?
name
- string.regexp.js
+ meta.function.js
patterns
- match
- \\.
- name
- constant.character.escape.js
+ include
+ #function-params
+
+
+ include
+ #leading-space
+
+
+ include
+ #function-block
+ include
+ source.js.basic
+
+
+ captures
+
+ 1
+
+ name
+ entity.name.function.js
+
+ 2
+
+ name
+ meta.group.braces.round.function.arguments.js
+
+ 3
+
+ name
+ punctuation.section.scope.round.js
+
+
match
- \;
+ (?x)(?<= \. ) ([_$a-zA-Z][_$\w]*) ((\( \s* \)))
name
- punctuation.terminator.statement.js
+ meta.function-call.method.without-arguments.js
+
+
+ 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
+ punctuation.section.scope.js
+
+
+ match
+ (?x)(?<! [_$\w] ) ([_$a-zA-Z][_$\w]*) ((\( \s* \)))
+ name
+ meta.function-call.static.without-arguments.js
+
+
+ captures
+
+ 1
+
+ name
+ entity.name.function.js
+
+
+ match
+ (?x)(?<! [_$\w] ) ([_$a-zA-Z][_$\w]*) (?=\()
+ name
+ meta.function-call.static.with-arguments.js
match
- ,[ |\t]*
+ (?x)(?<= \. ) ([_$a-zA-Z][_$\w]*)
name
- meta.delimiter.object.comma.js
+ variable.other.property.js
match
- \.
+ (?x)
+ (?<! [\._$a-zA-Z] ) [_$] [_$\w]*
+ |(?<= var \s ) [_$a-zA-Z] [_$\w]*
+ |(?<! [_$\w] ) [_$a-zA-Z] [_$\w]* (?=(
+ \[
+ |\s*(&|\*|\-|\+|~|=|!=|<|>|!|\||/=|%=|\^=)
+ ))
name
- meta.delimiter.method.period.js
+ variable.other.js
- match
- \{|\}
- name
- meta.brace.curly.js
-
-
- match
- \(|\)
- name
- meta.brace.round.js
-
-
- match
- \[|\]
- name
- meta.brace.square.js
+ include
+ #leading-space
+ repository
+
+ brackets
+
+ patterns
+
+
+ begin
+ (\{)
+ captures
+
+ 1
+
+ name
+ punctuation.section.scope.curly.js
+
+ 2
+
+ name
+ punctuation.separator.objects.js
+
+
+ end
+ (\})(,)?\s*
+ name
+ meta.group.braces.curly
+ patterns
+
+
+ captures
+
+ 1
+
+ name
+ invalid.illegal.delimiter.object.comma.js
+
+
+ match
+ (,)\s*+(?=\})
+
+
+ captures
+
+ 1
+
+ name
+ string.quoted.double.js
+
+ 2
+
+ name
+ punctuation.definition.string.js
+
+ 3
+
+ name
+ constant.other.object.key.js
+
+ 4
+
+ name
+ punctuation.definition.string.js
+
+ 5
+
+ name
+ punctuation.separator.objects.js
+
+
+ comment
+ "something" :
+ match
+ ((")([^"]*)(")\s*)(:)\s*+(?!function)
+
+
+ captures
+
+ 1
+
+ name
+ string.quoted.single.js
+
+ 2
+
+ name
+ punctuation.definition.string.js
+
+ 3
+
+ name
+ constant.other.object.key.js
+
+ 4
+
+ name
+ punctuation.definition.string.js
+
+ 5
+
+ name
+ punctuation.separator.objects.js
+
+
+ comment
+ 'something' :
+ match
+ ((')([^']*)(')\s*)(:)\s*+(?!function)
+
+
+ captures
+
+ 1
+
+ name
+ constant.other.object.key.js
+
+ 2
+
+ name
+ punctuation.separator.objects.js
+
+
+ comment
+ something :
+ match
+ \b(\w+\b\s*)(:)\s*+(?!function)
+
+
+ include
+ $base
+
+
+
+
+ begin
+ (\()(?!\))
+ captures
+
+ 1
+
+ name
+ punctuation.section.scope.round.js
+
+
+ end
+ (\))
+ name
+ meta.group.braces.round
+ patterns
+
+
+ include
+ $base
+
+
+
+
+ begin
+ (\[)(?!\])
+ captures
+
+ 1
+
+ name
+ punctuation.section.scope.square.js
+
+
+ end
+ (\])
+ name
+ meta.group.braces.square
+ patterns
+
+
+ include
+ $base
+
+
+
+
+
+ conditional-compilation
+
+ patterns
+
+
+ begin
+ /\*(?=@)
+ captures
+
+ 0
+
+ name
+ punctuation.definition.comment.js
+
+
+ end
+ (?<=@)\*/
+ 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
+
+
+
+ function-block
+
+ begin
+ ({)
+ captures
+
+ 1
+
+ name
+ punctuation.section.function.js
+
+ 2
+
+ name
+ punctuation.terminator.statement.js
+
+
+ end
+ (})
+ name
+ meta.group.braces.curly.function.js
+ patterns
+
+
+ include
+ $base
+
+
+
+ function-params
+
+ begin
+ (?x)(?<=function) (?:\s+ ([_$a-zA-Z][_$\w]*))? \s* (\()
+ beginCaptures
+
+ 1
+
+ name
+ entity.name.function.js
+
+ 2
+
+ name
+ punctuation.definition.parameters.js
+
+
+ end
+ \)
+ endCaptures
+
+ 0
+
+ name
+ punctuation.definition.parameters.js
+
+
+ name
+ meta.group.braces.round.function.arguments.js
+ patterns
+
+
+ captures
+
+ 1
+
+ name
+ invalid.illegal.delimiter.js
+
+
+ match
+ (,)\s*+(?=\))
+
+
+ match
+ ,
+ name
+ punctuation.separator.parameters.function.js
+
+
+ captures
+
+ 1
+
+ name
+ invalid.illegal.delimiter.js
+
+
+ match
+ (?<![_$\w])([^_$a-zA-Z),\s]+)
+
+
+ match
+ (?<![_$\w])([_$a-zA-Z][_$\w]*)
+ name
+ variable.parameter.function.js
+
+
+
+ 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)?
+
+
+
+
+
+
scopeName
source.js
uuid
diff --git a/info.plist b/info.plist
index 2b16c32..16ac3e7 100644
--- a/info.plist
+++ b/info.plist
@@ -1,5 +1,5 @@
-
+
contactEmailRot13
@@ -12,14 +12,24 @@
items
+ B4874A14-2491-465A-A349-61E4EBCF4700
+ ------------------------------------
D2E6A1FE-2881-4754-B399-B65F61F29C2F
43F40EB6-5839-4BE8-99C8-4976D0534E5D
52090C49-D8B2-49A0-9597-80574354B3CD
- ------------------------------------
- B4874A14-2491-465A-A349-61E4EBCF4700
+ 28B33806-DCD4-4D5D-A422-B6041A6D9FAA
submenus
+ 28B33806-DCD4-4D5D-A422-B6041A6D9FAA
+
+ items
+
+ 0C6DE5D1-2AAA-4327-A746-94FCCD7A45C9
+
+ name
+ Idioms
+
43F40EB6-5839-4BE8-99C8-4976D0534E5D
items
@@ -104,8 +114,8 @@
1717B5AE-209B-4548-9155-9E88A7230C1C
4C6EDB43-3E2E-411B-A016-13C135C59833
93E017CC-6F27-11D9-90EB-000D93589AF6
+ 0D2D03B9-F18B-4D9D-A960-716FDEC35331
A67A8BD9-A951-406F-9175-018DD4B52FD1
- BC062860-3346-4D3B-8421-C5543F83D11F
834BC727-6B31-4073-A161-4823227219EF
3CEA49B2-A5C5-405C-82E2-B8B668877C37
E6EB7CC8-04E8-43A9-93B2-BC9EF5BA862B
@@ -120,6 +130,8 @@
009A3E6C-FE3F-4A18-8759-2DC31F17BBE2
7B9AEFCC-B450-416D-8527-430FE2A08568
9E0E3BCC-7F20-4D6B-891D-A44D6EC56E31
+ 0C6DE5D1-2AAA-4327-A746-94FCCD7A45C9
+ 6D3097A0-7065-480A-9DE2-D7EEE181E783
uuid
AAB4FD74-73F9-11D9-B89A-000D93589AF6