aboutsummaryrefslogtreecommitdiff
path: root/runtime/ftplugin/qf.vim
diff options
context:
space:
mode:
authorJustin M. Keyes <justinkz@gmail.com>2017-05-01 18:37:14 +0200
committerGitHub <noreply@github.com>2017-05-01 18:37:14 +0200
commitefea8a66b12d98b02d0594b54c4e575262d4e3da (patch)
tree246f9c749cacacb5c19439b44c2d448117ce7b11 /runtime/ftplugin/qf.vim
parentcd190db8b3f1376a35a3cdce00e277018f809862 (diff)
parent45ef3d9d0c5f09e735b984fb6bbb25b27848408c (diff)
downloadrneovim-efea8a66b12d98b02d0594b54c4e575262d4e3da.tar.gz
rneovim-efea8a66b12d98b02d0594b54c4e575262d4e3da.tar.bz2
rneovim-efea8a66b12d98b02d0594b54c4e575262d4e3da.zip
Merge #6632 from justinmk/doc
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