vim: add kebab-case identifier support
This commit is contained in:
@@ -4,9 +4,30 @@ endif
|
|||||||
|
|
||||||
let s:save_cpo = &cpoptions
|
let s:save_cpo = &cpoptions
|
||||||
set cpoptions&vim
|
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
|
" 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
|
" 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 ivyBuiltinVar /\(error\|cout\|cin\|cerr\)\>\(\:\)\@!/
|
||||||
syn match ivyUnspecifiedStatement /\(var\|end\|package\|use\|as\|then\|in\|do\|get\|set\)\>\(\:\)\@!/
|
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 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\)\@=\>/
|
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 case ignore
|
||||||
syn match ivyInteger "\<0b[01_]*[01]\%([lu]\|lu\|ul\)\=\>" display
|
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 "\<-\d\+\%(_\+\d\+\)*\%([lu]\|lu\|ul\)\=\>" display
|
||||||
syn match ivyInteger "\<0x[[:xdigit:]_]*\x\%([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\+\)*\.\d\+\%(_\+\d\+\)*\%\(e[-+]\=\d\+\%(_\+\d\+\)*\)\=[fdm]\=" display
|
||||||
syn match ivyReal "\.\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 ivySpecialChar SpecialChar
|
||||||
hi def link ivyInteger Number
|
hi def link ivyInteger Number
|
||||||
hi def link ivyReal Float
|
hi def link ivyReal Float
|
||||||
|
hi def link ivyWord Identifier
|
||||||
hi def link ivyUnicodeNumber SpecialChar
|
hi def link ivyUnicodeNumber SpecialChar
|
||||||
hi def link ivyUnicodeSpecifier SpecialChar
|
hi def link ivyUnicodeSpecifier SpecialChar
|
||||||
hi def link ivyInterpolationDelimiter Delimiter
|
hi def link ivyInterpolationDelimiter Delimiter
|
||||||
|
|||||||
Reference in New Issue
Block a user