diff --git a/after/syntax/llvm.vim b/after/syntax/llvm.vim new file mode 100644 index 0000000..0cf46d1 --- /dev/null +++ b/after/syntax/llvm.vim @@ -0,0 +1,29 @@ +" Highlight: %"constant string" +" ^----------------^ +syntax region llvmIdentifier start=+%"+ end=+"+ oneline + +" Highlight: { ... } +" ^ ^ +syntax region llvmScope matchgroup=llvmDelimiter start="{" end="}" transparent + +" Highlight: ( ... ) +" ^ ^ +syntax region llvmScope matchgroup=llvmDelimiter start="(" end=")" transparent + +" Highlight: < ... x ... > +" ^ ^ ^ +syntax match llvmVectorDelimiter " \zsx\ze " contained +syntax region llvmScope matchgroup=llvmDelimiter start="<" end=">" transparent oneline contains=llvmDelimiter,llvmVectorDelimiter,llvmType,llvmNumber,llvmFloat,llvmBoolean,llvmConstant + +syntax match llvmDelimiter "," + +" Named metadata and specialized metadata keywords. +syn match llvmMetadata /![-a-zA-Z$._][-a-zA-Z$._0-9]*\ze\s*$/ +syn match llvmMetadata /![-a-zA-Z$._][-a-zA-Z$._0-9]*\ze\s*[=!]/ +" syn match llvmType /!\zs\a\+\ze\s*(/ +syn match llvmMetadata /!\(\d\+\>\|\ze{\|\ze\".*"\)/ + +" Define extended highlight groups +highlight default link llvmDelimiter Delimiter +highlight default link llvmVectorDelimiter llvmDelimiter +highlight default link llvmMetadata Include