diff options
Diffstat (limited to 'autoload/zig/list.vim')
-rw-r--r-- | autoload/zig/list.vim | 162 |
1 files changed, 0 insertions, 162 deletions
diff --git a/autoload/zig/list.vim b/autoload/zig/list.vim deleted file mode 100644 index 832ba107..00000000 --- a/autoload/zig/list.vim +++ /dev/null @@ -1,162 +0,0 @@ -if polyglot#init#is_disabled(expand('<sfile>:p'), 'zig', 'autoload/zig/list.vim') - finish -endif - -" Adapted from fatih/vim-go: autoload/go/list.vim -" -" Copyright 2011 The Go Authors. All rights reserved. -" Use of this source code is governed by a BSD-style -" license that can be found in the LICENSE file. -" - -" Window opens the list with the given height up to 10 lines maximum. -" Otherwise g:zig_loclist_height is used. -" -" If no or zero height is given it closes the window by default. -" To prevent this, set g:zig_list_autoclose = 0 -function! zig#list#Window(listtype, ...) abort - " we don't use lwindow to close the location list as we need also the - " ability to resize the window. So, we are going to use lopen and lclose - " for a better user experience. If the number of errors in a current - " location list increases/decreases, cwindow will not resize when a new - " updated height is passed. lopen in the other hand resizes the screen. - if !a:0 || a:1 == 0 - call zig#list#Close(a:listtype) - return - endif - - let height = zig#config#ListHeight() - if height == 0 - " prevent creating a large location height for a large set of numbers - if a:1 > 10 - let height = 10 - else - let height = a:1 - endif - endif - - if a:listtype == "locationlist" - exe 'lopen ' . height - else - exe 'copen ' . height - endif -endfunction - - -" Get returns the current items from the list -function! zig#list#Get(listtype) abort - if a:listtype == "locationlist" - return getloclist(0) - else - return getqflist() - endif -endfunction - -" Populate populate the list with the given items -function! zig#list#Populate(listtype, items, title) abort - if a:listtype == "locationlist" - call setloclist(0, a:items, 'r') - - " The last argument ({what}) is introduced with 7.4.2200: - " https://github.com/vim/vim/commit/d823fa910cca43fec3c31c030ee908a14c272640 - if has("patch-7.4.2200") | call setloclist(0, [], 'a', {'title': a:title}) | endif - else - call setqflist(a:items, 'r') - if has("patch-7.4.2200") | call setqflist([], 'a', {'title': a:title}) | endif - endif -endfunction - -" Parse parses the given items based on the specified errorformat and -" populates the list. -function! zig#list#ParseFormat(listtype, errformat, items, title) abort - " backup users errorformat, will be restored once we are finished - let old_errorformat = &errorformat - - " parse and populate the location list - let &errorformat = a:errformat - try - call zig#list#Parse(a:listtype, a:items, a:title) - finally - "restore back - let &errorformat = old_errorformat - endtry -endfunction - -" Parse parses the given items based on the global errorformat and -" populates the list. -function! zig#list#Parse(listtype, items, title) abort - if a:listtype == "locationlist" - lgetexpr a:items - if has("patch-7.4.2200") | call setloclist(0, [], 'a', {'title': a:title}) | endif - else - cgetexpr a:items - if has("patch-7.4.2200") | call setqflist([], 'a', {'title': a:title}) | endif - endif -endfunction - -" JumpToFirst jumps to the first item in the location list -function! zig#list#JumpToFirst(listtype) abort - if a:listtype == "locationlist" - ll 1 - else - cc 1 - endif -endfunction - -" Clean cleans and closes the location list -function! zig#list#Clean(listtype) abort - if a:listtype == "locationlist" - lex [] - else - cex [] - endif - - call zig#list#Close(a:listtype) -endfunction - -" Close closes the location list -function! zig#list#Close(listtype) abort - let autoclose_window = zig#config#ListAutoclose() - if !autoclose_window - return - endif - - if a:listtype == "locationlist" - lclose - else - cclose - endif -endfunction - -function! s:listtype(listtype) abort - let listtype = zig#config#ListType() - if empty(listtype) - return a:listtype - endif - - return listtype -endfunction - -" s:default_list_type_commands is the defaults that will be used for each of -" the supported commands (see documentation for g:zig_list_type_commands). When -" defining a default, quickfix should be used if the command operates on -" multiple files, while locationlist should be used if the command operates on a -" single file or buffer. Keys that begin with an underscore are not supported -" in g:zig_list_type_commands. -let s:default_list_type_commands = { - \ "ZigFmt": "locationlist", - \ } - -function! zig#list#Type(for) abort - let l:listtype = s:listtype(get(s:default_list_type_commands, a:for)) - if l:listtype == "0" - call zig#util#EchoError(printf( - \ "unknown list type command value found ('%s'). Please open a bug report in the zig.vim repo.", - \ a:for)) - let l:listtype = "quickfix" - endif - - return get(zig#config#ListTypeCommands(), a:for, l:listtype) -endfunction - -" vim: sw=2 ts=2 et |