mirror of
				https://github.com/neovim/neovim.git
				synced 2025-10-26 12:27:24 +00:00 
			
		
		
		
	Fix encoding translation in other places.
This commit is contained in:
		| @@ -862,7 +862,7 @@ function lsp.omnifunc(findstart, base) | |||||||
|       position = { |       position = { | ||||||
|         -- 0-indexed for both line and character |         -- 0-indexed for both line and character | ||||||
|         line = pos[1] - 1, |         line = pos[1] - 1, | ||||||
|         character = pos[2], |         character = vim.str_utfindex(line, pos[2]), | ||||||
|       }; |       }; | ||||||
|       -- The completion context. This is only available if the client specifies |       -- The completion context. This is only available if the client specifies | ||||||
|       -- to send this using `ClientCapabilities.textDocument.completion.contextSupport === true` |       -- to send this using `ClientCapabilities.textDocument.completion.contextSupport === true` | ||||||
|   | |||||||
| @@ -2,8 +2,8 @@ local validate = vim.validate | |||||||
| local api = vim.api | local api = vim.api | ||||||
| local vfn = vim.fn | local vfn = vim.fn | ||||||
| local util = require 'vim.lsp.util' | local util = require 'vim.lsp.util' | ||||||
| local protocol = require 'vim.lsp.protocol' |  | ||||||
| local log = require 'vim.lsp.log' | local log = require 'vim.lsp.log' | ||||||
|  | local list_extend = vim.list_extend | ||||||
|  |  | ||||||
| local M = {} | local M = {} | ||||||
|  |  | ||||||
| @@ -192,7 +192,7 @@ local function signature_help_to_preview_contents(input) | |||||||
|   if not signature then |   if not signature then | ||||||
|     return |     return | ||||||
|   end |   end | ||||||
|   vim.list_extend(contents, vim.split(signature.label, '\n', true)) |   list_extend(contents, vim.split(signature.label, '\n', true)) | ||||||
|   if signature.documentation then |   if signature.documentation then | ||||||
|     util.convert_input_to_markdown_lines(signature.documentation, contents) |     util.convert_input_to_markdown_lines(signature.documentation, contents) | ||||||
|   end |   end | ||||||
| @@ -287,13 +287,23 @@ function M.range_formatting(options, start_pos, end_pos) | |||||||
|     tabSize = api.nvim_buf_get_option(0, 'tabstop'); |     tabSize = api.nvim_buf_get_option(0, 'tabstop'); | ||||||
|     insertSpaces = api.nvim_buf_get_option(0, 'expandtab'); |     insertSpaces = api.nvim_buf_get_option(0, 'expandtab'); | ||||||
|   }) |   }) | ||||||
|   start_pos = start_pos or vim.api.nvim_buf_get_mark(0, '<') |   local A = list_extend({}, start_pos or api.nvim_buf_get_mark(0, '<')) | ||||||
|   end_pos = end_pos or vim.api.nvim_buf_get_mark(0, '>') |   local B = list_extend({}, end_pos or api.nvim_buf_get_mark(0, '>')) | ||||||
|  |   -- convert to 0-index | ||||||
|  |   A[1] = A[1] - 1 | ||||||
|  |   B[1] = B[1] - 1 | ||||||
|  |   -- account for encoding. | ||||||
|  |   if A[2] > 0 then | ||||||
|  |     A = {A[1], util.character_offset(0, unpack(A))} | ||||||
|  |   end | ||||||
|  |   if B[2] > 0 then | ||||||
|  |     B = {B[1], util.character_offset(0, unpack(B))} | ||||||
|  |   end | ||||||
|   local params = { |   local params = { | ||||||
|     textDocument = { uri = vim.uri_from_bufnr(0) }; |     textDocument = { uri = vim.uri_from_bufnr(0) }; | ||||||
|     range = { |     range = { | ||||||
|       start = { line = start_pos[1]; character = start_pos[2]; }; |       start = { line = A[1]; character = A[2]; }; | ||||||
|       ["end"] = { line = end_pos[1]; character = end_pos[2]; }; |       ["end"] = { line = B[1]; character = B[2]; }; | ||||||
|     }; |     }; | ||||||
|     options = options; |     options = options; | ||||||
|   } |   } | ||||||
|   | |||||||
| @@ -649,6 +649,13 @@ function M.make_position_params() | |||||||
|   } |   } | ||||||
| end | end | ||||||
|  |  | ||||||
|  | -- @param buf buffer handle or 0 for current. | ||||||
|  | -- @param row 0-indexed line | ||||||
|  | -- @param col 0-indexed byte offset in line | ||||||
|  | function M.character_offset(buf, row, col) | ||||||
|  |   local line = api.nvim_buf_get_lines(buf, row, row+1, true)[1] | ||||||
|  |   return vim.str_utfindex(line, col) | ||||||
|  | end | ||||||
|  |  | ||||||
| return M | return M | ||||||
| -- vim:sw=2 ts=2 et | -- vim:sw=2 ts=2 et | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Ashkan Kiani
					Ashkan Kiani