Extend syntax/llvm.vim for better highlighting

This commit is contained in:
Kenneth Benzie 2018-12-13 16:19:46 +00:00
parent e3886d08f8
commit 8a10516961

29
after/syntax/llvm.vim Normal file
View File

@ -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