about summary refs log tree commit diff stats
path: root/html/088file.mu.html
diff options
context:
space:
mode:
Diffstat (limited to 'html/088file.mu.html')
-rw-r--r--html/088file.mu.html10
1 files changed, 5 insertions, 5 deletions
diff --git a/html/088file.mu.html b/html/088file.mu.html
index c787a176..17c78532 100644
--- a/html/088file.mu.html
+++ b/html/088file.mu.html
@@ -3,7 +3,7 @@
 <head>
 <meta http-equiv="content-type" content="text/html; charset=UTF-8">
 <title>Mu - 088file.mu</title>
-<meta name="Generator" content="Vim/8.0">
+<meta name="Generator" content="Vim/7.4">
 <meta name="plugin-version" content="vim7.4_v2">
 <meta name="syntax" content="none">
 <meta name="settings" content="number_lines,use_css,pre_wrap,no_foldcolumn,expand_tabs,line_ids,prevent_copy=">
@@ -15,14 +15,14 @@ body { font-size: 12pt; font-family: monospace; color: #aaaaaa; background-color
 a { color:#eeeeee; text-decoration: none; }
 a:hover { text-decoration: underline; }
 * { font-size: 12pt; font-size: 1em; }
-.muControl { color: #c0a020; }
 .muRecipe { color: #ff8700; }
-.LineNr { color: #444444; }
-.Delimiter { color: #800080; }
-.Constant { color: #00a0a0; }
 .Special { color: #c00000; }
+.Delimiter { color: #800080; }
 .Comment { color: #9090ff; }
 .Comment a { color:#0000ee; text-decoration:underline; }
+.Constant { color: #00a0a0; }
+.LineNr { color: #444444; }
+.muControl { color: #c0a020; }
 .muData { color: #ffff00; }
 -->
 </style>
tik.com> 2019-07-27 17:47:59 -0700 5485 - promote SubX to top-level' href='/akkartik/mu/commit/vimrc.vim?h=hlt&id=6e1eeeebfb453fa7c871869c19375ce60fbd7413'>6e1eeeeb ^
b3cdcdd4 ^
a9817844 ^
a9817844 ^
6e1eeeeb ^
a9817844 ^
b96af395 ^






6e1eeeeb ^
6e1eeeeb ^









113bae73 ^
6e1eeeeb ^










aeac1e06 ^
6e1eeeeb ^
aeac1e06 ^
6e1eeeeb ^


a56d969e ^
f88f77cd ^
6e1eeeeb ^
4c131b38 ^
2844327a ^
f88f77cd ^
2844327a ^



a5fa9785 ^
2844327a ^
eafdbfc1 ^
2844327a ^

2844327a ^


a5fa9785 ^
2844327a ^
4c131b38 ^
2844327a ^








6e1eeeeb ^
6e1eeeeb ^




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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100

                                                  



                                                                                                     


                          
 
                            


                                                              
                                    


                                                                                              
                               



                                                                                        
           
                  
                                                             
                                               
           






                                                                                                      
 









                                                           
                                                      










                                                              
                                            
    
                                        


                                                        
                                                                                    
                                                                  
 
                        
               
                                                                                                   



                                                                                                                                             
                                                                                       
                                 
                                                      

                        


                                                                                     
                                                                                                     
                                  
                                                                








                                                                 
 




                                                           
" 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=22
  syntax match traceAbsent /^-.*/
  highlight traceAbsent ctermfg=darkred
  syntax match tangleScenarioSetup /^\s*% .*/ | highlight link tangleScenarioSetup SpecialChar
  highlight Special ctermfg=160

  syntax match subxString %"[^"]*"% | highlight link subxString Constant
  " match globals but not registers like 'EAX'
  syntax match subxGlobal %\<[A-Z][a-z0-9_-]*\>% | highlight link subxGlobal SpecialChar
endfunction
augroup LocalVimrc
  autocmd BufRead,BufNewFile *.cc call HighlightTangledFile()
  autocmd BufRead,BufNewFile *.subx set ft=subx
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)

command! -nargs=1 E call EditSubx("edit", <f-args>)
if exists("&splitvertical")
  command! -nargs=1 S call EditSubx("vert split", <f-args>)
  command! -nargs=1 H call EditSubx("hor split", <f-args>)
else
  command! -nargs=1 S call EditSubx("vert split", <f-args>)
  command! -nargs=1 H call EditSubx("split", <f-args>)
endif

function! EditSubx(cmd, arg)
  exec "silent! " . a:cmd . " apps/" . a:arg . ".subx"
endfunction

" we often want to crib lines of machine code from other files
function! GrepSubX(regex)
  " https://github.com/mtth/scratch.vim
  Scratch!
  silent exec "r !grep -h '".a:regex."' *.subx */*.subx"
endfunction
command! -nargs=1 G call GrepSubX(<q-args>)

if exists("&splitvertical")
  command! -nargs=0 P hor split subx_opcodes
else
  command! -nargs=0 P split subx_opcodes
endif

" useful for inspecting just the control flow in a trace
" see https://github.com/akkartik/mu/blob/master/Readme.md#a-few-hints-for-debugging
command! -nargs=0 L exec "%!grep label |grep -v clear-stream:loop"

" run test around cursor
if empty($TMUX)
  " hack: need to move cursor outside function at start (`{`), but inside function at end (`<C-o>`)
  " this solution is unfortunate, but seems forced:
  "   can't put initial cursor movement inside function because we rely on <C-r><C-w> to grab word at cursor
  "   can't put final cursor movement out of function because that disables the wait for <CR> prompt; function must be final operation of map
  "   can't avoid the function because that disables the wait for <CR> prompt
  noremap <Leader>t {:keeppatterns /^[^ #]<CR>:call RunTestMoveCursor("<C-r><C-w>")<CR>
  function RunTestMoveCursor(arg)
    exec "!./run_one_test ".expand("%")." '".a:arg."'"
    exec "normal \<C-o>"
  endfunction
else
  " we have tmux; we don't need to show any output in the Vim pane so life is simpler
  " assume the left-most window is for the shell
  noremap <Leader>t {:keeppatterns /^[^ #]<CR>:silent! call RunTestInFirstPane("<C-r><C-w>")<CR><C-o>
  function RunTestInFirstPane(arg)
    call RunInFirstPane("./run_one_test ".expand("%")." ".a:arg)
  endfunction
  function RunInFirstPane(arg)
    exec "!tmux select-pane -t :0.0"
    exec "!tmux send-keys '".a:arg."' C-m"
    exec "!tmux last-pane"
    " for some reason my screen gets messed up, so force a redraw
    exec "!tmux send-keys 'C-l'"
  endfunction
endif

if exists("&splitvertical")
  command! -nargs=0 T badd last_run | sbuffer last_run
else
  command! -nargs=0 T badd last_run | vert sbuffer last_run
endif