about summary refs log tree commit diff stats
path: root/screen.mu
Commit message (Expand)AuthorAgeFilesLines
* 3380Kartik K. Agaram2016-09-171-1/+1
* 3379Kartik K. Agaram2016-09-171-4/+4
* 3189Kartik K. Agaram2016-08-141-2/+1
* 2735 - define recipes using 'def'Kartik K. Agaram2016-03-081-1/+1
* 2576 - distinguish allocated addresses from othersKartik K. Agaram2016-01-191-1/+2
* 2548 - teach 'print' to print integersKartik K. Agaram2015-12-281-1/+2
* 2468 - overload print-character as just 'print'Kartik K. Agaram2015-11-211-2/+2
* 1868 - start using naked literals everywhereKartik K. Agaram2015-07-281-18/+18
* 1618Kartik K. Agaram2015-06-211-2/+2
* 1617Kartik K. Agaram2015-06-211-7/+7
* 1476 - fake screens support colorKartik K. Agaram2015-05-261-1/+1
* 1363 - rename 'integer' to 'number'Kartik K. Agaram2015-05-131-1/+1
* 1345Kartik K. Agaram2015-05-111-1/+5
* 1276 - make C++ version the defaultKartik K. Agaram2015-05-051-0/+23
k/mu/commit/vimrc.vim?h=hlt&id=b3cdcdd44f6b8db053e4814351fbf04fefb7d7cf'>b3cdcdd4 ^
b96af395 ^









1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38

                                                  



                                                                                                     


                          
 
                            






                                                                                              
 




                                                                                        

                                          
                                                                             
           









                                                                                                      
" Highlighting literate directives in C++ sources.
function! HighlightTangledFile()
  " 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://

  " Inside tangle scenarios.
  syntax region tangleDirective start=+:(+ skip=+".*"+ end=+)+
  highlight link tangleDirective Delimiter
  syntax match traceContains /^+.*/
  highlight traceContains ctermfg=darkgreen
  syntax match traceAbsent /^-.*/
  highlight traceAbsent ctermfg=darkred
  syntax match tangleScenarioSetup /^\s*% .*/ | highlight link tangleScenarioSetup SpecialChar

  " 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
  syntax match muCommentedCode /#? .*$/ | highlight link muCommentedCode CommentedCode
  set comments+=n:#
  " Some other bare-bones mu highlighting.
  syntax match muAssign " <- \|\<raw\>" | highlight link muAssign SpecialChar
endfunction
call HighlightTangledFile()
autocmd BufRead,BufNewFile *.mu set ft=mu
autocmd BufRead,BufNewFile [0-9]* call HighlightTangledFile()

" 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)