aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua
diff options
context:
space:
mode:
authorAshkan Kiani <ashkan.k.kiani@gmail.com>2019-11-20 17:09:21 -0800
committerAshkan Kiani <ashkan.k.kiani@gmail.com>2019-11-20 17:09:21 -0800
commitb984f613c1e8dadbe59bf0d7093a6ed12af61b37 (patch)
treef23ccdaf15ae7dc57238650a84b783b083f57aa4 /runtime/lua
parent9b7f95671559a9189569dcb93778e54eaa87f255 (diff)
downloadrneovim-b984f613c1e8dadbe59bf0d7093a6ed12af61b37.tar.gz
rneovim-b984f613c1e8dadbe59bf0d7093a6ed12af61b37.tar.bz2
rneovim-b984f613c1e8dadbe59bf0d7093a6ed12af61b37.zip
Extend list_extend to take start/finish.
Diffstat (limited to 'runtime/lua')
-rw-r--r--runtime/lua/vim/lsp/default_callbacks.lua14
-rw-r--r--runtime/lua/vim/lsp/util.lua7
-rw-r--r--runtime/lua/vim/shared.lua31
3 files changed, 26 insertions, 26 deletions
diff --git a/runtime/lua/vim/lsp/default_callbacks.lua b/runtime/lua/vim/lsp/default_callbacks.lua
index 67c33a1667..5e8552307b 100644
--- a/runtime/lua/vim/lsp/default_callbacks.lua
+++ b/runtime/lua/vim/lsp/default_callbacks.lua
@@ -5,12 +5,17 @@ local api = vim.api
local M = {}
+local function err_message(...)
+ api.nvim_err_writeln(table.concat(vim.tbl_flatten{...}))
+ api.nvim_command("redraw")
+end
+
M['textDocument/publishDiagnostics'] = function(_, _, result)
if not result then return end
local uri = result.uri
local bufnr = vim.uri_to_bufnr(uri)
if not bufnr then
- api.nvim_err_writeln(string.format("LSP.publishDiagnostics: Couldn't find buffer for %s", uri))
+ err_message("LSP.publishDiagnostics: Couldn't find buffer for ", uri)
return
end
util.buf_clear_diagnostics(bufnr)
@@ -20,11 +25,6 @@ M['textDocument/publishDiagnostics'] = function(_, _, result)
-- util.buf_loclist(bufnr, result.diagnostics)
end
-local function err_message(...)
- api.nvim_err_writeln(table.concat(vim.tbl_flatten{...}))
- api.nvim_command("redraw")
-end
-
local function log_message(_, _, result, client_id)
local message_type = result.type
local message = result.message
@@ -34,8 +34,6 @@ local function log_message(_, _, result, client_id)
err_message("LSP[", client_name, "] client has shut down after sending the message")
end
if message_type == protocol.MessageType.Error then
- -- Might want to not use err_writeln,
- -- but displaying a message with red highlights or something
err_message("LSP[", client_name, "] ", message)
else
local message_type_name = protocol.MessageType[message_type]
diff --git a/runtime/lua/vim/lsp/util.lua b/runtime/lua/vim/lsp/util.lua
index ab2c02ffcd..3a2142a478 100644
--- a/runtime/lua/vim/lsp/util.lua
+++ b/runtime/lua/vim/lsp/util.lua
@@ -546,7 +546,6 @@ end
-- Remove empty lines from the beginning and end.
function M.trim_empty_lines(lines)
- local result = {}
local start = 1
for i = 1, #lines do
if #lines[i] > 0 then
@@ -561,11 +560,7 @@ function M.trim_empty_lines(lines)
break
end
end
- -- TODO(ashkan) use tbl_slice.
- for i = start, finish do
- table.insert(result, lines[i])
- end
- return result
+ return vim.list_extend({}, lines, start, finish)
end
-- Accepts markdown lines and tries to reduce it to a filetype if it is
diff --git a/runtime/lua/vim/shared.lua b/runtime/lua/vim/shared.lua
index ff89acc524..25287ed1aa 100644
--- a/runtime/lua/vim/shared.lua
+++ b/runtime/lua/vim/shared.lua
@@ -226,18 +226,25 @@ function vim.tbl_add_reverse_lookup(o)
return o
end
---- Extends a list-like table with the values of another list-like table.
----
---NOTE: This *mutates* dst!
---@see |extend()|
----
---@param dst The list which will be modified and appended to.
---@param src The list from which values will be inserted.
-function vim.list_extend(dst, src)
- assert(type(dst) == 'table', "dst must be a table")
- assert(type(src) == 'table', "src must be a table")
- for _, v in ipairs(src) do
- table.insert(dst, v)
+-- Extends a list-like table with the values of another list-like table.
+--
+-- NOTE: This *mutates* dst!
+-- @see |extend()|
+--
+-- @param dst list which will be modified and appended to.
+-- @param src list from which values will be inserted.
+-- @param start Start index on src. defaults to 1
+-- @param finish Final index on src. defaults to #src
+-- @returns dst
+function vim.list_extend(dst, src, start, finish)
+ vim.validate {
+ dst = {dst, 't'};
+ src = {src, 't'};
+ start = {start, 'n', true};
+ finish = {finish, 'n', true};
+ }
+ for i = start or 1, finish or #src do
+ table.insert(dst, src[i])
end
return dst
end