/
githubmirror
/
carbon-lang
Обзор
Документация
Войти
/
githubmirror
/
carbon-lang
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
trunk
utils/textmate/Syntaxes/carbon.tmLanguage
1 000 строк
23 KB
oli-ej
Update Textmate for types in a list and add `unused` keyword (#7535)
21 июл 2026, 01:37
Не верифицирован
21 июл 2026, 01:37
0553d5f
Код
Авторство
О чём код?
<?xml version="1.0" encoding="UTF-8"?> <!-- Part of the Carbon Language project, under the Apache License v2.0 with LLVM Exceptions. See /LICENSE for license information. SPDX-License-Identifier: Apache-2.0 WITH LLVM-exception --> <!-- THIS FILE IS AUTOGENERATED FROM carbon.tmLanguage.json. DO NOT EDIT. --> <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> <plist version="1.0"> <dict> <key>$schema</key> <string>https://raw.githubusercontent.com/martinring/tmlanguage/master/tmlanguage.json</string> <key>fileTypes</key> <array> <string>carbon</string> </array> <key>foldingStartMarker</key> <string>\{\s*$</string> <key>foldingStopMarker</key> <string>^\s*\}</string> <key>name</key> <string>carbon</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#comments</string> </dict> <dict> <key>include</key> <string>#cpp-inline</string> </dict> <dict> <key>include</key> <string>#strings</string> </dict> <dict> <key>include</key> <string>#types</string> </dict> <dict> <key>include</key> <string>#functions</string> </dict> <dict> <key>include</key> <string>#variables</string> </dict> <dict> <key>include</key> <string>#operators</string> </dict> <dict> <key>include</key> <string>#special-keywords</string> </dict> <dict> <key>include</key> <string>#introducer-keywords</string> </dict> <dict> <key>include</key> <string>#modifier-keywords</string> </dict> <dict> <key>include</key> <string>#misc-keywords</string> </dict> <dict> <key>include</key> <string>#self-keywords</string> </dict> <dict> <key>include</key> <string>#underscore</string> </dict> <dict> <key>include</key> <string>#true-false</string> </dict> <dict> <key>include</key> <string>#type-literals</string> </dict> <dict> <key>include</key> <string>#numbers</string> </dict> <dict> <key>include</key> <string>#parameter-bindings</string> </dict> <dict> <key>include</key> <string>#customs</string> </dict> </array> <key>repository</key> <dict> <key>comments</key> <dict> <key>patterns</key> <array> <dict> <key>match</key> <string>^\s*(?=//\s).*$</string> <key>name</key> <string>comment.line.carbon</string> </dict> <dict> <key>match</key> <string>^\s*//@dump-sem-ir-(begin|end)\s*$</string> <key>name</key> <string>comment.line.carbon</string> </dict> <dict> <key>match</key> <string>^\s*//@include-in-dumps\s*$</string> <key>name</key> <string>comment.line.carbon</string> </dict> </array> </dict> <key>common</key> <dict> <key>comments</key> <array> <string>For including comments, operators, keywords, literals, and language constants </string> <string>in other rules that use begin/end. This way we do not accidentally override their </string> <string>highlighting in complex rules.</string> </array> <key>patterns</key> <array> <dict> <key>include</key> <string>#comments</string> </dict> <dict> <key>include</key> <string>#strings</string> </dict> <dict> <key>include</key> <string>#operators</string> </dict> <dict> <key>include</key> <string>#special-keywords</string> </dict> <dict> <key>include</key> <string>#introducer-keywords</string> </dict> <dict> <key>include</key> <string>#modifier-keywords</string> </dict> <dict> <key>include</key> <string>#misc-keywords</string> </dict> <dict> <key>include</key> <string>#self-keywords</string> </dict> <dict> <key>include</key> <string>#true-false</string> </dict> <dict> <key>include</key> <string>#type-literals</string> </dict> <dict> <key>include</key> <string>#numbers</string> </dict> </array> </dict> <key>cpp-inline</key> <dict> <key>patterns</key> <array> <dict> <key>begin</key> <string>\b(import)\b\s+\b(Cpp)\b\s+\b(inline)\b\s*(''')([^\s'#]*\n)?</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.type.carbon</string> </dict> <key>2</key> <dict> <key>name</key> <string>support.type.property-name.carbon</string> </dict> <key>3</key> <dict> <key>name</key> <string>storage.type.carbon</string> </dict> <key>4</key> <dict> <key>name</key> <string>string.quoted.triple.carbon</string> </dict> <key>5</key> <dict> <key>name</key> <string>constant.character.escape.carbon</string> </dict> </dict> <key>comment</key> <string>C++ inline import (triple-quoted)</string> <key>contentName</key> <string>meta.embedded.block.cpp</string> <key>end</key> <string>(''')\s*(;)</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>string.quoted.triple.carbon</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.terminator.carbon</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>source.cpp</string> </dict> </array> </dict> <dict> <key>begin</key> <string>\b(import)\b\s+\b(Cpp)\b\s+\b(inline)\b\s*(")</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.type.carbon</string> </dict> <key>2</key> <dict> <key>name</key> <string>support.type.property-name.carbon</string> </dict> <key>3</key> <dict> <key>name</key> <string>storage.type.carbon</string> </dict> <key>4</key> <dict> <key>name</key> <string>string.quoted.double.carbon</string> </dict> </dict> <key>comment</key> <string>C++ inline import (double-quoted)</string> <key>contentName</key> <string>meta.embedded.inline.cpp</string> <key>end</key> <string>(")\s*(;)</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>string.quoted.double.carbon</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.terminator.carbon</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>source.cpp</string> </dict> </array> </dict> <dict> <key>begin</key> <string>\b(inline)\b\s+\b(Cpp)\b\s*(''')([^\s'#]*\n)?</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.type.carbon</string> </dict> <key>2</key> <dict> <key>name</key> <string>support.type.property-name.carbon</string> </dict> <key>3</key> <dict> <key>name</key> <string>string.quoted.triple.carbon</string> </dict> <key>4</key> <dict> <key>name</key> <string>constant.character.escape.carbon</string> </dict> </dict> <key>comment</key> <string>C++ inline block (triple-quoted)</string> <key>contentName</key> <string>meta.embedded.block.cpp</string> <key>end</key> <string>(''')\s*(;)</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>string.quoted.triple.carbon</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.terminator.carbon</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>source.cpp</string> </dict> </array> </dict> <dict> <key>begin</key> <string>\b(inline)\b\s+\b(Cpp)\b\s*(")</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>storage.type.carbon</string> </dict> <key>2</key> <dict> <key>name</key> <string>support.type.property-name.carbon</string> </dict> <key>3</key> <dict> <key>name</key> <string>string.quoted.double.carbon</string> </dict> </dict> <key>comment</key> <string>C++ inline block (double-quoted)</string> <key>contentName</key> <string>meta.embedded.inline.cpp</string> <key>end</key> <string>(")\s*(;)</string> <key>endCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>string.quoted.double.carbon</string> </dict> <key>2</key> <dict> <key>name</key> <string>punctuation.terminator.carbon</string> </dict> </dict> <key>patterns</key> <array> <dict> <key>include</key> <string>source.cpp</string> </dict> </array> </dict> </array> </dict> <key>customs</key> <dict> <key>comment</key> <string>For rules that should be checked last.</string> <key>patterns</key> <array> <dict> <key>match</key> <string>(?<=\bpackage\s)\w+</string> <key>name</key> <string>support.class.carbon</string> </dict> <dict> <key>match</key> <string>(?<=\bCore\s)\w+</string> <key>name</key> <string>support.class.carbon</string> </dict> <dict> <key>match</key> <string>(?<=\bimport\s)\w+</string> <key>name</key> <string>support.type.property-name.carbon</string> </dict> <dict> <key>comment</key> <string>Matches function calls.</string> <key>match</key> <string>\b\w+\s*\(</string> <key>name</key> <string>support.function.carbon</string> </dict> <dict> <key>comment</key> <string>Matches unidentified words as variables.</string> <key>match</key> <string>\b\w+\b</string> <key>name</key> <string>support.variable.carbon</string> </dict> </array> </dict> <key>functions</key> <dict> <key>name</key> <string>meta.function.carbon</string> <key>patterns</key> <array> <dict> <key>begin</key> <string>\bfn\b</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>storage.type.carbon</string> </dict> </dict> <key>comment</key> <string>Matches function declarations.</string> <key>end</key> <string>(?=[\[\(])</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#common</string> </dict> <dict> <key>match</key> <string>\w+</string> <key>name</key> <string>support.function.carbon</string> </dict> </array> </dict> </array> </dict> <key>introducer-keywords</key> <dict> <key>patterns</key> <array> <dict> <key>match</key> <string>\b(adapt|alias|choice|class|constraint|fn|import|inline|interface|let|library|namespace|var)\b</string> <key>name</key> <string>storage.type.carbon</string> </dict> <dict> <key>match</key> <string>\b(base)\b(?!\s*class\b)</string> <key>name</key> <string>storage.type.carbon</string> </dict> <dict> <key>match</key> <string>\b(export)\b(?!\s*import\b)</string> <key>name</key> <string>storage.type.carbon</string> </dict> <dict> <key>match</key> <string>\b(impl)\b(?!\s*(fn|library|package)\b)</string> <key>name</key> <string>storage.type.carbon</string> </dict> <dict> <key>match</key> <string>\b(package)\b(?!\.)</string> <key>name</key> <string>storage.type.carbon</string> </dict> </array> </dict> <key>misc-keywords</key> <dict> <key>patterns</key> <array> <dict> <key>match</key> <string>\b(auto|destructor|forall|friend|observe|override|require)\b</string> <key>name</key> <string>keyword.other.carbon</string> </dict> <dict> <key>match</key> <string>(?<=\.)\b(base)\b</string> <key>name</key> <string>keyword.other.carbon</string> </dict> </array> </dict> <key>modifier-keywords</key> <dict> <key>patterns</key> <array> <dict> <key>match</key> <string>\b(abstract|const|extend|extern|final|private|protected|static|virtual)\b</string> <key>name</key> <string>storage.modifier.carbon</string> </dict> <dict> <key>match</key> <string>\b(base)\b(?=\s*class\b)</string> <key>name</key> <string>storage.modifier.carbon</string> </dict> <dict> <key>match</key> <string>\b(default)\b(?!\s*=>)</string> <key>name</key> <string>storage.modifier.carbon</string> </dict> <dict> <key>match</key> <string>\b(export)\b(?=\s*import\b)</string> <key>name</key> <string>storage.modifier.carbon</string> </dict> <dict> <key>match</key> <string>\b(impl)\b(?=\s*(fn|library|package)\b)</string> <key>name</key> <string>storage.modifier.carbon</string> </dict> </array> </dict> <key>numbers</key> <dict> <key>comment</key> <string>Invalid formats are also highlighted. Language server handles error highlighting</string> <key>patterns</key> <array> <dict> <key>match</key> <string>0x[_0-9a-fA-F]*(\.[_0-9a-fA-F]+(p[-+]?[0-9]+)?)?</string> <key>name</key> <string>constant.numeric.carbon</string> </dict> <dict> <key>match</key> <string>0b[_01]*</string> <key>name</key> <string>constant.numeric.carbon</string> </dict> <dict> <key>match</key> <string>[0-9][_0-9]*(\.[_0-9]+(e[-+]?[0-9]+)?)?</string> <key>name</key> <string>constant.numeric.carbon</string> </dict> </array> </dict> <key>operators</key> <dict> <key>patterns</key> <array> <dict> <key>match</key> <string>\b(>>=|<=>|<<=|\&=|==|!=|>=|>>|<=|<<|-=|->|--|%=|\|=|\+=|\+\+|/=|\*=|\&|\^|=|>|<|-|%|\.|\||\+|/|\*)\b</string> <key>name</key> <string>keyword.operator.carbon</string> </dict> <dict> <key>match</key> <string>\b(and|as|generic|impls|in|like|not|or|partial|ref|runtime|template|unused|where)\b</string> <key>name</key> <string>keyword.control.carbon</string> </dict> </array> </dict> <key>parameter-bindings</key> <dict> <key>patterns</key> <array> <dict> <key>captures</key> <dict> <key>1</key> <dict> <key>name</key> <string>support.variable.carbon</string> </dict> </dict> <key>comment</key> <string>Matches parameter bindings.</string> <key>match</key> <string>\b(\w+)\s*(?=:)</string> </dict> </array> </dict> <key>self-keywords</key> <dict> <key>patterns</key> <array> <dict> <key>match</key> <string>\b(self|Self)\b</string> <key>name</key> <string>variable.language.carbon</string> </dict> </array> </dict> <key>special-keywords</key> <dict> <key>patterns</key> <array> <dict> <key>match</key> <string>\b(break|case|continue|else|if|for|match|return|returned|then|while)\b</string> <key>name</key> <string>keyword.control.carbon</string> </dict> <dict> <key>match</key> <string>\b(default)\b(?=\s*=>)</string> <key>name</key> <string>keyword.control.carbon</string> </dict> </array> </dict> <key>string_escapes</key> <dict> <key>patterns</key> <array> <dict> <key>match</key> <string>\\([tnr'"0\0]|x[0-9A-F]{2}|u\{[0-9A-F]{4,}\})</string> <key>name</key> <string>constant.character.escape.carbon</string> </dict> </array> </dict> <key>strings</key> <dict> <key>patterns</key> <array> <dict> <key>begin</key> <string>'''([^\s'#]*\n)?</string> <key>beginCaptures</key> <dict> <key>1</key> <dict> <key>name</key> <string>constant.character.escape.carbon</string> </dict> </dict> <key>end</key> <string>'''</string> <key>name</key> <string>string.quoted.triple.carbon</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#string_escapes</string> </dict> </array> </dict> <dict> <key>begin</key> <string>"</string> <key>end</key> <string>"</string> <key>name</key> <string>string.quoted.double.carbon</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#string_escapes</string> </dict> </array> </dict> </array> </dict> <key>true-false</key> <dict> <key>patterns</key> <array> <dict> <key>match</key> <string>\b(true|false)\b</string> <key>name</key> <string>constant.language.carbon</string> </dict> </array> </dict> <key>type-literals</key> <dict> <key>patterns</key> <array> <dict> <key>match</key> <string>\b(array|bool|char|str|type)\b</string> <key>name</key> <string>constant.language.carbon</string> </dict> <dict> <key>comment</key> <string>Match common numeric type literals. Language server should highlight other valid literals.</string> <key>match</key> <string>\b[iuf](8|16|32|64|128)\b</string> <key>name</key> <string>constant.language.carbon</string> </dict> </array> </dict> <key>types</key> <dict> <key>name</key> <string>meta.type.carbon</string> <key>patterns</key> <array> <dict> <key>begin</key> <string>\b((adapt|alias|class|constraint|interface|impl)|(as|impls))\b</string> <key>beginCaptures</key> <dict> <key>2</key> <dict> <key>name</key> <string>storage.type.carbon</string> </dict> <key>3</key> <dict> <key>name</key> <string>keyword.control.carbon</string> </dict> </dict> <key>comment</key> <string>Matches type, constraint, and implementation declarations, and explicit casts.</string> <key>end</key> <string>(?=[;{])</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#common</string> </dict> <dict> <key>include</key> <string>#parameter-bindings</string> </dict> <dict> <key>match</key> <string>\w+</string> <key>name</key> <string>support.type.carbon</string> </dict> </array> </dict> <dict> <key>begin</key> <string>:</string> <key>comment</key> <string>Matches types in bindings.</string> <key>end</key> <string>(?=([;{=,]|->|in|where))</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#common</string> </dict> <dict> <key>include</key> <string>#variables</string> </dict> <dict> <key>include</key> <string>#parameter-bindings</string> </dict> <dict> <key>match</key> <string>\w+</string> <key>name</key> <string>support.type.carbon</string> </dict> </array> </dict> <dict> <key>begin</key> <string>-></string> <key>comment</key> <string>Matches function return types.</string> <key>end</key> <string>(?=([;{]|=>))</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#common</string> </dict> <dict> <key>match</key> <string>\w+</string> <key>name</key> <string>support.type.carbon</string> </dict> </array> </dict> <dict> <key>begin</key> <string>\bwhere\b</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>keyword.control.carbon</string> </dict> </dict> <key>comment</key> <string>Matches types in where clause.</string> <key>end</key> <string>(?=[;{])</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#common</string> </dict> <dict> <key>include</key> <string>#variables</string> </dict> <dict> <key>include</key> <string>#parameter-bindings</string> </dict> <dict> <key>match</key> <string>\w+</string> <key>name</key> <string>support.type.carbon</string> </dict> </array> </dict> <dict> <key>begin</key> <string>\bchoice\b</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>storage.type.carbon</string> </dict> </dict> <key>comment</key> <string>Matches choices.</string> <key>end</key> <string>(?=[;}])</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#common</string> </dict> <dict> <key>include</key> <string>#variables</string> </dict> <dict> <key>include</key> <string>#parameter-bindings</string> </dict> <dict> <key>match</key> <string>\w+</string> <key>name</key> <string>support.type.carbon</string> </dict> <dict> <key>begin</key> <string>\{</string> <key>comment</key> <string>Matches the choice values.</string> <key>end</key> <string>(?=})</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#common</string> </dict> <dict> <key>match</key> <string>\w+</string> <key>name</key> <string>variable.other.enummember.carbon</string> </dict> </array> </dict> </array> </dict> </array> </dict> <key>underscore</key> <dict> <key>patterns</key> <array> <dict> <key>match</key> <string>\b(_)\b</string> <key>name</key> <string>variable.language.carbon</string> </dict> </array> </dict> <key>variables</key> <dict> <key>name</key> <string>meta.variable.carbon</string> <key>patterns</key> <array> <dict> <key>begin</key> <string>\b(var|let)\b</string> <key>beginCaptures</key> <dict> <key>0</key> <dict> <key>name</key> <string>storage.type.carbon</string> </dict> </dict> <key>comment</key> <string>Matches variable declarations.</string> <key>end</key> <string>(?=:)</string> <key>patterns</key> <array> <dict> <key>include</key> <string>#common</string> </dict> <dict> <key>match</key> <string>\w+</string> <key>name</key> <string>support.variable.carbon</string> </dict> </array> </dict> </array> </dict> </dict> <key>scopeName</key> <string>source.carbon</string> <key>uuid</key> <string>4568a54d-9a79-41ac-a36b-05916252763b</string> </dict> </plist>