patch 9.1.1138: cmdline completion for :hi is too simplistic
Problem: Existing cmdline completion for :highlight was barebone and
only completed the highlight group names.
Solution: Implement full completion for the highlight group arguments
such as guifg and cterm. If the user tries to complete
immediately after the '=' (e.g. `hi Normal guifg=<Tab>`), the
completion will fill in the existing value, similar to how
cmdline completion for options work (Yee Cheng Chin).
closes: #16712
Signed-off-by: Yee Cheng Chin <ychin.git@gmail.com>
Signed-off-by: Christian Brabandt <cb@256bit.org>
diff --git a/runtime/doc/eval.txt b/runtime/doc/eval.txt
index 0851aa5..0ada1b2 100644
--- a/runtime/doc/eval.txt
+++ b/runtime/doc/eval.txt
@@ -1,4 +1,4 @@
-*eval.txt* For Vim version 9.1. Last change: 2025 Jan 29
+*eval.txt* For Vim version 9.1. Last change: 2025 Feb 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -2081,7 +2081,7 @@
You can make changes to that file, but make sure to add new
keys instead of updating existing ones, otherwise Vim will skip
- loading the file (thinking is hasn't been changed).
+ loading the file (thinking it hasn't been changed).
*v:completed_item* *completed_item-variable*
v:completed_item
diff --git a/runtime/doc/syntax.txt b/runtime/doc/syntax.txt
index cb6704c..d8c4b08 100644
--- a/runtime/doc/syntax.txt
+++ b/runtime/doc/syntax.txt
@@ -1,4 +1,4 @@
-*syntax.txt* For Vim version 9.1. Last change: 2025 Feb 20
+*syntax.txt* For Vim version 9.1. Last change: 2025 Feb 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -5432,6 +5432,10 @@
See |:highlight-default| for the optional [default]
argument.
+:hi[ghlight][!] [default] link {from-group} {to-group}
+:hi[ghlight][!] [default] link {from-group} NONE
+ See |:hi-link|.
+
Normally a highlight group is added once when starting up. This sets the
default values for the highlighting. After that, you can use additional
highlight commands to change the arguments that you want to set to non-default
diff --git a/runtime/doc/version9.txt b/runtime/doc/version9.txt
index de38d08..99a4002 100644
--- a/runtime/doc/version9.txt
+++ b/runtime/doc/version9.txt
@@ -1,4 +1,4 @@
-*version9.txt* For Vim version 9.1. Last change: 2025 Feb 11
+*version9.txt* For Vim version 9.1. Last change: 2025 Feb 23
VIM REFERENCE MANUAL by Bram Moolenaar
@@ -41573,8 +41573,11 @@
changes between buffers on similar lines improving the diff highlighting in
Vim
-Adjusted default values ~
------------------------
+ *changed-9.2*
+Changed~
+-------
+
+Default values: ~
- the default 'history' option value has been increased to 200 and removed
from |defaults.vim|
- the default 'backspace' option for Vim has been set to "indent,eol,start"
@@ -41584,61 +41587,69 @@
- the default value of the 'keyprotocol' option has been updated and support
for the ghostty terminal emulator (using kitty protocol) has been added
- *changed-9.2*
-Changed~
--------
-- use 'smoothscroll' logic for CTRL-F and CTRL-B for pagewise scrolling
-- use 'smoothscroll' logic for CTRL-D and CTRL-U for half-pagewise scrolling
-- the default for 'commentstring' contains whitespace padding to have
- automatic comments look nicer |comment-install|
-- 'completeopt' is now a |global-local| option.
-- 'nrformats' accepts the new "blank" suboption, to determine a signed or
- unsigned number based on whitespace in front of a minus sign.
-- allow to specify a priority when defining a new sign |:sign-define|
-- provide information about function arguments using the get(func, "arity")
- function |get()-func|
-- |:bwipe| also wipes jumplist and tagstack data
-- moving in the buffer list using |:bnext| and similar commands, behaves as
- documented and skips help buffers (if not run from a help buffer, else
- moves to the next/previous help buffer).
+
+Completion: ~
- allow to complete directories from 'cdpath' for |:cd| and similar commands,
add the "cd_in_path" completion type for e.g. |:command-complete| and
|getcompletion()|
- allow to complete shell commands and files using the new shellcmdline
completion type using |:command-complete| and |getcmdcomplpat()|
-- add 'cpoptions' flag "z" |cpo-z|, to disable some (traditional) vi
- behaviour/inconsistency (see |d-special| and |cw|).
- allow to specify additional attributes in the completion menu (allows to
mark deprecated attributes from LSP server) |complete-items|
-- the regex engines match correctly case-insensitive multi-byte characters
- (and apply proper case folding)
+- the completed word and completion type are provided when handling the
+ |CompleteDone| autocommand in the |v:event| dictionary
+- |complete_info()| returns the list of matches shown in the poppu menu via
+ the "matches" key
+- New option value for 'completeopt':
+ "nosort" - do not sort completion results
+ "preinsert" - highlight to be inserted values
+- handle multi-line completion as expected
+- improved commandline completion for the |:hi| command
+
+Options: ~
+- the default for 'commentstring' contains whitespace padding to have
+ automatic comments look nicer |comment-install|
+- 'completeopt' is now a |global-local| option.
+- 'nrformats' accepts the new "blank" suboption, to determine a signed or
+ unsigned number based on whitespace in front of a minus sign.
+- add 'cpoptions' flag "z" |cpo-z|, to disable some (traditional) vi
+ behaviour/inconsistency (see |d-special| and |cw|).
+- 'rulerformat' now supports the |stl-%!| item
+- use 'smoothscroll' logic for CTRL-F / CTRL-B for pagewise scrolling
+ and CTRL-D / CTRL-U for half-pagewise scrolling
+
+Ex commands: ~
+- allow to specify a priority when defining a new sign |:sign-define|
+- |:bwipe| also wipes jumplist and tagstack data
+- moving in the buffer list using |:bnext| and similar commands, behaves as
+ documented and skips help buffers (if not run from a help buffer, else
+ moves to the next/previous help buffer).
- |:keeppatterns| preserves the last substitute pattern when used with |:s|
+
+Functions: ~
+- provide information about function arguments using the get(func, "arity")
+ function |get()-func|
- |setqflist()| and |setloclist()| can optionally try to preserve the current
selection in the quickfix list with the "u" action.
+- allow to pass local Vim script variables to python interpreter |py3eval()|
+- |getwininfo()| now also returns the "leftcol" property for a window
+- |v:stacktrace| The stack trace of the exception most recently caught and
+ not finished
+- Add the optional {opts} |Dict| argument to |getchar()| to control: cursor
+ behaviour, return type and whether or not to simplify the returned key
+
+Others: ~
+- the regex engines match correctly case-insensitive multi-byte characters
+ (and apply proper case folding)
- the putty terminal is detected using an |TermResponse| autocommand in
|defaults.vim| and Vim switches to a dark background
- the |help-TOC| package is included to ease navigating the documentation.
- an interactive tutor plugin has been included |vim-tutor-mode|, can be
started via |:Tutor|
- improve the |vimtutor| and add a second chapter for more advanced tips
-- allow to pass local Vim script variables to python interpreter |py3eval()|
-- |getwininfo()| now also returns the "leftcol" property for a window
-- 'rulerformat' now supports the |stl-%!| item
-- the completed word and completion type are provided when handling the
- |CompleteDone| autocommand in the |v:event| dictionary
-- |complete_info()| returns the list of matches shown in the poppu menu via
- the "matches" key
-- |v:stacktrace| The stack trace of the exception most recently caught and
- not finished
-- New option value for 'completeopt':
- "nosort" - do not sort completion results
- "preinsert" - highlight to be inserted values
- add |dist#vim9#Launch()| and |dist#vim9#Open()| to the |vim-script-library|
and decouple it from |netrw|
- new digraph "APPROACHES THE LIMIT" using ".="
-- Add the optional {opts} |Dict| argument to |getchar()| to control: cursor
- behaviour, return type and whether or not to simplify the returned key
-- handle multi-line completion as expected
*added-9.2*
Added ~