aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
authorzeertzjq <zeertzjq@outlook.com>2025-04-08 11:11:38 +0800
committerzeertzjq <zeertzjq@outlook.com>2025-04-08 13:06:19 +0800
commit00eff4b196521adc35d11c605decacef5bc98fa3 (patch)
tree200724f2187c38977316e06c810bb323736bb918 /runtime
parent36d143e70722848855107ff05ab3997857b0c388 (diff)
downloadrneovim-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.txt1
-rw-r--r--runtime/doc/options.txt22
-rw-r--r--runtime/doc/quickfix.txt16
-rw-r--r--runtime/doc/quickref.txt2
-rw-r--r--runtime/lua/vim/_meta/options.lua28
-rw-r--r--runtime/optwin.vim9
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)