mirror of
https://github.com/carbon-language/carbon-lang.git
synced 2026-09-24 20:10:13 +01:00
This follows #7016 which suggests using `static var` for non-instance class data members. Assisted-by: Antigravity with Gemini
115 lines
4.9 KiB
VimL
115 lines
4.9 KiB
VimL
" 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
|
|
|
|
if exists("b:current_syntax")
|
|
finish
|
|
endif
|
|
|
|
syn match carbonIdentifier '[a-zA-Z0-9_]\+' contained
|
|
syn match carbonNominalType '[a-zA-Z0-9_]\+' contained
|
|
syn match carbonComment "//.*$" contains=carbonTodo,carbonPreprocess
|
|
syn keyword carbonTodo TODO contained
|
|
syn keyword carbonPreprocess RUN AUTOUPDATE CHECK contained
|
|
|
|
" carbon primitive types and literals
|
|
syn keyword carbonBooleanType bool
|
|
syn match carbonIntType 'i\d\+'
|
|
syn match carbonUnsignedIntType 'u\d\+'
|
|
syn match carbonFloatType 'f\d\+'
|
|
syn keyword carbonStringType String
|
|
syn keyword carbonBoolean true false
|
|
syn match carbonNumber '\<[0-9][_0-9]*\(\.[_0-9]\+\(e[-+]\?[1-9][0-9]*\)\?\)\?\>'
|
|
syn match carbonHexLiteral '\<0x[_0-9A-F]\+\(\.[_0-9A-F]\+\(p[+-]\?[1-9][0-9]*\)\?\)\?\>'
|
|
syn match carbonBinLiteral '\<0b[_01]\+\>'
|
|
syn region carbonStringLiteral start=+"+ end=+"+ skip=+\\"+
|
|
syn region carbonBlockStringLiteral start=+"""+ end=+"""+ skip=+\\"""+
|
|
|
|
" carbon declaration introducers
|
|
syn keyword carbonNamespaceDeclaration namespace
|
|
syn keyword carbonVariableDeclaration var nextgroup=carbonIdentifier skipwhite
|
|
syn keyword carbonVariableDeclarationMod returned
|
|
syn keyword carbonConstantDeclaration let nextgroup=carbonIdentifier skipwhite
|
|
syn keyword carbonFunctionDeclaration fn
|
|
syn keyword carbonClassDeclaration class nextgroup=carbonNominalType skipwhite
|
|
syn keyword carbonClassDeclarationMod base abstract final
|
|
syn keyword carbonClassMethodDeclaration fn destructor
|
|
syn keyword carbonClassMethodDeclarationMod private virtual abstract protected impl
|
|
syn keyword carbonAliasDeclaration alias nextgroup=carbonNominalType skipwhite
|
|
syn keyword carbonInterfaceDeclaration interface nextgroup=carbonNominalType skipwhite
|
|
syn keyword carbonChoiceDeclaration choice nextgroup=carbonNominalType skipwhite
|
|
syn keyword carbonPackageDeclaration package nextgroup=carbonIdentifier skipwhite
|
|
syn keyword carbonLibraryDeclaration library nextgroup=carbonStringLiteral skipwhite
|
|
|
|
" carbon control flow
|
|
syn keyword carbonConditional if then else
|
|
syn keyword carbonLoop while for in
|
|
syn keyword carbonSwitch match case default
|
|
syn keyword carbonControlFlowStatement break continue return
|
|
|
|
" carbon operators
|
|
syn keyword carbonLogicalOperator and or not
|
|
|
|
" handle any other keywords
|
|
syn keyword carbonKeywordExtends extends nextgroup=carbonNominalType skipwhite
|
|
syn keyword carbonKeywordSelf Self
|
|
syn keyword carbonKeywordAs as
|
|
syn keyword carbonKeywordTemplate template
|
|
syn keyword carbonKeywordStatic static
|
|
syn keyword carbonKeywordExternal external
|
|
syn keyword carbonKeywordForAll forall
|
|
syn keyword carbonKeywordAPI api
|
|
syn keyword carbonKeywordImport import nextgroup=carbonIdentifier skipwhite
|
|
|
|
hi def link carbonIdentifier Identifier
|
|
hi def link carbonNominalType Type
|
|
hi def link carbonComment Comment
|
|
hi def link carbonTodo Todo
|
|
hi def link carbonPreprocess PreProc
|
|
hi def link carbonBooleanType carbonType
|
|
hi def link carbonIntType carbonType
|
|
hi def link carbonUnsignedIntType carbonType
|
|
hi def link carbonFloatType carbonType
|
|
hi def link carbonStringType carbonType
|
|
hi def link carbonType Type
|
|
hi def link carbonBoolean Boolean
|
|
hi def link carbonHexLiteral carbonNumber
|
|
hi def link carbonBinLiteral carbonNumber
|
|
hi def link carbonNumber Number
|
|
hi def link carbonStringLiteral carbonString
|
|
hi def link carbonBlockStringLiteral carbonString
|
|
hi def link carbonString String
|
|
hi def link carbonNamespaceDeclaration carbonDeclaration
|
|
hi def link carbonVariableDeclaration carbonDeclaration
|
|
hi def link carbonVariableDeclarationMod carbonDeclaration
|
|
hi def link carbonConstantDeclaration carbonDeclaration
|
|
hi def link carbonFunctionDeclaration carbonDeclaration
|
|
hi def link carbonClassDeclaration carbonDeclaration
|
|
hi def link carbonClassDeclarationMod carbonDeclaration
|
|
hi def link carbonClassMethodDeclaration carbonDeclaration
|
|
hi def link carbonClassMethodDeclarationMod carbonDeclaration
|
|
hi def link carbonAliasDeclaration carbonDeclaration
|
|
hi def link carbonInterfaceDeclaration carbonDeclaration
|
|
hi def link carbonChoiceDeclaration carbonDeclaration
|
|
hi def link carbonPackageDeclaration Include
|
|
hi def link carbonLibraryDeclaration Include
|
|
hi def link carbonDeclaration Structure
|
|
hi def link carbonKeywordExtends carbonKeyword
|
|
hi def link carbonKeywordSelf carbonKeyword
|
|
hi def link carbonKeywordAs carbonKeyword
|
|
hi def link carbonKeywordTemplate carbonKeyword
|
|
hi def link carbonKeywordStatic carbonKeyword
|
|
hi def link carbonKeywordExternal carbonKeyword
|
|
hi def link carbonKeywordForAll carbonKeyword
|
|
hi def link carbonKeywordAPI Structure
|
|
hi def link carbonKeywordImport Include
|
|
hi def link carbonKeyword Keyword
|
|
hi def link carbonConditional Conditional
|
|
hi def link carbonLoop Repeat
|
|
hi def link carbonSwitch Repeat
|
|
hi def link carbonControlFlowStatement Statement
|
|
hi def link carbonLogicalOperator carbonOperator
|
|
hi def link carbonOperator Operator
|
|
|
|
let b:current_syntax = "carbon"
|