aboutsummaryrefslogtreecommitdiff
path: root/runtime/ftplugin/qf.vim
diff options
context:
space:
mode:
authorZyX <kp-pav@yandex.ru>2017-12-03 16:49:30 +0300
committerZyX <kp-pav@yandex.ru>2017-12-03 16:49:30 +0300
commitc49e22d3964d6c7ae1c24e8ad01b5fec4ca40b57 (patch)
treeb7e59c416d1435725c65f8952b6e55c70544d97e /runtime/ftplugin/qf.vim
parent62108c3b0be46936c83f6d4c98b44ceb5e6f77fd (diff)
parent27a577586eace687c47e7398845178208cae524a (diff)
downloadrneovim-c49e22d3964d6c7ae1c24e8ad01b5fec4ca40b57.tar.gz
rneovim-c49e22d3964d6c7ae1c24e8ad01b5fec4ca40b57.tar.bz2
rneovim-c49e22d3964d6c7ae1c24e8ad01b5fec4ca40b57.zip
Merge branch 'master' into s-dash-stdin
Diffstat (limited to 'runtime/ftplugin/qf.vim')
-rw-r--r--runtime/ftplugin/qf.vim23
1 files changed, 23 insertions, 0 deletions
diff --git a/runtime/ftplugin/qf.vim b/runtime/ftplugin/qf.vim
index 98c8f932bc..80e86c4d16 100644
--- a/runtime/ftplugin/qf.vim
+++ b/runtime/ftplugin/qf.vim
@@ -14,3 +14,26 @@ let b:undo_ftplugin = "set stl<"
" 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
+
+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