diff options
author | Ashkan Kiani <ashkan.k.kiani@gmail.com> | 2019-11-21 15:34:28 -0800 |
---|---|---|
committer | Ashkan Kiani <ashkan.k.kiani@gmail.com> | 2019-11-21 15:34:28 -0800 |
commit | da07e71b189a51008a93783b5f7894dc495c277e (patch) | |
tree | 878fcdb1ceb44536f20fc688d277ab653dc8dd99 /runtime/lua/vim/lsp/buf.lua | |
parent | b4ca07896cbf29ac4ca2373f681930be3ac3b882 (diff) | |
download | rneovim-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.lua | 10 |
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) |