aboutsummaryrefslogtreecommitdiffstats
path: root/init.lua
diff options
context:
space:
mode:
authorFilip Wandzio <contact@philw.dev>2025-10-12 13:56:19 +0200
committerFilip Wandzio <contact@philw.dev>2025-10-12 13:56:19 +0200
commit1cebfd8c89a469abc06420293f879427337a138e (patch)
tree5c8455930f7080b49240285033e497498ad3a29e /init.lua
parentb2f30008cdd0c959100e1cb8dc6cbe47cea1b408 (diff)
downloadneovim-1cebfd8c89a469abc06420293f879427337a138e.tar.gz
neovim-1cebfd8c89a469abc06420293f879427337a138e.zip
Ensure nvim v3.0.0 LSP api compliance
Diffstat (limited to 'init.lua')
-rw-r--r--init.lua53
1 files changed, 42 insertions, 11 deletions
diff --git a/init.lua b/init.lua
index b42faf2..9942d1b 100644
--- a/init.lua
+++ b/init.lua
@@ -241,28 +241,59 @@ require("lazy").setup(
241local lsp_servers = { 241local lsp_servers = {
242 clangd = {filetypes = {"c", "h"}}, 242 clangd = {filetypes = {"c", "h"}},
243 svelte = {filetypes = {"svelte"}}, 243 svelte = {filetypes = {"svelte"}},
244 ts_ls = {filetypes = {"typescript", "typescriptreact", "javascript", "javascriptreact"}}, 244 ts_ls = {filetypes = {
245 rust_analyzer = {filetypes = {"rust"}} 245 "typescript",
246 "typescriptreact",
247 "javascript",
248 "javascriptreact"}
249 },
250 rust_analyzer = {
251 filetypes = {"rust"},
252 imports = {
253 granularity = {
254 group = "module",
255 },
256 prefix = "self",
257 },
258 cargo = {
259 buildScripts = {
260 enable = true,
261 },
262 },
263 procMacro = {
264 enable = true
265 },
266 }
246} 267}
247 268
248local function server_maps(opts) 269local function server_maps(opts)
249 local buf = opts.buffer 270 local buf = opts.buffer
250end 271end
251 272
273
274
275local capabilities = vim.lsp.protocol.make_client_capabilities()
276capabilities = require("coq").lsp_ensure_capabilities(capabilities)
277
252for server_name, config in pairs(lsp_servers) do 278for server_name, config in pairs(lsp_servers) do
253 require("lspconfig")[server_name].setup( 279 vim.api.nvim_create_autocmd("FileType", {
254 coq.lsp_ensure_capabilities( 280 pattern = config.filetypes,
255 { 281 callback = function()
282 vim.lsp.start({
283 name = server_name,
284 cmd = vim.lsp.get_server_capabilities(server_name).cmd or { server_name },
285 root_dir = vim.fs.dirname(vim.api.nvim_buf_get_name(0)),
286 capabilities = capabilities,
287 settings = config.settings,
256 on_attach = function(client, bufnr) 288 on_attach = function(client, bufnr)
257 server_maps({buffer = bufnr}) 289 server_maps({buffer = bufnr})
258 end, 290 end
259 filetypes = config.filetypes, 291 })
260 settings = config.settings or {} 292 end
261 } 293 })
262 )
263 )
264end 294end
265 295
296
266set_highlights() 297set_highlights()
267 298
268vim.g.mapleader = " " 299vim.g.mapleader = " "