local lsp_attach = require "pi.lsp.attach" local lsp_flags = require "pi.lsp.flags" return function(ops) local capabilities = require("blink.cmp").get_lsp_capabilities(vim.lsp.protocol.make_client_capabilities()) local config = { on_attach = lsp_attach, flags = lsp_flags, filetypes = { "c", "cpp", "objc", "objcpp", "cuda", "proto" }, capabilities = vim.tbl_deep_extend("force", capabilities, { offsetEncoding = { "utf-16" }, general = { positionEncodings = { "utf-16" }, }, }), } if vim.fn.executable "clangd" == 1 then config.cmd = { "clangd" } end return vim.tbl_extend("force", config, ops) end