Add vim.uri_to_bufnr

This commit is contained in:
Ashkan Kiani
2019-11-20 11:39:54 -08:00
parent 0904ffe387
commit 568b454088
2 changed files with 8 additions and 7 deletions

View File

@@ -62,14 +62,10 @@ builtin_callbacks['textDocument/rename'] = function(_, _, result)
util.workspace_apply_workspace_edit(result) util.workspace_apply_workspace_edit(result)
end end
local function uri_to_bufnr(uri)
return vim.fn.bufadd((vim.uri_to_fname(uri)))
end
builtin_callbacks['textDocument/publishDiagnostics'] = function(_, _, result) builtin_callbacks['textDocument/publishDiagnostics'] = function(_, _, result)
if not result then return end if not result then return end
local uri = result.uri local uri = result.uri
local bufnr = uri_to_bufnr(uri) local bufnr = vim.uri_to_bufnr(uri)
if not bufnr then if not bufnr then
api.nvim_err_writeln(string.format("LSP.publishDiagnostics: Couldn't find buffer for %s", uri)) api.nvim_err_writeln(string.format("LSP.publishDiagnostics: Couldn't find buffer for %s", uri))
return return
@@ -154,7 +150,7 @@ builtin_callbacks['textDocument/peekDefinition'] = function(_, _, result)
if result == nil or vim.tbl_isempty(result) then return end if result == nil or vim.tbl_isempty(result) then return end
-- TODO(ashkan) what to do with multiple locations? -- TODO(ashkan) what to do with multiple locations?
result = result[1] result = result[1]
local bufnr = uri_to_bufnr(result.uri) local bufnr = vim.uri_to_bufnr(result.uri)
assert(bufnr) assert(bufnr)
local start = result.range.start local start = result.range.start
local finish = result.range["end"] local finish = result.range["end"]

View File

@@ -77,13 +77,18 @@ local function uri_to_fname(uri)
else else
uri = uri:gsub('^file://', '') uri = uri:gsub('^file://', '')
end end
return uri_decode(uri) return uri_decode(uri)
end 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 { return {
uri_from_fname = uri_from_fname, uri_from_fname = uri_from_fname,
uri_from_bufnr = uri_from_bufnr, uri_from_bufnr = uri_from_bufnr,
uri_to_fname = uri_to_fname, uri_to_fname = uri_to_fname,
uri_to_bufnr = uri_to_bufnr,
} }
-- vim:sw=2 ts=2 et -- vim:sw=2 ts=2 et