mu/vimrc.vim

32 lines
1.5 KiB
VimL
Raw Normal View History

" Highlighting literate directives in C++ sources.
function! HighlightTangledFile()
2015-05-07 19:47:25 +00:00
" 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
set comments-=://
set comments-=n://
set comments+=n://:,n://
2015-05-07 19:47:25 +00:00
" Inside tangle scenarios.
syntax region tangleDirective start=+:(+ skip=+".*"+ end=+)+
highlight link tangleDirective Delimiter
syntax match traceContains /^+.*/
highlight traceContains ctermfg=22
syntax match traceAbsent /^-.*/
highlight traceAbsent ctermfg=darkred
syntax match tangleScenarioSetup /^\s*% .*/ | highlight link tangleScenarioSetup SpecialChar
highlight Special ctermfg=160
endfunction
augroup LocalVimrc
autocmd BufRead,BufNewFile *.cc call HighlightTangledFile()
2019-04-11 18:30:07 +00:00
autocmd BufRead,BufNewFile *.mu set ft=mu
augroup END
" Scenarios considered:
" opening or starting vim with a new or existing file without an extension (should interpret as C++)
" opening or starting vim with a new or existing file with a .mu extension
" starting vim or opening a buffer without a file name (ok to do nothing)
" opening a second file in a new or existing window (shouldn't mess up existing highlighting)
" reloading an existing file (shouldn't mess up existing highlighting)