mirror of
https://github.com/microsoft/vscode.git
synced 2025-12-25 20:57:12 +00:00
1184 lines
27 KiB
Plaintext
1184 lines
27 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>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 | (?<inc>') | \b )
|
|
| ( [0-9]+ ( ' [0-9]+ )* )?
|
|
(?i:
|
|
\. ( [0-9]+ ( ' [0-9]+ )* ) E(\+|-)? ( [0-9]+ ( ' [0-9]+ )* )
|
|
| \. ( [0-9]+ ( ' [0-9]+ )* )
|
|
| E(\+|-)? ( [0-9]+ ( ' [0-9]+ )* )
|
|
)
|
|
( (?<inc>') | \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
|
|
((?<id>[a-zA-Z_][a-zA-Z0-9_]*)) # macro name
|
|
(?: # and optionally:
|
|
(\() # an open parenthesis
|
|
(
|
|
\s* \g<id> \s* # first argument
|
|
((,) \s* \g<id> \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>(?>\\\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>(?>\\\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>(?>\\\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><</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.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>(?>\\\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 ) (?<!else|new|return) (?<=\w) # or word + space before name
|
|
| (?= \s*[A-Za-z_] ) (?<!&&) (?<=[*&>]) # 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
|
|
(?: (?<=operator) (?: [-*&<>=+!]+ | \(\) | \[\] ) ) # 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>(?<=\})|(?=#)|(;)</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>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 ) (?<!else|new|return) (?<=\w)\s+ # or word + space before name
|
|
)
|
|
)
|
|
(
|
|
(?: [A-Za-z_][A-Za-z0-9_]*+ | :: )++ | # actual name
|
|
(?: (?<=operator) (?: [-*&<>=+!]+ | \(\) | \[\] ) )? # 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 ) (?:(?<=else|new|return) | (?<!\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>(?>\\\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>
|