Files
kJS.tmbundle/Syntaxes/JavaScript.plist
T
2008-03-16 06:35:43 +00:00

677 lines
16 KiB
Plaintext

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>foldingStartMarker</key>
<string>^.*(\bfunction\s*(\w+\s*)?\([^\)]*\)(\s*\{[^\}]*)?\s*$)|(={\s*$)|(\({$)</string>
<key>foldingStopMarker</key>
<string>(^\s*\})|(^}\));</string>
<key>keyEquivalent</key>
<string>^~J</string>
<key>name</key>
<string>JavaScript</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#conditional-compilation</string>
</dict>
<dict>
<key>include</key>
<string>#brackets</string>
</dict>
<dict>
<key>begin</key>
<string>(?x)
(function)
(?=
(?:\s+ (?:[_$a-zA-Z][_$\w]*))? \s* # The function name
\([^)]*\) # The properties that the function accepts
)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>storage.type.function.js</string>
</dict>
</dict>
<key>comment</key>
<string>function(one,two,...)\n?{...}</string>
<key>end</key>
<string>(?&lt;=})(\s*\n)?</string>
<key>name</key>
<string>meta.function.js</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#function-params</string>
</dict>
<dict>
<key>include</key>
<string>#leading-space</string>
</dict>
<dict>
<key>include</key>
<string>#function-block</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>source.js</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.js</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.group.braces.round.function.arguments.js</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.round.js</string>
</dict>
</dict>
<key>match</key>
<string>(?x)(?&lt;= \. ) ([_$a-zA-Z][_$\w]*) ((\( \s* \)))</string>
<key>name</key>
<string>meta.function-call.method.without-arguments.js</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.js</string>
</dict>
</dict>
<key>match</key>
<string>(?x)(?&lt;= \. ) ([_$a-zA-Z][_$\w]*) (?=\()</string>
<key>name</key>
<string>meta.function-call.method.with-arguments.js</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.js</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.group.braces.round.function.arguments.js</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.js</string>
</dict>
</dict>
<key>match</key>
<string>(?x)(?&lt;! [_$\w] ) ([_$a-zA-Z][_$\w]*) ((\( \s* \)))</string>
<key>name</key>
<string>meta.function-call.static.without-arguments.js</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.js</string>
</dict>
</dict>
<key>match</key>
<string>(?x)(?&lt;! [_$\w] ) ([_$a-zA-Z][_$\w]*) (?=\()</string>
<key>name</key>
<string>meta.function-call.static.with-arguments.js</string>
</dict>
<dict>
<key>match</key>
<string>(?x)(?&lt;= \. ) ([_$a-zA-Z][_$\w]*)</string>
<key>name</key>
<string>variable.other.property.js</string>
</dict>
<dict>
<key>match</key>
<string>(?x)
(?&lt;! [\._$a-zA-Z] ) [_$] [_$\w]*
|(?&lt;= var \s ) [_$a-zA-Z] [_$\w]*
|(?&lt;! [_$\w] ) [_$a-zA-Z] [_$\w]* (?=(
\[
|\s*(&amp;|\*|\-|\+|~|=|!=|&lt;|&gt;|!|\||/=|%=|\^=)
))</string>
<key>name</key>
<string>variable.other.js</string>
</dict>
<dict>
<key>include</key>
<string>#leading-space</string>
</dict>
</array>
<key>repository</key>
<dict>
<key>brackets</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>(\{)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.curly.js</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.separator.objects.js</string>
</dict>
</dict>
<key>end</key>
<string>(\})(,)?\s*</string>
<key>name</key>
<string>meta.group.braces.curly</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#object-properties</string>
</dict>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(\()(?!\))</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.round.js</string>
</dict>
</dict>
<key>disabled</key>
<integer>1</integer>
<key>end</key>
<string>(\))</string>
<key>name</key>
<string>meta.group.braces.round</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(\[)(?!\])</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.section.scope.square.js</string>
</dict>
</dict>
<key>end</key>
<string>(\])</string>
<key>name</key>
<string>meta.group.braces.square</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>conditional-compilation</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>/\*(?=@)</string>
<key>captures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.js</string>
</dict>
</dict>
<key>end</key>
<string>(?&lt;=@)\*/</string>
<key>name</key>
<string>comment.block.conditional.js</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.keyword.js</string>
</dict>
</dict>
<key>match</key>
<string>(@)(if|elif|else|end)</string>
<key>name</key>
<string>keyword.control.conditional.js</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.keyword.js</string>
</dict>
</dict>
<key>match</key>
<string>(@)(cc_on|set)</string>
<key>name</key>
<string>keyword.operator.conditional.js</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.definition.variable.js</string>
</dict>
</dict>
<key>match</key>
<string>(@)(_win32|_win16|_mac|_alpha|_x86|_mc680x0|_PowerPC|_jscript_build|_jscript_version|_jscript|_debug|_fast|[a-zA-Z]\w+)</string>
<key>name</key>
<string>variable.other.conditional.js</string>
</dict>
</array>
</dict>
<key>function-block</key>
<dict>
<key>begin</key>
<string>({)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.section.function.js</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.terminator.statement.js</string>
</dict>
</dict>
<key>end</key>
<string>(})</string>
<key>name</key>
<string>meta.group.braces.curly.function.js</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<key>function-params</key>
<dict>
<key>begin</key>
<string>(?x)
(?&lt;=function) # Must come after the word "function"
(?:\s+ ([_$a-zA-Z][_$\w]*))? # Mtch the name if it exists
\s* (\()</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>entity.name.function.js</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.js</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.js</string>
</dict>
</dict>
<key>name</key>
<string>meta.group.braces.round.function.arguments.js</string>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>invalid.illegal.delimiter.js</string>
</dict>
</dict>
<key>match</key>
<string>(,)\s*+(?=\))</string>
</dict>
<dict>
<key>match</key>
<string>,</string>
<key>name</key>
<string>punctuation.separator.parameters.function.js</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>invalid.illegal.delimiter.js</string>
</dict>
</dict>
<key>match</key>
<string>(?&lt;![_$\w])([^_$a-zA-Z),\s]+)</string>
</dict>
<dict>
<key>match</key>
<string>(?&lt;![_$\w])([_$a-zA-Z][_$\w]*)</string>
<key>name</key>
<string>variable.parameter.function.js</string>
</dict>
</array>
</dict>
<key>leading-space</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>^(?=(\t| ))</string>
<key>end</key>
<string>(?=[^\t\s])</string>
<key>name</key>
<string>meta.leading-tabs</string>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.odd-tab.group1.spaces</string>
</dict>
<key>10</key>
<dict>
<key>name</key>
<string>meta.even-tab.group10.spaces</string>
</dict>
<key>11</key>
<dict>
<key>name</key>
<string>meta.odd-tab.group11.spaces</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.even-tab.group2.spaces</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>meta.odd-tab.group3.spaces</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>meta.even-tab.group4.spaces</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>meta.odd-tab.group5.spaces</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>meta.even-tab.group6.spaces</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>meta.odd-tab.group7.spaces</string>
</dict>
<key>8</key>
<dict>
<key>name</key>
<string>meta.even-tab.group8.spaces</string>
</dict>
<key>9</key>
<dict>
<key>name</key>
<string>meta.odd-tab.group9.spaces</string>
</dict>
</dict>
<key>match</key>
<string>( )( )?( )?( )?( )?( )?( )?( )?( )?( )?( )?</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.odd-tab.group1.tab</string>
</dict>
<key>10</key>
<dict>
<key>name</key>
<string>meta.even-tab.group10.tab</string>
</dict>
<key>11</key>
<dict>
<key>name</key>
<string>meta.odd-tab.group11.tab</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>meta.even-tab.group2.tab</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>meta.odd-tab.group3.tab</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>meta.even-tab.group4.tab</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>meta.odd-tab.group5.tab</string>
</dict>
<key>6</key>
<dict>
<key>name</key>
<string>meta.even-tab.group6.tab</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>meta.odd-tab.group7.tab</string>
</dict>
<key>8</key>
<dict>
<key>name</key>
<string>meta.even-tab.group8.tab</string>
</dict>
<key>9</key>
<dict>
<key>name</key>
<string>meta.odd-tab.group9.tab</string>
</dict>
</dict>
<key>match</key>
<string>(\t)(\t)?(\t)?(\t)?(\t)?(\t)?(\t)?(\t)?(\t)?(\t)?(\t)?</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>object-properties</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>invalid.illegal.delimiter.object.comma.js</string>
</dict>
</dict>
<key>match</key>
<string>(,)\s*+(?=\})</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.quoted.double.js</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.js</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>constant.other.object.key.js</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.js</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.separator.objects.js</string>
</dict>
</dict>
<key>comment</key>
<string>"something" : </string>
<key>match</key>
<string>((")([^"]*)(")\s*)(:)(?!\s*+function)</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>string.quoted.single.js</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.js</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>constant.other.object.key.js</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.js</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>punctuation.separator.objects.js</string>
</dict>
</dict>
<key>comment</key>
<string>'something' : </string>
<key>match</key>
<string>((')([^']*)(')\s*)(:)(?!\s*+function)</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>constant.other.object.key.js</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.separator.objects.js</string>
</dict>
</dict>
<key>comment</key>
<string>something : </string>
<key>match</key>
<string>\b(\w+\b\s*)(:)(?!\s*+function)</string>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>source.js.base</string>
<key>uuid</key>
<string>93E017CC-6F27-11D9-90EB-000D93589AF6</string>
</dict>
</plist>