vim: add kebab-case identifier support
This commit is contained in:
@@ -4,9 +4,30 @@ endif
|
||||
|
||||
let s:save_cpo = &cpoptions
|
||||
set cpoptions&vim
|
||||
"setlocal iskeyword+=:
|
||||
setlocal iskeyword+=-
|
||||
|
||||
syn match ivyType /\<[A-Z]\{1,2\}\([a-z0-9]\+[A-Z]\{0,2\}\)*\>/
|
||||
syn match ivyType /\<[A-Z]\{1,2}[a-z0-9]\+\(-\?[A-Z]\{1,2}[a-z0-9]\+\)*\>/
|
||||
|
||||
syn match ivySelectorLabel /\<[a-z][A-Za-z0-9-_]*\:/
|
||||
"syn match ivySelectorLabel /\<\([a-z]\([A-Za-z0-9_]\+\)\:\(\:\)\@!\)\+/
|
||||
syn match ivyUnnamedVariable /\<_\>/
|
||||
|
||||
syn match ivyAtomName /\$[a-z][a-z0-9_:/-]*\>/
|
||||
syn match ivyWord /\<[a-z_][a-zA-Z0-9_]*\(-\?[a-zA-Z][a-zA-Z0-9_]*\)*\>\(\:\)\@!/
|
||||
|
||||
syn match ivyComplexMessageName /\<\zs[A-Za-z][A-Za-z0-9-_]\+\ze(/
|
||||
"syn match ivyUnaryMessageName /-\s*[a-zA-z][a-zA-Z0-9_]\+\s*\n/
|
||||
syn match ivyUnaryMessageName /\(-\s*\)\@<=[a-z][A-Za-z0-9-_]*\(\s*\n\)\@=/
|
||||
syn match ivyUnaryMessageName /\(-\s*\)\@<=[a-z][A-Za-z0-9-_]*\(\s*|\)\@=/
|
||||
syn match ivyUnaryMessageName /\(+\s*\)\@<=[a-z][A-Za-z0-9-_]*\(\s*\n\)\@=/
|
||||
syn match ivyUnaryMessageName /\(+\s*\)\@<=[a-z][A-Za-z0-9-_]*\(\s*|\)\@=/
|
||||
syn match ivyPropertyName /\(->\s*\)\@<=[a-z][A-Za-z0-9-_]*/
|
||||
|
||||
syn match ivyLineContinuation /\\\n/
|
||||
|
||||
" Modifiers
|
||||
|
||||
syn match ivySelfVar /\<self\([^a-zA-Z0-9-_]\)\@=/
|
||||
|
||||
" we have to use syn match for keywords because any keyword can be used as a
|
||||
" label by adding : to the end, and adding : to iskeyword causes more problems
|
||||
@@ -18,27 +39,6 @@ syn match ivyException /\(try\|catch\|finally\|throw\)\>\(\:\)\@!/
|
||||
syn match ivyBuiltinVar /\(error\|cout\|cin\|cerr\)\>\(\:\)\@!/
|
||||
syn match ivyUnspecifiedStatement /\(var\|end\|package\|use\|as\|then\|in\|do\|get\|set\)\>\(\:\)\@!/
|
||||
|
||||
syn match ivySelectorLabel /\<[a-z][A-Za-z0-9_]*\:/
|
||||
"syn match ivySelectorLabel /\<\([a-z]\([A-Za-z0-9_]\+\)\:\(\:\)\@!\)\+/
|
||||
syn match ivyUnnamedVariable /\<_\>/
|
||||
|
||||
syn match ivyAtomName /\$[a-z][a-z0-9_:/]*\>/
|
||||
|
||||
syn match ivyComplexMessageName /\<\zs[A-Za-z][A-Za-z0-9]\+\ze(/
|
||||
"syn match ivyUnaryMessageName /-\s*[a-zA-z][a-zA-Z0-9_]\+\s*\n/
|
||||
syn match ivyUnaryMessageName /\(-\s*\)\@<=[a-z][A-Za-z0-9_]*\(\s*\n\)\@=/
|
||||
syn match ivyUnaryMessageName /\(-\s*\)\@<=[a-z][A-Za-z0-9_]*\(\s*|\)\@=/
|
||||
syn match ivyUnaryMessageName /\(+\s*\)\@<=[a-z][A-Za-z0-9_]*\(\s*\n\)\@=/
|
||||
syn match ivyUnaryMessageName /\(+\s*\)\@<=[a-z][A-Za-z0-9_]*\(\s*|\)\@=/
|
||||
syn match ivyPropertyName /\(->\s*\)\@<=[a-z][A-Za-z0-9_]*/
|
||||
|
||||
syn match ivyLineContinuation /\\\n/
|
||||
|
||||
" Modifiers
|
||||
|
||||
syn match ivySelfVar /\<self\([^a-zA-Z0-9_]\)\@=/
|
||||
|
||||
|
||||
syn match ivyPackageStmtIdentifier /\(package \)\@<=\([A-Za-z_][A-Za-z0-9_]*\)\(.\([A-Za-z_][A-Za-z0-9_]*\)\)*\(\n\)\@=\>/
|
||||
syn match ivyUseStmtIdentifier /\(use \)\@<=\([A-Za-z_][A-Za-z0-9_]*\)\(.\([A-Za-z_][A-Za-z0-9_]*\)\)*\(\n\)\@=\>/
|
||||
|
||||
@@ -94,6 +94,7 @@ syn match ivyCharacter "'[^\\]'" display
|
||||
syn case ignore
|
||||
syn match ivyInteger "\<0b[01_]*[01]\%([lu]\|lu\|ul\)\=\>" display
|
||||
syn match ivyInteger "\<\d\+\%(_\+\d\+\)*\%([lu]\|lu\|ul\)\=\>" display
|
||||
syn match ivyInteger "\<-\d\+\%(_\+\d\+\)*\%([lu]\|lu\|ul\)\=\>" display
|
||||
syn match ivyInteger "\<0x[[:xdigit:]_]*\x\%([lu]\|lu\|ul\)\=\>" display
|
||||
syn match ivyReal "\<\d\+\%(_\+\d\+\)*\.\d\+\%(_\+\d\+\)*\%\(e[-+]\=\d\+\%(_\+\d\+\)*\)\=[fdm]\=" display
|
||||
syn match ivyReal "\.\d\+\%(_\+\d\+\)*\%(e[-+]\=\d\+\%(_\+\d\+\)*\)\=[fdm]\=\>" display
|
||||
@@ -197,6 +198,7 @@ hi def link ivyCharacter Character
|
||||
hi def link ivySpecialChar SpecialChar
|
||||
hi def link ivyInteger Number
|
||||
hi def link ivyReal Float
|
||||
hi def link ivyWord Identifier
|
||||
hi def link ivyUnicodeNumber SpecialChar
|
||||
hi def link ivyUnicodeSpecifier SpecialChar
|
||||
hi def link ivyInterpolationDelimiter Delimiter
|
||||
|
||||
Reference in New Issue
Block a user