mirror of
https://github.com/neovim/neovim.git
synced 2025-02-25 18:55:25 -06:00
Merge #6364 'command-line color hook'
This commit is contained in:
@@ -4703,6 +4703,7 @@ input({opts})
|
||||
cancelreturn "" Same as {cancelreturn} from
|
||||
|inputdialog()|. Also works with
|
||||
input().
|
||||
highlight nothing Highlight handler: |Funcref|.
|
||||
|
||||
The highlighting set with |:echohl| is used for the prompt.
|
||||
The input is entered just like a command-line, with the same
|
||||
@@ -4725,7 +4726,35 @@ input({opts})
|
||||
"-complete=" argument. Refer to |:command-completion| for
|
||||
more information. Example: >
|
||||
let fname = input("File: ", "", "file")
|
||||
<
|
||||
< *E5400* *E5402*
|
||||
The optional `highlight` key allows specifying function which
|
||||
will be used for highlighting user input. This function
|
||||
receives user input as its only argument and must return
|
||||
a list of 3-tuples [hl_start_col, hl_end_col + 1, hl_group]
|
||||
where
|
||||
hl_start_col is the first highlighted column,
|
||||
hl_end_col is the last highlighted column (+ 1!),
|
||||
hl_group is |:hl| group used for highlighting.
|
||||
*E5403* *E5404* *E5405* *E5406*
|
||||
Both hl_start_col and hl_end_col + 1 must point to the start
|
||||
of the multibyte character (highlighting must not break
|
||||
multibyte characters), hl_end_col + 1 may be equal to the
|
||||
input length. Start column must be in range [0, len(input)),
|
||||
end column must be in range (hl_start_col, len(input)],
|
||||
sections must be ordered so that next hl_start_col is greater
|
||||
then or equal to previous hl_end_col.
|
||||
|
||||
Highlight function is called at least once for each new
|
||||
displayed input string, before command-line is redrawn. It is
|
||||
expected that function is pure for the duration of one input()
|
||||
call, i.e. it produces the same output for the same input, so
|
||||
output may be memoized. Function is run like under |:silent|
|
||||
modifier. If the function causes any errors, it will be
|
||||
skipped for the duration of the current input() call.
|
||||
|
||||
Currently coloring is disabled when command-line contains
|
||||
arabic characters.
|
||||
|
||||
NOTE: This function must not be used in a startup file, for
|
||||
the versions that only run in GUI mode (e.g., the Win32 GUI).
|
||||
Note: When input() is called from within a mapping it will
|
||||
|
||||
@@ -129,7 +129,6 @@ Commands:
|
||||
Functions:
|
||||
|dictwatcheradd()| notifies a callback whenever a |Dict| is modified
|
||||
|dictwatcherdel()|
|
||||
|execute()| works with |:redir|
|
||||
|menu_get()|
|
||||
|msgpackdump()|, |msgpackparse()| provide msgpack de/serialization
|
||||
|
||||
@@ -147,6 +146,14 @@ Highlight groups:
|
||||
|hl-TermCursorNC|
|
||||
|hl-Whitespace| highlights 'listchars' whitespace
|
||||
|
||||
UI:
|
||||
*E5408* *E5409* *g:Nvim_color_expr* *g:Nvim_color_cmdline*
|
||||
Command-line coloring is supported. Only |input()| and |inputdialog()| may
|
||||
be colored. For testing purposes expressions (e.g. |i_CTRL-R_=|) and regular
|
||||
command-line (|:|) are colored by callbacks defined in `g:Nvim_color_expr`
|
||||
and `g:Nvim_color_cmdline` respectively (these callbacks are for testing
|
||||
only, and will be removed in a future version).
|
||||
|
||||
==============================================================================
|
||||
4. Changed features *nvim-features-changed*
|
||||
|
||||
@@ -174,6 +181,8 @@ one. It does not attempt to mix data from the two.
|
||||
|
||||
|system()| does not support writing/reading "backgrounded" commands. |E5677|
|
||||
|
||||
|:redir| nested in |execute()| works.
|
||||
|
||||
Nvim may throttle (skip) messages from shell commands (|:!|, |:grep|, |:make|)
|
||||
if there is too much output. No data is lost, this only affects display and
|
||||
makes things faster. |:terminal| output is never throttled.
|
||||
@@ -265,6 +274,8 @@ Lua interface (|if_lua.txt|):
|
||||
on cancel and completion respectively) via dictionary argument (replaces all
|
||||
other arguments if used).
|
||||
|
||||
|input()| and |inputdialog()| now support user-defined cmdline highlighting.
|
||||
|
||||
==============================================================================
|
||||
5. Missing legacy features *nvim-features-missing*
|
||||
|
||||
|
||||
Reference in New Issue
Block a user