aboutsummaryrefslogtreecommitdiff
path: root/runtime/lua/vim/lsp/buf.lua
diff options
context:
space:
mode:
authorAshkan Kiani <ashkan.k.kiani@gmail.com>2019-11-21 15:34:28 -0800
committerAshkan Kiani <ashkan.k.kiani@gmail.com>2019-11-21 15:34:28 -0800
commitda07e71b189a51008a93783b5f7894dc495c277e (patch)
tree878fcdb1ceb44536f20fc688d277ab653dc8dd99 /runtime/lua/vim/lsp/buf.lua
parentb4ca07896cbf29ac4ca2373f681930be3ac3b882 (diff)
downloadrneovim-da07e71b189a51008a93783b5f7894dc495c277e.tar.gz
rneovim-da07e71b189a51008a93783b5f7894dc495c277e.tar.bz2
rneovim-da07e71b189a51008a93783b5f7894dc495c277e.zip
Account for character length in jump position.
Diffstat (limited to 'runtime/lua/vim/lsp/buf.lua')
-rw-r--r--runtime/lua/vim/lsp/buf.lua10
1 files changed, 6 insertions, 4 deletions
diff --git a/runtime/lua/vim/lsp/buf.lua b/runtime/lua/vim/lsp/buf.lua
index dbc141a906..0b4ac6ca9b 100644
--- a/runtime/lua/vim/lsp/buf.lua
+++ b/runtime/lua/vim/lsp/buf.lua
@@ -134,12 +134,14 @@ local function handle_location(result)
err_message('[LSP] Could not find a valid location')
return
end
- local result_file = vim.uri_to_fname(result.uri)
- local bufnr = vfn.bufadd(result_file)
+ local bufnr = vim.uri_to_bufnr(result.uri)
update_tagstack()
api.nvim_set_current_buf(bufnr)
- local start = result.range.start
- api.nvim_win_set_cursor(0, {start.line + 1, start.character})
+ local row = result.range.start.line
+ local col = result.range.start.character
+ local line = api.nvim_buf_get_lines(0, row, row+1, true)[1]
+ col = #line:sub(1, col)
+ api.nvim_win_set_cursor(0, {row + 1, col})
return true
end
local function location_callback(_, method, result)