Skip to content

Commit 13f2aa8

Browse files
committed
Persistent quickfix title
1 parent b982e53 commit 13f2aa8

File tree

2 files changed

+17
-4
lines changed

2 files changed

+17
-4
lines changed

autoload/dispatch.vim

Lines changed: 16 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -735,6 +735,15 @@ function! s:request(request) abort
735735
return a:request
736736
elseif type(a:request) == type(0) && a:request >= 0
737737
return get(s:makes, a:request-1, {})
738+
elseif type(a:request) == type('') && a:request =~# '^\w\+/\d\+$'
739+
let i = len(s:makes)
740+
while i
741+
let i -= 1
742+
if s:handler_id(s:makes[i]) ==# a:request
743+
return s:makes[i]
744+
endif
745+
endwhile
746+
return {}
738747
elseif type(a:request) == type('') && !empty(a:request)
739748
return get(s:files, a:request, {})
740749
else
@@ -850,6 +859,9 @@ function! s:cgetfile(request, all, copen) abort
850859
let &l:makeprg = request.command
851860
silent doautocmd QuickFixCmdPre cgetfile
852861
execute 'noautocmd cgetfile' fnameescape(request.file)
862+
if exists(':chistory')
863+
call setqflist([], 'r', {'title': ':Dispatch '.escape(request.expanded, '%#') . ' ' . s:postfix(request)})
864+
endif
853865
silent doautocmd QuickFixCmdPost cgetfile
854866
catch '^E40:'
855867
return v:exception
@@ -869,14 +881,15 @@ function! s:cgetfile(request, all, copen) abort
869881
endfunction
870882

871883
function! dispatch#quickfix_init() abort
872-
let request = s:request(matchstr(w:quickfix_title, '^:noautocmd cgetfile \zs.*'))
884+
let id = matchstr(w:quickfix_title, '^:noautocmd cgetfile \zs.*\|^:Dispatch.*(\zs\w\+/\d\+\ze)$')
885+
let request = s:request(id)
873886
if empty(request)
874887
return
875888
endif
876-
let w:quickfix_title = ':Dispatch ' . escape(request.expanded, '%#!') .
889+
let w:quickfix_title = ':Dispatch ' . escape(request.expanded, '%#') .
877890
\ ' ' . s:postfix(request)
878891
let b:dispatch = dispatch#dir_opt(request.directory) .
879-
\ escape(request.expanded, '%#!')
892+
\ escape(request.expanded, '%#')
880893
if has_key(request, 'compiler')
881894
let b:dispatch = '-compiler=' . request.compiler . ' ' . b:dispatch
882895
endif

plugin/dispatch.vim

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -45,7 +45,7 @@ endif
4545
augroup dispatch
4646
autocmd!
4747
autocmd FileType qf
48-
\ if &buftype ==# 'quickfix' && empty(getloclist(winnr())) && get(w:, 'quickfix_title') =~# '^:noautocmd cgetfile' |
48+
\ if &buftype ==# 'quickfix' && empty(getloclist(winnr())) && get(w:, 'quickfix_title') =~# '^:noautocmd cgetfile\>\|^:\d*Dispatch\>' |
4949
\ call dispatch#quickfix_init() |
5050
\ endif
5151
augroup END

0 commit comments

Comments
 (0)