Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with
or
.
Download ZIP
branch: master
1190 lines (1189 sloc) 28.142 kb
<?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>fileTypes</key>
<array>
<string>c</string>
<string>h</string>
</array>
<key>firstLineMatch</key>
<string>-[*]-( Mode:)? C -[*]-</string>
<key>keyEquivalent</key>
<string>^~C</string>
<key>name</key>
<string>C</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#preprocessor-rule-enabled</string>
</dict>
<dict>
<key>include</key>
<string>#preprocessor-rule-disabled</string>
</dict>
<dict>
<key>include</key>
<string>#preprocessor-rule-other</string>
</dict>
<dict>
<key>include</key>
<string>#comments</string>
</dict>
<dict>
<key>include</key>
<string>source.c.platform</string>
</dict>
<dict>
<key>match</key>
<string>\b(break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while)\b</string>
<key>name</key>
<string>keyword.control.c</string>
</dict>
<dict>
<key>match</key>
<string>\b(asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\b</string>
<key>name</key>
<string>storage.type.c</string>
</dict>
<dict>
<key>match</key>
<string>\b(const|extern|register|restrict|static|volatile|inline)\b</string>
<key>name</key>
<string>storage.modifier.c</string>
</dict>
<dict>
<key>comment</key>
<string>common C constant naming idiom -- kConstantVariable</string>
<key>match</key>
<string>\bk[A-Z]\w*\b</string>
<key>name</key>
<string>constant.other.variable.mac-classic.c</string>
</dict>
<dict>
<key>match</key>
<string>\bg[A-Z]\w*\b</string>
<key>name</key>
<string>variable.other.readwrite.global.mac-classic.c</string>
</dict>
<dict>
<key>match</key>
<string>\bs[A-Z]\w*\b</string>
<key>name</key>
<string>variable.other.readwrite.static.mac-classic.c</string>
</dict>
<dict>
<key>match</key>
<string>\b(NULL|true|false|TRUE|FALSE)\b</string>
<key>name</key>
<string>constant.language.c</string>
</dict>
<dict>
<key>include</key>
<string>#sizeof</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>inc</key>
<dict>
<key>name</key>
<string>invalid.illegal.digit-separator-should-not-be-last.c++</string>
</dict>
</dict>
<key>match</key>
<string>(?x)\b
( (?i:
0x ( \h+ ( ' \h+ )* )? # Hexadecimal
| 0b ( [0-1]+ ( ' [0-1]+ )* )? # Binary
| 0 ( [0-7]+ ( ' [0-7]+ )* ) # Octal
| ( [0-9]+ ( ' [0-9]+ )* ) # Decimal
)
( ([uUfF] | u?ll? | U?LL?)\b | (?&lt;inc&gt;') | \b )
| ( [0-9]+ ( ' [0-9]+ )* )?
(?i:
\. ( [0-9]+ ( ' [0-9]+ )* ) E(\+|-)? ( [0-9]+ ( ' [0-9]+ )* )
| \. ( [0-9]+ ( ' [0-9]+ )* )
| E(\+|-)? ( [0-9]+ ( ' [0-9]+ )* )
)
( (?&lt;inc&gt;') | \b )
)</string>
<key>name</key>
<string>constant.numeric.c</string>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.c</string>
</dict>
</dict>
<key>end</key>
<string>"</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.c</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.c</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string_escaped_char</string>
</dict>
<dict>
<key>include</key>
<string>#string_placeholder</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>'</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.c</string>
</dict>
</dict>
<key>end</key>
<string>'</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.c</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.single.c</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#string_escaped_char</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>(?x)
^\s*\#\s*(define)\s+ # define
((?&lt;id&gt;[a-zA-Z_][a-zA-Z0-9_]*)) # macro name
(?: # and optionally:
(\() # an open parenthesis
(
\s* \g&lt;id&gt; \s* # first argument
((,) \s* \g&lt;id&gt; \s*)* # additional arguments
(?:\.\.\.)? # varargs ellipsis?
)
(\)) # a close parenthesis
)?
</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.import.define.c</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>entity.name.function.preprocessor.c</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.begin.c</string>
</dict>
<key>5</key>
<dict>
<key>name</key>
<string>variable.parameter.preprocessor.c</string>
</dict>
<key>7</key>
<dict>
<key>name</key>
<string>punctuation.separator.parameters.c</string>
</dict>
<key>8</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.end.c</string>
</dict>
</dict>
<key>end</key>
<string>(?=(?://|/\*))|$</string>
<key>name</key>
<string>meta.preprocessor.macro.c</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>(?&gt;\\\s*\n)</string>
<key>name</key>
<string>punctuation.separator.continuation.c</string>
</dict>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^\s*#\s*(error|warning)\b</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.import.error.c</string>
</dict>
</dict>
<key>end</key>
<string>$</string>
<key>name</key>
<string>meta.preprocessor.diagnostic.c</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>(?&gt;\\\s*\n)</string>
<key>name</key>
<string>punctuation.separator.continuation.c</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string>^\s*#\s*(include|import)\b</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.import.include.c</string>
</dict>
</dict>
<key>end</key>
<string>(?=(?://|/\*))|$</string>
<key>name</key>
<string>meta.preprocessor.c.include</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>(?&gt;\\\s*\n)</string>
<key>name</key>
<string>punctuation.separator.continuation.c</string>
</dict>
<dict>
<key>begin</key>
<string>"</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.c</string>
</dict>
</dict>
<key>end</key>
<string>"</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.c</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.double.include.c</string>
</dict>
<dict>
<key>begin</key>
<string>&lt;</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.begin.c</string>
</dict>
</dict>
<key>end</key>
<string>&gt;</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.string.end.c</string>
</dict>
</dict>
<key>name</key>
<string>string.quoted.other.lt-gt.include.c</string>
</dict>
</array>
</dict>
<dict>
<key>include</key>
<string>#pragma-mark</string>
</dict>
<dict>
<key>begin</key>
<string>^\s*#\s*(define|defined|elif|else|if|ifdef|ifndef|line|pragma|undef)\b</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>keyword.control.import.c</string>
</dict>
</dict>
<key>end</key>
<string>(?=(?://|/\*))|$</string>
<key>name</key>
<string>meta.preprocessor.c</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>(?&gt;\\\s*\n)</string>
<key>name</key>
<string>punctuation.separator.continuation.c</string>
</dict>
</array>
</dict>
<dict>
<key>comment</key>
<string>Reserved POSIX types</string>
<key>match</key>
<string>\b([a-z0-9_]+_t)\b</string>
<key>name</key>
<string>support.type.posix-reserved.c</string>
</dict>
<dict>
<key>include</key>
<string>#block</string>
</dict>
<dict>
<key>begin</key>
<string>(?x)
(?: ^ # begin-of-line
|
(?: (?= \s ) (?&lt;!else|new|return) (?&lt;=\w) # or word + space before name
| (?= \s*[A-Za-z_] ) (?&lt;!&amp;&amp;) (?&lt;=[*&amp;&gt;]) # or type modifier before name
)
)
(\s*) (?!(while|for|do|if|else|switch|catch|enumerate|return|sizeof|[cr]?iterate)\s*\()
(
(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name
(?: (?&lt;=operator) (?: [-*&amp;&lt;&gt;=+!]+ | \(\) | \[\] ) ) # if it is a C++ operator
)
\s*(?=\()</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.whitespace.function.leading.c</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>entity.name.function.c</string>
</dict>
<key>4</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.c</string>
</dict>
</dict>
<key>end</key>
<string>(?&lt;=\})|(?=#)|(;)</string>
<key>name</key>
<string>meta.function.c</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#comments</string>
</dict>
<dict>
<key>include</key>
<string>#parens</string>
</dict>
<dict>
<key>match</key>
<string>\b(const|final|override)\b</string>
<key>name</key>
<string>storage.modifier.$1.c++</string>
</dict>
<dict>
<key>include</key>
<string>#block</string>
</dict>
</array>
</dict>
</array>
<key>repository</key>
<dict>
<key>access</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.separator.variable-access.c</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>variable.other.dot-access.c</string>
</dict>
</dict>
<key>match</key>
<string>(\.)([a-zA-Z_][a-zA-Z_0-9]*)\b(?!\s*\()</string>
</dict>
<key>block</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>\{</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.block.begin.c</string>
</dict>
</dict>
<key>end</key>
<string>\}</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.block.end.c</string>
</dict>
</dict>
<key>name</key>
<string>meta.block.c</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#block_innards</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>block_innards</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#preprocessor-rule-enabled-block</string>
</dict>
<dict>
<key>include</key>
<string>#preprocessor-rule-disabled-block</string>
</dict>
<dict>
<key>include</key>
<string>#preprocessor-rule-other-block</string>
</dict>
<dict>
<key>include</key>
<string>#sizeof</string>
</dict>
<dict>
<key>include</key>
<string>#access</string>
</dict>
<dict>
<key>include</key>
<string>source.c.platform#functions</string>
</dict>
<dict>
<key>include</key>
<string>#c_function_call</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>variable.other.c</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.c</string>
</dict>
</dict>
<key>match</key>
<string>(?x)
(?x)
(?:
(?: (?= \s ) (?&lt;!else|new|return) (?&lt;=\w)\s+ # or word + space before name
)
)
(
(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name
(?: (?&lt;=operator) (?: [-*&amp;&lt;&gt;=+!]+ | \(\) | \[\] ) )? # if it is a C++ operator
)
\s*(\()</string>
<key>name</key>
<string>meta.initialization.c</string>
</dict>
<dict>
<key>include</key>
<string>#block</string>
</dict>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<key>c_function_call</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.whitespace.function-call.leading.c</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>support.function.any-method.c</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>punctuation.definition.parameters.c</string>
</dict>
</dict>
<key>match</key>
<string>(?x) (?: (?= \s ) (?:(?&lt;=else|new|return) | (?&lt;!\w)) (\s+))?
(\b
(?!(while|for|do|if|else|switch|catch|enumerate|return|sizeof|[cr]?iterate)\s*\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\b | :: )++ # actual name
)
\s*(\()</string>
<key>name</key>
<string>meta.function-call.c</string>
</dict>
<key>comments</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.toc-list.banner.block.c</string>
</dict>
</dict>
<key>match</key>
<string>^/\* =(\s*.*?)\s*= \*/$\n?</string>
<key>name</key>
<string>comment.block.c</string>
</dict>
<dict>
<key>begin</key>
<string>/\*</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.begin.c</string>
</dict>
</dict>
<key>end</key>
<string>\*/</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.end.c</string>
</dict>
</dict>
<key>name</key>
<string>comment.block.c</string>
</dict>
<dict>
<key>match</key>
<string>\*/.*\n</string>
<key>name</key>
<string>invalid.illegal.stray-comment-end.c</string>
</dict>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.toc-list.banner.line.c</string>
</dict>
</dict>
<key>match</key>
<string>^// =(\s*.*?)\s*=\s*$\n?</string>
<key>name</key>
<string>comment.line.banner.c++</string>
</dict>
<dict>
<key>begin</key>
<string>(^[ \t]+)?(?=//)</string>
<key>beginCaptures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>punctuation.whitespace.comment.leading.c++</string>
</dict>
</dict>
<key>end</key>
<string>(?!\G)</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>//</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.definition.comment.c++</string>
</dict>
</dict>
<key>end</key>
<string>\n</string>
<key>name</key>
<string>comment.line.double-slash.c++</string>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>(?&gt;\\\s*\n)</string>
<key>name</key>
<string>punctuation.separator.continuation.c++</string>
</dict>
</array>
</dict>
</array>
</dict>
</array>
</dict>
<key>disabled</key>
<dict>
<key>begin</key>
<string>^\s*#\s*if(n?def)?\b.*$</string>
<key>comment</key>
<string>eat nested preprocessor if(def)s</string>
<key>end</key>
<string>^\s*#\s*endif\b</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#disabled</string>
</dict>
<dict>
<key>include</key>
<string>#pragma-mark</string>
</dict>
</array>
</dict>
<key>parens</key>
<dict>
<key>begin</key>
<string>\(</string>
<key>beginCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.parens.begin.c</string>
</dict>
</dict>
<key>end</key>
<string>\)</string>
<key>endCaptures</key>
<dict>
<key>0</key>
<dict>
<key>name</key>
<string>punctuation.section.parens.end.c</string>
</dict>
</dict>
<key>name</key>
<string>meta.parens.c</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<key>pragma-mark</key>
<dict>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.preprocessor.c</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.control.import.pragma.c</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>meta.toc-list.pragma-mark.c</string>
</dict>
</dict>
<key>match</key>
<string>^\s*(#\s*(pragma\s+mark)\s+(.*))</string>
<key>name</key>
<string>meta.section</string>
</dict>
<key>preprocessor-rule-disabled</key>
<dict>
<key>begin</key>
<string>^\s*(#(if)\s+(0)\b).*</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.preprocessor.c</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.control.import.if.c</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>constant.numeric.preprocessor.c</string>
</dict>
</dict>
<key>end</key>
<string>^\s*(#\s*(endif)\b)</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>^\s*(#\s*(else)\b)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.preprocessor.c</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.control.import.else.c</string>
</dict>
</dict>
<key>end</key>
<string>(?=^\s*#\s*endif\b)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string></string>
<key>end</key>
<string>(?=^\s*#\s*(else|endif)\b)</string>
<key>name</key>
<string>comment.block.preprocessor.if-branch</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#disabled</string>
</dict>
<dict>
<key>include</key>
<string>#pragma-mark</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>preprocessor-rule-disabled-block</key>
<dict>
<key>begin</key>
<string>^\s*(#(if)\s+(0)\b).*</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.preprocessor.c</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.control.import.if.c</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>constant.numeric.preprocessor.c</string>
</dict>
</dict>
<key>end</key>
<string>^\s*(#\s*(endif)\b)</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>^\s*(#\s*(else)\b)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.preprocessor.c</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.control.import.else.c</string>
</dict>
</dict>
<key>end</key>
<string>(?=^\s*#\s*endif\b)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#block_innards</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string></string>
<key>end</key>
<string>(?=^\s*#\s*(else|endif)\b)</string>
<key>name</key>
<string>comment.block.preprocessor.if-branch.in-block</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#disabled</string>
</dict>
<dict>
<key>include</key>
<string>#pragma-mark</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>preprocessor-rule-enabled</key>
<dict>
<key>begin</key>
<string>^\s*(#(if)\s+(0*1)\b)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.preprocessor.c</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.control.import.if.c</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>constant.numeric.preprocessor.c</string>
</dict>
</dict>
<key>end</key>
<string>^\s*(#\s*(endif)\b)</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>^\s*(#\s*(else)\b).*</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.preprocessor.c</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.control.import.else.c</string>
</dict>
</dict>
<key>contentName</key>
<string>comment.block.preprocessor.else-branch</string>
<key>end</key>
<string>(?=^\s*#\s*endif\b)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#disabled</string>
</dict>
<dict>
<key>include</key>
<string>#pragma-mark</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string></string>
<key>end</key>
<string>(?=^\s*#\s*(else|endif)\b)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>preprocessor-rule-enabled-block</key>
<dict>
<key>begin</key>
<string>^\s*(#(if)\s+(0*1)\b)</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.preprocessor.c</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.control.import.if.c</string>
</dict>
<key>3</key>
<dict>
<key>name</key>
<string>constant.numeric.preprocessor.c</string>
</dict>
</dict>
<key>end</key>
<string>^\s*(#\s*(endif)\b)</string>
<key>patterns</key>
<array>
<dict>
<key>begin</key>
<string>^\s*(#\s*(else)\b).*</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.preprocessor.c</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.control.import.else.c</string>
</dict>
</dict>
<key>contentName</key>
<string>comment.block.preprocessor.else-branch.in-block</string>
<key>end</key>
<string>(?=^\s*#\s*endif\b)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#disabled</string>
</dict>
<dict>
<key>include</key>
<string>#pragma-mark</string>
</dict>
</array>
</dict>
<dict>
<key>begin</key>
<string></string>
<key>end</key>
<string>(?=^\s*#\s*(else|endif)\b)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#block_innards</string>
</dict>
</array>
</dict>
</array>
</dict>
<key>preprocessor-rule-other</key>
<dict>
<key>begin</key>
<string>^\s*(#\s*(if(n?def)?)\b.*?(?:(?=(?://|/\*))|$))</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.preprocessor.c</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.control.import.c</string>
</dict>
</dict>
<key>end</key>
<string>^\s*(#\s*(endif)\b)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>$base</string>
</dict>
</array>
</dict>
<key>preprocessor-rule-other-block</key>
<dict>
<key>begin</key>
<string>^\s*(#\s*(if(n?def)?)\b.*?(?:(?=(?://|/\*))|$))</string>
<key>captures</key>
<dict>
<key>1</key>
<dict>
<key>name</key>
<string>meta.preprocessor.c</string>
</dict>
<key>2</key>
<dict>
<key>name</key>
<string>keyword.control.import.c</string>
</dict>
</dict>
<key>end</key>
<string>^\s*(#\s*(endif)\b)</string>
<key>patterns</key>
<array>
<dict>
<key>include</key>
<string>#block_innards</string>
</dict>
</array>
</dict>
<key>sizeof</key>
<dict>
<key>match</key>
<string>\b(sizeof)\b</string>
<key>name</key>
<string>keyword.operator.sizeof.c</string>
</dict>
<key>string_escaped_char</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>\\(\\|[abefnprtv'"?]|[0-3]\d{0,2}|[4-7]\d?|x[a-fA-F0-9]{0,2}|u[a-fA-F0-9]{0,4}|U[a-fA-F0-9]{0,8})</string>
<key>name</key>
<string>constant.character.escape.c</string>
</dict>
<dict>
<key>match</key>
<string>\\.</string>
<key>name</key>
<string>invalid.illegal.unknown-escape.c</string>
</dict>
</array>
</dict>
<key>string_placeholder</key>
<dict>
<key>patterns</key>
<array>
<dict>
<key>match</key>
<string>(?x)%
(\d+\$)? # field (argument #)
[#0\- +']* # flags
[,;:_]? # separator character (AltiVec)
((-?\d+)|\*(-?\d+\$)?)? # minimum field width
(\.((-?\d+)|\*(-?\d+\$)?)?)? # precision
(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier
[diouxXDOUeEfFgGaACcSspn%] # conversion type
</string>
<key>name</key>
<string>constant.other.placeholder.c</string>
</dict>
<dict>
<key>match</key>
<string>%</string>
<key>name</key>
<string>invalid.illegal.placeholder.c</string>
</dict>
</array>
</dict>
</dict>
<key>scopeName</key>
<string>source.c</string>
<key>uuid</key>
<string>25066DC2-6B1D-11D9-9D5B-000D93589AF6</string>
</dict>
</plist>
Jump to Line
Something went wrong with that request. Please try again.