diff options
| author | Adam Stankiewicz <sheerun@sher.pl> | 2018-07-08 15:16:28 +0200 | 
|---|---|---|
| committer | Adam Stankiewicz <sheerun@sher.pl> | 2018-07-08 15:16:28 +0200 | 
| commit | 055f7710b65dfa2df52fc0b5be2486ae36ac5751 (patch) | |
| tree | 0b6c36a330e8c0c4e37ad521773d28b6c52ad3ec /autoload/cargo/quickfix.vim | |
| parent | 33f610feb73ce782cf41a7d9a377541991c692b5 (diff) | |
| download | vim-polyglot-055f7710b65dfa2df52fc0b5be2486ae36ac5751.tar.gz vim-polyglot-055f7710b65dfa2df52fc0b5be2486ae36ac5751.zip  | |
Update dependencies
Diffstat (limited to 'autoload/cargo/quickfix.vim')
| -rw-r--r-- | autoload/cargo/quickfix.vim | 30 | 
1 files changed, 30 insertions, 0 deletions
diff --git a/autoload/cargo/quickfix.vim b/autoload/cargo/quickfix.vim new file mode 100644 index 00000000..13c3b465 --- /dev/null +++ b/autoload/cargo/quickfix.vim @@ -0,0 +1,30 @@ +if !exists('g:polyglot_disabled') || index(g:polyglot_disabled, 'rust') == -1 +   +function! cargo#quickfix#CmdPre() abort +    if &filetype ==# 'rust' && get(b:, 'current_compiler', '') ==# '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 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: + +endif  | 
