mirror of
				https://github.com/vim/vim.git
				synced 2025-10-30 09:47:20 -04:00 
			
		
		
		
	
		
			
				
	
	
		
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
			
		
		
	
	
			30 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			VimL
		
	
	
	
	
	
| " Last Modified: 2023-09-11
 | |
| 
 | |
| function! cargo#quickfix#CmdPre() abort
 | |
|     if &filetype ==# 'rust' && get(b:, 'current_compiler', '') ==# 'cargo' &&
 | |
|          \ &makeprg =~ '\V\^cargo\ \.\*'
 | |
|         " Preserve the current directory, and 'lcd' to the nearest Cargo file.
 | |
|         let b:rust_compiler_cargo_qf_has_lcd = haslocaldir()
 | |
|         let b:rust_compiler_cargo_qf_prev_cd = getcwd()
 | |
|         let b:rust_compiler_cargo_qf_prev_cd_saved = 1
 | |
|         let l:nearest = fnamemodify(cargo#nearestRootCargo(0), ':h')
 | |
|         execute 'lchdir! '.l:nearest
 | |
|     else
 | |
|         let b:rust_compiler_cargo_qf_prev_cd_saved = 0
 | |
|     endif
 | |
| endfunction
 | |
| 
 | |
| function! cargo#quickfix#CmdPost() abort
 | |
|     if exists("b:rust_compiler_cargo_qf_prev_cd_saved") && b:rust_compiler_cargo_qf_prev_cd_saved
 | |
|         " Restore the current directory.
 | |
|         if b:rust_compiler_cargo_qf_has_lcd
 | |
|             execute 'lchdir! '.b:rust_compiler_cargo_qf_prev_cd
 | |
|         else
 | |
|             execute 'chdir! '.b:rust_compiler_cargo_qf_prev_cd
 | |
|         endif
 | |
|         let b:rust_compiler_cargo_qf_prev_cd_saved = 0
 | |
|     endif
 | |
| endfunction
 | |
| 
 | |
| " vim: set et sw=4 sts=4 ts=8:
 |