2014-07-10 21:05:51 -07:00
|
|
|
" Vim filetype plugin file
|
|
|
|
" Language: Vim's quickfix window
|
|
|
|
" Maintainer: Lech Lorens <Lech.Lorens@gmail.com>
|
2019-08-01 22:10:36 -07:00
|
|
|
" Last Change: 2019 Jul 15
|
2014-07-10 21:05:51 -07:00
|
|
|
|
|
|
|
if exists("b:did_ftplugin")
|
|
|
|
finish
|
|
|
|
endif
|
|
|
|
|
|
|
|
" Don't load another plugin for this buffer
|
|
|
|
let b:did_ftplugin = 1
|
|
|
|
|
2019-08-01 22:10:36 -07:00
|
|
|
if !get(g:, 'qf_disable_statusline')
|
|
|
|
let b:undo_ftplugin = "set stl<"
|
2014-07-10 21:05:51 -07:00
|
|
|
|
2019-08-01 22:10:36 -07:00
|
|
|
" Display the command that produced the list in the quickfix window:
|
|
|
|
setlocal stl=%t%{exists('w:quickfix_title')?\ '\ '.w:quickfix_title\ :\ ''}\ %=%-15(%l,%c%V%)\ %P
|
|
|
|
endif
|
2016-08-04 21:47:28 -07:00
|
|
|
|
|
|
|
function! s:setup_toc() abort
|
|
|
|
if get(w:, 'quickfix_title') !~# '\<TOC$' || &syntax != 'qf'
|
|
|
|
return
|
|
|
|
endif
|
|
|
|
|
|
|
|
let list = getloclist(0)
|
|
|
|
if empty(list)
|
|
|
|
return
|
|
|
|
endif
|
|
|
|
|
|
|
|
let bufnr = list[0].bufnr
|
|
|
|
setlocal modifiable
|
|
|
|
silent %delete _
|
|
|
|
call setline(1, map(list, 'v:val.text'))
|
|
|
|
setlocal nomodifiable nomodified
|
|
|
|
let &syntax = getbufvar(bufnr, '&syntax')
|
|
|
|
endfunction
|
|
|
|
|
|
|
|
augroup qf_toc
|
|
|
|
autocmd!
|
|
|
|
autocmd Syntax <buffer> call s:setup_toc()
|
|
|
|
augroup END
|