From: Jean Privat Date: Fri, 9 May 2014 18:36:06 +0000 (-0400) Subject: vim: try to color annotation. X-Git-Tag: v0.6.6~75^2 X-Git-Url: http://nitlanguage.org vim: try to color annotation. indenting still causes issues :( Signed-off-by: Jean Privat --- diff --git a/misc/vim/indent/nit.vim b/misc/vim/indent/nit.vim index afaa93a..64639c3 100644 --- a/misc/vim/indent/nit.vim +++ b/misc/vim/indent/nit.vim @@ -45,7 +45,7 @@ let s:outdent = '^\s*\(else\|then\|end\)\>' " At 0 let s:no_indent = '^\s*\(class\|import\|special\)\>' -let s:syng_strcom = '\' +let s:syng_strcom = '\' " Check if the character at lnum:col is inside a string, comment, or is ascii. function s:IsInStringOrComment(lnum, col) diff --git a/misc/vim/syntax/nit.vim b/misc/vim/syntax/nit.vim index 76db35d..8b68b53 100644 --- a/misc/vim/syntax/nit.vim +++ b/misc/vim/syntax/nit.vim @@ -56,23 +56,25 @@ syn match NITClosure "!\h\w*" " Fallback highlight keywords syn match NITNull "\<\(null\)\>" -syn match NITControl "\<\(init\|end\|not null\|not\|var\|do\|then\|else\|loop\)\>" +syn match NITControl "\<\(init\|end\|not null\|not\|var\|do\|then\|else\|loop\|is\)\>" syn match NITKeyword "\<\(super\)\>" " Unmatchning error syn match Error "\" " Declarations, definitions and blocks syn region NITModuleDecl matchgroup=NITDefine start="\<\(import\|module\|package\)\>\s*" matchgroup=NONE end="\ze\(\s\|:\|(\|$\)" oneline -syn region NITClassBlock matchgroup=NITDefine start="\<\(class\|enum\|universal\|interface\|extern\)\>" matchgroup=NITDefine end="\" contains=ALL fold +syn region NITClassBlock matchgroup=NITDefine start="\<\(class\|enum\|universal\|interface\|extern\)\>" matchgroup=NITDefine end="\" contains=ALLBUT,NITAnnotLine fold syn region NITFunctionDecl matchgroup=NITDefine start="\\s*" matchgroup=NONE end="\ze\(\\|\s\|:\|(\|$\)" oneline syn region NITTypeDecl matchgroup=NITDefine start="\\s*" matchgroup=NONE end="\ze\(\\|\s\|:\|(\|$\)" oneline contained containedin=NITClassBlock -syn region NITAttrDecl matchgroup=NITDefine start="\\s*\ze_" matchgroup=NONE end="\ze\(\\|\s\|:\|(\|$\)" oneline contained containedin=NITClassBlock +syn region NITAttrDecl matchgroup=NITDefine start="\\s*" matchgroup=NONE end="\ze\(\\|\s\|:\|(\|$\)" oneline contained containedin=NITClassBlock syn region NITInitDecl matchgroup=NITDefine start="\\s*" matchgroup=NONE end="\ze\(\\|\s\|:\|(\|$\)" oneline contained containedin=NITClassBlock syn match NITDefine "\<\(super\)\ze\s\+[A-Z]" contained containedin=NITClassBlock -syn region NITStmtBlock matchgroup=NITControl start="\<\(do\|then\|else\|loop\)\>\ze\s*\(#\|$\)" matchgroup=NITControl end="^\s*\<\(end\|\zeelse\|\ze!\)\>" contains=ALLBUT,NITTypeDecl,NITAttrDecl,NITInitDecl -syn region NITStmtBlock matchgroup=NITControl start="\<\(do\|then\|else\|loop\)\>" matchgroup=NITControl end="\" oneline +syn region NITAnnotBlock matchgroup=NITControl start="\\ze\s*\(#\|$\)" matchgroup=NITControl end="\(\ze\\|\\)" transparent contains=ALL +syn match NITAnnotLine "^\s*\zs\w\+" contained containedin=NITAnnotBlock +syn region NITStmtBlock matchgroup=NITControl start="\<\(do\|then\|else\|loop\)\>\ze\s*\(#\|$\)" matchgroup=NITControl end="^\s*\<\(end\|\zeelse\|\ze!\)\>" contains=ALLBUT,NITTypeDecl,NITAttrDecl,NITInitDecl,NITAnnotLine +syn region NITStmtBlock matchgroup=NITControl start="\<\(do\|then\|else\|loop\)\>" matchgroup=NITControl end="\" oneline if !exists("NIT_minlines") let NIT_minlines = 50 endif @@ -83,7 +85,7 @@ syn match NITSharpBang "\%^#!.*" syn match NITComment "#.*" contains=NITTodo " Keywords -syn keyword NITKeyword is abstract intern new +syn keyword NITKeyword abstract intern new syn keyword NITDefine private public protected intrude readable writable redef syn keyword NITControl if while for assert and or in as isa once break continue return abort syn keyword NITClass nullable @@ -100,6 +102,7 @@ hi def link NITTypeDecl Function hi def link NITAttrDecl Function hi def link NITInitDecl Function hi def link NITControl Statement +hi def link NITAnnotLine Statement hi def link NITLabel PreProc hi def link NITInclude Include hi def link NITNumber Number