diff options
author | zeertzjq <zeertzjq@outlook.com> | 2025-04-08 11:11:38 +0800 |
---|---|---|
committer | zeertzjq <zeertzjq@outlook.com> | 2025-04-08 13:06:19 +0800 |
commit | 00eff4b196521adc35d11c605decacef5bc98fa3 (patch) | |
tree | 200724f2187c38977316e06c810bb323736bb918 /runtime | |
parent | 36d143e70722848855107ff05ab3997857b0c388 (diff) | |
download | rneovim-00eff4b196521adc35d11c605decacef5bc98fa3.tar.gz rneovim-00eff4b196521adc35d11c605decacef5bc98fa3.tar.bz2 rneovim-00eff4b196521adc35d11c605decacef5bc98fa3.zip |
vim-patch:9.1.1283: quickfix stack is limited to 10 items
Problem: quickfix and location-list stack is limited to 10 items
Solution: add the 'chistory' and 'lhistory' options to configure a
larger quickfix/location list stack
(64-bitman)
closes: vim/vim#16920
https://github.com/vim/vim/commit/88d41ab270a8390a43da97a903b1a4d76b89d330
Co-authored-by: 64-bitman <60551350+64-bitman@users.noreply.github.com>
Co-authored-by: Hirohito Higashi <h.east.727@gmail.com>
Diffstat (limited to 'runtime')
-rw-r--r-- | runtime/doc/news.txt | 1 | ||||
-rw-r--r-- | runtime/doc/options.txt | 22 | ||||
-rw-r--r-- | runtime/doc/quickfix.txt | 16 | ||||
-rw-r--r-- | runtime/doc/quickref.txt | 2 | ||||
-rw-r--r-- | runtime/lua/vim/_meta/options.lua | 28 | ||||
-rw-r--r-- | runtime/optwin.vim | 9 |
6 files changed, 70 insertions, 8 deletions
diff --git a/runtime/doc/news.txt b/runtime/doc/news.txt index df33c2b6b8..5b614c1b47 100644 --- a/runtime/doc/news.txt +++ b/runtime/doc/news.txt @@ -78,6 +78,7 @@ LUA OPTIONS +• 'chistory' and 'lhistory' set size of the |quickfix-stack|. • 'diffopt' `inline:` configures diff highlighting for changes within a line. • 'pummaxwidth' sets maximum width for the completion popup menu. diff --git a/runtime/doc/options.txt b/runtime/doc/options.txt index 18261a3c51..7e20ef43d7 100644 --- a/runtime/doc/options.txt +++ b/runtime/doc/options.txt @@ -1326,6 +1326,17 @@ A jump table for the options with a short description can be found at |Q_op|. This option cannot be set from a |modeline| or in the |sandbox|, for security reasons. + *'chistory'* *'chi'* +'chistory' 'chi' number (default 10) + global + Number of quickfix lists that should be remembered for the quickfix + stack. Must be between 1 and 100. If the option is set to a value + that is lower than the amount of entries in the quickfix list stack, + entries will be removed starting from the oldest one. If the current + quickfix list was removed, then the quickfix list at top of the stack + (the most recently created) will be used in its place. For additional + info, see |quickfix-stack|. + *'cindent'* *'cin'* *'nocindent'* *'nocin'* 'cindent' 'cin' boolean (default off) local to buffer @@ -3780,6 +3791,17 @@ A jump table for the options with a short description can be found at |Q_op|. temporarily when performing an operation where redrawing may cause flickering or cause a slowdown. + *'lhistory'* *'lhi'* +'lhistory' 'lhi' number (default 10) + local to window + Like 'chistory', but for the location list stack associated with the + current window. If the option is changed in either the location list + window itself or the the window that is associated with the location + list stack, the new value will also be applied to the other one. This + means this value will always be the same for a given location list + window and its corresponding window. See |quickfix-stack| for + additional info. + *'linebreak'* *'lbr'* *'nolinebreak'* *'nolbr'* 'linebreak' 'lbr' boolean (default off) local to window diff --git a/runtime/doc/quickfix.txt b/runtime/doc/quickfix.txt index c2a8c15b10..2702feb70f 100644 --- a/runtime/doc/quickfix.txt +++ b/runtime/doc/quickfix.txt @@ -31,12 +31,12 @@ From inside Vim an easy way to run a command and handle the output is with the The 'errorformat' option should be set to match the error messages from your compiler (see |errorformat| below). - *quickfix-ID* + *quickfix-stack* *quickfix-ID* Each quickfix list has a unique identifier called the quickfix ID and this number will not change within a Vim session. The |getqflist()| function can be used to get the identifier assigned to a list. There is also a quickfix list -number which may change whenever more than ten lists are added to a quickfix -stack. +number which may change whenever more than 'chistory' lists are added to a +quickfix stack. *location-list* *E776* A location list is a window-local quickfix list. You get one after commands @@ -848,10 +848,12 @@ using these functions are below: ============================================================================= 3. Using more than one list of errors *quickfix-error-lists* -So far has been assumed that there is only one list of errors. Actually the -ten last used lists are remembered. When starting a new list, the previous -ones are automatically kept. Two commands can be used to access older error -lists. They set one of the existing error lists as the current one. +So far it has been assumed that there is only one list of errors. Actually +there can be multiple used lists that are remembered; see 'chistory' and +'lhistory'. +When starting a new list, the previous ones are automatically kept. Two +commands can be used to access older error lists. They set one of the +existing error lists as the current one. *:colder* *:col* *E380* :col[der] [count] Go to older error list. When [count] is given, do diff --git a/runtime/doc/quickref.txt b/runtime/doc/quickref.txt index 163f74da22..8a7cf499c6 100644 --- a/runtime/doc/quickref.txt +++ b/runtime/doc/quickref.txt @@ -651,6 +651,7 @@ Short explanation of each option: *option-list* 'cdpath' 'cd' list of directories searched with ":cd" 'cedit' key used to open the command-line window 'charconvert' 'ccv' expression for character encoding conversion +'chistory' 'chi' maximum number of quickfix lists in history 'cindent' 'cin' do C program indenting 'cinkeys' 'cink' keys that trigger indent when 'cindent' is set 'cinoptions' 'cino' how to do indenting when 'cindent' is set @@ -768,6 +769,7 @@ Short explanation of each option: *option-list* 'langremap' 'lrm' do apply 'langmap' to mapped characters 'laststatus' 'ls' tells when last window has status lines 'lazyredraw' 'lz' don't redraw while executing macros +'lhistory' 'lhi' maximum number of location lists in history 'linebreak' 'lbr' wrap long lines at a blank 'lines' number of lines in the display 'linespace' 'lsp' number of pixel lines to use between characters diff --git a/runtime/lua/vim/_meta/options.lua b/runtime/lua/vim/_meta/options.lua index b681321d75..54c8c0c6b3 100644 --- a/runtime/lua/vim/_meta/options.lua +++ b/runtime/lua/vim/_meta/options.lua @@ -799,6 +799,20 @@ vim.o.ccv = vim.o.charconvert vim.go.charconvert = vim.o.charconvert vim.go.ccv = vim.go.charconvert +--- Number of quickfix lists that should be remembered for the quickfix +--- stack. Must be between 1 and 100. If the option is set to a value +--- that is lower than the amount of entries in the quickfix list stack, +--- entries will be removed starting from the oldest one. If the current +--- quickfix list was removed, then the quickfix list at top of the stack +--- (the most recently created) will be used in its place. For additional +--- info, see `quickfix-stack`. +--- +--- @type integer +vim.o.chistory = 10 +vim.o.chi = vim.o.chistory +vim.go.chistory = vim.o.chistory +vim.go.chi = vim.go.chistory + --- Enables automatic C program indenting. See 'cinkeys' to set the keys --- that trigger reindenting in insert mode and 'cinoptions' to set your --- preferred indent style. @@ -3730,6 +3744,20 @@ vim.o.lz = vim.o.lazyredraw vim.go.lazyredraw = vim.o.lazyredraw vim.go.lz = vim.go.lazyredraw +--- Like 'chistory', but for the location list stack associated with the +--- current window. If the option is changed in either the location list +--- window itself or the the window that is associated with the location +--- list stack, the new value will also be applied to the other one. This +--- means this value will always be the same for a given location list +--- window and its corresponding window. See `quickfix-stack` for +--- additional info. +--- +--- @type integer +vim.o.lhistory = 10 +vim.o.lhi = vim.o.lhistory +vim.wo.lhistory = vim.o.lhistory +vim.wo.lhi = vim.wo.lhistory + --- If on, Vim will wrap long lines at a character in 'breakat' rather --- than at the last character that fits on the screen. Unlike --- 'wrapmargin' and 'textwidth', this does not insert <EOL>s in the file, diff --git a/runtime/optwin.vim b/runtime/optwin.vim index ce4590f01b..79715460ac 100644 --- a/runtime/optwin.vim +++ b/runtime/optwin.vim @@ -1,7 +1,7 @@ " These commands create the option window. " " Maintainer: The Vim Project <https://github.com/vim/vim> -" Last Change: 2025 Mar 28 +" Last Change: 2025 Apr 06 " Former Maintainer: Bram Moolenaar <Bram@vim.org> " If there already is an option window, jump to that one. @@ -367,6 +367,13 @@ if has("linebreak") call append("$", "\t" .. s:local_to_window) call <SID>OptionL("nuw") endif +if has("quickfix") + call <SID>AddOption("chistory", gettext("maximum number of quickfix lists that can be stored in history")) + call <SID>OptionL("chi") + call <SID>AddOption("lhistory", gettext("maximum number of location lists that can be stored in history")) + call append("$", "\t" .. s:local_to_window) + call <SID>OptionL("lhi") +endif if has("conceal") call <SID>AddOption("conceallevel", gettext("controls whether concealable text is hidden")) call append("$", "\t" .. s:local_to_window) |