Do our own save call when compiling files in vim
This commit is contained in:
		
							parent
							
								
									2f9dc3aba7
								
							
						
					
					
						commit
						d664ba882c
					
				
							
								
								
									
										40
									
								
								vimrc
									
									
									
									
									
								
							
							
						
						
									
										40
									
								
								vimrc
									
									
									
									
									
								
							|  | @ -657,38 +657,34 @@ endfun | |||
| " These write functions below will not be reloaded because they initiate the | ||||
| " save. So if you make changes to them then you need to manually reload this | ||||
| " file using <leader>rv or whatever. :ReloadVimrcError | ||||
| function! DoSingleWrite() | ||||
| function! WriteCurrentFileAndCreateCtags() | ||||
|     write! | ||||
|     call CreateCtags() | ||||
| endfunction | ||||
| 
 | ||||
| function! DoSingleWriteThenQuit() | ||||
| function! WriteCurrentFileAndCreateCtagsThenQuit() | ||||
|     write! | ||||
|     call CreateCtags() | ||||
|     quit | ||||
| endfunction | ||||
| 
 | ||||
| " @fixme Sometimes a :wa that saves multiple files causes vim to hang and use | ||||
| " a lot of CPU. | ||||
| function! DoMultiWrite() | ||||
|     let l:current_buffer = bufnr("%") | ||||
|     bufdo wa | ||||
|     " Restore the last buffer because it may have changed. | ||||
|     exec "buffer " . l:current_buffer | ||||
| " @fixme Sometimes a :wa that saves multiple files causes vim to hang and use a lot of CPU. | ||||
| function! WriteAllModifiedFilesAndCreateCtags() | ||||
|     wall! | ||||
|     call CreateCtags() | ||||
| endfunction | ||||
| 
 | ||||
| cnoreabbrev w  :call DoSingleWrite() | ||||
| cnoreabbrev W  :call DoSingleWrite() | ||||
| cnoreabbrev wa :call DoMultiWrite() | ||||
| cnoreabbrev Wa :call DoMultiWrite() | ||||
| cnoreabbrev WA :call DoMultiWrite() | ||||
| cnoreabbrev wq :call DoSingleWriteThenQuit() | ||||
| cnoreabbrev Wq :call DoSingleWriteThenQuit() | ||||
| cnoreabbrev WQ :call DoSingleWriteThenQuit() | ||||
| cnoreabbrev w  :call WriteCurrentFileAndCreateCtags() | ||||
| cnoreabbrev W  :call WriteCurrentFileAndCreateCtags() | ||||
| cnoreabbrev wa :call WriteAllModifiedFilesAndCreateCtags() | ||||
| cnoreabbrev Wa :call WriteAllModifiedFilesAndCreateCtags() | ||||
| cnoreabbrev WA :call WriteAllModifiedFilesAndCreateCtags() | ||||
| cnoreabbrev wq :call WriteCurrentFileAndCreateCtagsThenQuit() | ||||
| cnoreabbrev Wq :call WriteCurrentFileAndCreateCtagsThenQuit() | ||||
| cnoreabbrev WQ :call WriteCurrentFileAndCreateCtagsThenQuit() | ||||
| 
 | ||||
| nnoremap <leader>w :call DoSingleWrite()<cr> | ||||
| nnoremap <leader>x :call DoSingleWriteThenQuit()<cr> | ||||
| nnoremap <leader>w :call WriteCurrentFileAndCreateCtags()<cr> | ||||
| nnoremap <leader>x :call WriteCurrentFileAndCreateCtagsThenQuit()<cr> | ||||
| nnoremap <leader>q :q<cr> | ||||
| 
 | ||||
| cnoreabbrev Q q | ||||
|  | @ -1158,7 +1154,7 @@ endfunction | |||
| function! Build(optimized=0, silent=0) | ||||
|     let l:ext = tolower(expand('%:e')) | ||||
|     let l:parent_dir  = expand('%:p:h') | ||||
|     let l:async_cmd = "AsyncRun! -save=2 " | ||||
|     let l:async_cmd = "AsyncRun! " | ||||
|     if a:silent | ||||
|         let l:async_cmd .= "-post=call\\ HideAsyncResults() " | ||||
|     endif | ||||
|  | @ -1196,6 +1192,10 @@ function! Build(optimized=0, silent=0) | |||
|     if l:is_jai | ||||
|         let l:cmd .= ' '.g:campo_jai_build_args | ||||
|     endif | ||||
|     " I was originally passing -save=2 to AsyncRun! in order to save all | ||||
|     " modified files (it just does a `silent! wall` call), but I want ctags to | ||||
|     " be generated so we're handling the save ourselves. | ||||
|     call WriteAllModifiedFilesAndCreateCtags() | ||||
|     exec l:async_cmd . l:cmd | ||||
| endfunction | ||||
| 
 | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue
	
	Block a user