From 55e3a75217d95439a41a7285ccb922d7fe97f586 Mon Sep 17 00:00:00 2001 From: Yi Ming Date: Mon, 7 Jul 2025 11:39:05 +0800 Subject: [PATCH] fix(lsp): convert the encoded position to line byte (#34824) --- runtime/lua/vim/lsp/document_color.lua | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/runtime/lua/vim/lsp/document_color.lua b/runtime/lua/vim/lsp/document_color.lua index ff1b557b5e..7ac14b88b9 100644 --- a/runtime/lua/vim/lsp/document_color.lua +++ b/runtime/lua/vim/lsp/document_color.lua @@ -138,12 +138,13 @@ local function on_document_color(err, result, ctx) local hl_infos = {} --- @type vim.lsp.document_color.HighlightInfo[] local style = document_color_opts.style + local position_encoding = assert(lsp.get_client_by_id(client_id)).offset_encoding for _, res in ipairs(result) do local range = { res.range.start.line, - res.range.start.character, + util._get_line_byte_from_position(bufnr, res.range.start, position_encoding), res.range['end'].line, - res.range['end'].character, + util._get_line_byte_from_position(bufnr, res.range['end'], position_encoding), } local hex_code = get_hex_code(res.color) local hl_info = { range = range, hex_code = hex_code }