aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--runtime/lua/vim/lsp/builtin_callbacks.lua8
-rw-r--r--runtime/lua/vim/uri.lua7
2 files changed, 8 insertions, 7 deletions
diff --git a/runtime/lua/vim/lsp/builtin_callbacks.lua b/runtime/lua/vim/lsp/builtin_callbacks.lua
index 717fda395e..a5e1162d02 100644
--- a/runtime/lua/vim/lsp/builtin_callbacks.lua
+++ b/runtime/lua/vim/lsp/builtin_callbacks.lua
@@ -62,14 +62,10 @@ builtin_callbacks['textDocument/rename'] = function(_, _, result)
util.workspace_apply_workspace_edit(result)
end
-local function uri_to_bufnr(uri)
- return vim.fn.bufadd((vim.uri_to_fname(uri)))
-end
-
builtin_callbacks['textDocument/publishDiagnostics'] = function(_, _, result)
if not result then return end
local uri = result.uri
- local bufnr = uri_to_bufnr(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))
return
@@ -154,7 +150,7 @@ builtin_callbacks['textDocument/peekDefinition'] = function(_, _, result)
if result == nil or vim.tbl_isempty(result) then return end
-- TODO(ashkan) what to do with multiple locations?
result = result[1]
- local bufnr = uri_to_bufnr(result.uri)
+ local bufnr = vim.uri_to_bufnr(result.uri)
assert(bufnr)
local start = result.range.start
local finish = result.range["end"]
diff --git a/runtime/lua/vim/uri.lua b/runtime/lua/vim/uri.lua
index 0a6e0fcb97..1065f84f4c 100644
--- a/runtime/lua/vim/uri.lua
+++ b/runtime/lua/vim/uri.lua
@@ -77,13 +77,18 @@ local function uri_to_fname(uri)
else
uri = uri:gsub('^file://', '')
end
-
return uri_decode(uri)
end
+-- Return or create a buffer for a uri.
+local function uri_to_bufnr(uri)
+ return vim.fn.bufadd((uri_to_fname(uri)))
+end
+
return {
uri_from_fname = uri_from_fname,
uri_from_bufnr = uri_from_bufnr,
uri_to_fname = uri_to_fname,
+ uri_to_bufnr = uri_to_bufnr,
}
-- vim:sw=2 ts=2 et