diff options
Diffstat (limited to 'cpp/vimrc.vim')
-rw-r--r-- | cpp/vimrc.vim | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/cpp/vimrc.vim b/cpp/vimrc.vim index 4f89542e..627bfc8a 100644 --- a/cpp/vimrc.vim +++ b/cpp/vimrc.vim @@ -1,23 +1,29 @@ " Highlighting literate directives in C++ sources. function! HighlightTangledFile() - set ft=cpp + if &ft == "" + set ft=cpp + endif set comments-=:// set comments-=n:// set comments+=n://:,n:// + + set isk+=- + syntax region tangleDirective start=+:(+ skip=+".*"+ end=+)+ highlight link tangleDirective Delimiter syntax region traceContains start="^+" end="$" highlight traceContains ctermfg=darkgreen syntax region traceAbsent start="^-" end="$" highlight traceAbsent ctermfg=darkred + " Our C++ files can have mu code in scenarios, so highlight mu comments like + " regular comments. + syntax match muComment /#.*$/ | highlight link muComment Comment + syntax match muSalientComment /##.*$/ | highlight link muSalientComment SalientComment + " Tangled comments only make sense in the sources and are stripped out of + " the generated .cc file. They're highlighted same as regular comments. + syntax match tangledComment /\/\/:.*/ | highlight link tangledComment Comment + syntax match tangledSalientComment /\/\/::.*/ | highlight link tangledSalientComment SalientComment endfunction call HighlightTangledFile() +autocmd BufRead,BufNewFile *.mu set ft=mu autocmd BufRead,BufNewFile 0* call HighlightTangledFile() - -set isk+=- - -" scenarios inside c++ files -syntax match muComment /#.*$/ | highlight link muComment Comment -syntax keyword muControl reply jump jump-if jump-unless loop loop-if loop-unless break-if break-unless | highlight link muControl Identifier -syntax match muAssign "<-" | highlight link muAssign SpecialChar -syntax match muAssign "\<raw\>" |