aboutsummaryrefslogtreecommitdiff
path: root/runtime
diff options
context:
space:
mode:
Diffstat (limited to 'runtime')
-rw-r--r--runtime/doc/autocmd.txt16
-rw-r--r--runtime/doc/diagnostic.txt10
-rw-r--r--runtime/doc/map.txt4
-rw-r--r--runtime/doc/vim_diff.txt4
-rw-r--r--runtime/lua/vim/lsp/diagnostic.lua6
-rw-r--r--runtime/lua/vim/lsp/util.lua2
6 files changed, 24 insertions, 18 deletions
diff --git a/runtime/doc/autocmd.txt b/runtime/doc/autocmd.txt
index 9054bedc8d..4b8c07fde4 100644
--- a/runtime/doc/autocmd.txt
+++ b/runtime/doc/autocmd.txt
@@ -674,15 +674,19 @@ FuncUndefined When a user function is used but it isn't
alternative is to use an autoloaded function.
See |autoload-functions|.
*UIEnter*
-UIEnter After a UI connects via |nvim_ui_attach()|,
- after VimEnter. Can be used for GUI-specific
- configuration.
+UIEnter After a UI connects via |nvim_ui_attach()|, or
+ after builtin TUI is started, after |VimEnter|.
Sets these |v:event| keys:
- chan
+ chan: 0 for builtin TUI
+ 1 for |--embed|
+ |channel-id| of the UI otherwise
*UILeave*
-UILeave After a UI disconnects from Nvim.
+UILeave After a UI disconnects from Nvim, or after
+ builtin TUI is stopped, after |VimLeave|.
Sets these |v:event| keys:
- chan
+ chan: 0 for builtin TUI
+ 1 for |--embed|
+ |channel-id| of the UI otherwise
*InsertChange*
InsertChange When typing <Insert> while in Insert or
Replace mode. The |v:insertmode| variable
diff --git a/runtime/doc/diagnostic.txt b/runtime/doc/diagnostic.txt
index 19db3158be..781539cfb6 100644
--- a/runtime/doc/diagnostic.txt
+++ b/runtime/doc/diagnostic.txt
@@ -39,16 +39,18 @@ modify the diagnostics for a buffer (e.g. |vim.diagnostic.set()|) then it
requires a namespace.
*diagnostic-structure*
-A diagnostic is a Lua table with the following keys:
+A diagnostic is a Lua table with the following keys. Required keys are
+indicated with (*):
bufnr: Buffer number
- lnum: The starting line of the diagnostic
+ lnum(*): The starting line of the diagnostic
end_lnum: The final line of the diagnostic
- col: The starting column of the diagnostic
+ col(*): The starting column of the diagnostic
end_col: The final column of the diagnostic
severity: The severity of the diagnostic |vim.diagnostic.severity|
- message: The diagnostic text
+ message(*): The diagnostic text
source: The source of the diagnostic
+ code: The diagnostic code
user_data: Arbitrary data plugins or users can add
Diagnostics use the same indexing as the rest of the Nvim API (i.e. 0-based
diff --git a/runtime/doc/map.txt b/runtime/doc/map.txt
index 8715c3231c..b874d6dc61 100644
--- a/runtime/doc/map.txt
+++ b/runtime/doc/map.txt
@@ -65,8 +65,8 @@ modes.
where the map command applies. Disallow mapping of
{rhs}, to avoid nested and recursive mappings. Often
used to redefine a command.
- Note: A mapping whose {lhs} starts with <Plug> is
- always applied even if mapping is disallowed.
+ Note: When <Plug> appears in the {rhs} this part is
+ always applied even if remapping is disallowed.
:unm[ap] {lhs} |mapmode-nvo| *:unm* *:unmap*
diff --git a/runtime/doc/vim_diff.txt b/runtime/doc/vim_diff.txt
index 90f56e2566..5ea6a9c5dd 100644
--- a/runtime/doc/vim_diff.txt
+++ b/runtime/doc/vim_diff.txt
@@ -358,10 +358,6 @@ Macro/|recording| behavior
macros and 'keymap' at the same time. This also means you can use |:imap| on
the results of keys from 'keymap'.
-Mappings:
-- A mapping whose {lhs} starts with <Plug> is always applied even if mapping
- is disallowed by |nore|.
-
Motion:
The |jumplist| avoids useless/phantom jumps.
diff --git a/runtime/lua/vim/lsp/diagnostic.lua b/runtime/lua/vim/lsp/diagnostic.lua
index 68942ae11a..614d83f565 100644
--- a/runtime/lua/vim/lsp/diagnostic.lua
+++ b/runtime/lua/vim/lsp/diagnostic.lua
@@ -104,8 +104,10 @@ local function diagnostic_lsp_to_vim(diagnostics, bufnr, client_id)
severity = severity_lsp_to_vim(diagnostic.severity),
message = diagnostic.message,
source = diagnostic.source,
+ code = diagnostic.code,
user_data = {
lsp = {
+ -- usage of user_data.lsp.code is deprecated in favor of the top-level code field
code = diagnostic.code,
codeDescription = diagnostic.codeDescription,
tags = diagnostic.tags,
@@ -120,7 +122,8 @@ end
---@private
local function diagnostic_vim_to_lsp(diagnostics)
return vim.tbl_map(function(diagnostic)
- return vim.tbl_extend("error", {
+ return vim.tbl_extend("keep", {
+ -- "keep" the below fields over any duplicate fields in diagnostic.user_data.lsp
range = {
start = {
line = diagnostic.lnum,
@@ -134,6 +137,7 @@ local function diagnostic_vim_to_lsp(diagnostics)
severity = severity_vim_to_lsp(diagnostic.severity),
message = diagnostic.message,
source = diagnostic.source,
+ code = diagnostic.code,
}, diagnostic.user_data and (diagnostic.user_data.lsp or {}) or {})
end, diagnostics)
end
diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua
index 655c3a4679..59ab3d7e1f 100644
--- a/runtime/lua/vim/lsp/util.lua
+++ b/runtime/lua/vim/lsp/util.lua
@@ -480,7 +480,7 @@ function M.apply_text_edits(text_edits, bufnr, offset_encoding)
-- Remove final line if needed
local fix_eol = has_eol_text_edit
- fix_eol = fix_eol and api.nvim_buf_get_option(bufnr, 'fixeol')
+ fix_eol = fix_eol and (api.nvim_buf_get_option(bufnr, 'eol') or (api.nvim_buf_get_option(bufnr, 'fixeol') and not api.nvim_buf_get_option('binary')))
fix_eol = fix_eol and get_line(bufnr, max - 1) == ''
if fix_eol then
vim.api.nvim_buf_set_lines(bufnr, -2, -1, false, {})