aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--lsp/clangd.lua10
1 files changed, 10 insertions, 0 deletions
diff --git a/lsp/clangd.lua b/lsp/clangd.lua
index 062b4777..d0f01d3f 100644
--- a/lsp/clangd.lua
+++ b/lsp/clangd.lua
@@ -57,6 +57,9 @@ local function symbol_info()
end, bufnr)
end
+---@class ClangdInitializeResult: lsp.InitializeResult
+---@field offsetEncoding? string
+
return {
cmd = { 'clangd' },
filetypes = { 'c', 'cpp', 'objc', 'objcpp', 'cuda', 'proto' },
@@ -77,6 +80,13 @@ return {
},
offsetEncoding = { 'utf-8', 'utf-16' },
},
+ ---@param client vim.lsp.Client
+ ---@param init_result ClangdInitializeResult
+ on_init = function(client, init_result)
+ if init_result.offsetEncoding then
+ client.offset_encoding = init_result.offsetEncoding
+ end
+ end,
on_attach = function()
vim.api.nvim_buf_create_user_command(0, 'LspClangdSwitchSourceHeader', function()
switch_source_header(0)