From ba1f33f0cd41c8bba9d433218cf27c1f0f8f637b Mon Sep 17 00:00:00 2001 From: uttarayan21 Date: Sun, 24 Mar 2024 13:36:13 +0530 Subject: [PATCH] fix(lsp): Fix issues with double config for rust-analyzer --- common/nvim.nix | 44 ++++++++++++++++++++++++++++---------------- overlays.nix | 10 ++++++++++ 2 files changed, 38 insertions(+), 16 deletions(-) diff --git a/common/nvim.nix b/common/nvim.nix index f7bde12b..27de7510 100644 --- a/common/nvim.nix +++ b/common/nvim.nix @@ -110,7 +110,7 @@ in { */ '' function(args) - require('luasnip').lsp_expand(args.body) + require('luasnip').lsp_expand(args.body) end ''; }; @@ -151,6 +151,10 @@ in { if client.server_capabilities.inlayHintProvider then vim.lsp.inlay_hint.enable(bufnr, true) end + client.server_capabilities.textDocument.foldingRange = { + dynamicRegistration = false, + lineFoldingOnly = true + } end ''; settings = @@ -217,6 +221,7 @@ in { pkgs.vimPlugins.nvim-treesitter.allGrammars ++ (with pkgs.tree-sitter-grammars; [ tree-sitter-just + tree-sitter-nu tree-sitter-norg-meta ]); }; @@ -274,6 +279,7 @@ in { plenary-nvim pkgs.tree-sitter-grammars.tree-sitter-just + pkgs.tree-sitter-grammars.tree-sitter-nu # Testing neotest @@ -295,8 +301,8 @@ in { completeopt = "menu,menuone,popup,noselect"; undodir = "${config.xdg.cacheHome}/undodir"; undofile = true; + viewoptions = "cursor,folds"; }; - globals = { mapleader = " "; }; @@ -355,13 +361,13 @@ in { } { event = ["BufWinLeave"]; - pattern = "*.*"; - command = "mkview"; + pattern = "?*"; + command = "mkview!"; } { event = ["BufWinEnter"]; - pattern = "*.*"; - command = "silent loadview"; + pattern = "?*"; + command = "silent! loadview!"; } ]; @@ -390,13 +396,19 @@ in { end end - catcher(function() - require'neotest'.setup({ - adapters = { - require('rustaceanvim.neotest'), - } - }) - end) + do + function setup() + require'neotest'.setup({ + adapters = { + require('rustaceanvim.neotest'), + } + }) + end + success, output = pcall(setup) + if not success then + print("Failed to setup neotest: " .. output) + end + end do function setup() @@ -427,11 +439,11 @@ in { catcher(require('crates').setup) catcher(require('outline').setup) - require 'FTerm'.setup({ + require('FTerm').setup({ border = 'single', dimensions = { height = 0.99, - width = 0.99, + width = 0.95, }, cmd = "${pkgs.fish}/bin/fish", blend = 10, @@ -500,7 +512,7 @@ in { lineFoldingOnly = true } -- local language_servers = require("lspconfig").util.available_servers() -- or list servers manually like {'gopls', 'clangd'} - local language_servers = {"rust_analyzer"}; + local language_servers = {"nil_ls"}; for _, ls in ipairs(language_servers) do require('lspconfig')[ls].setup({ capabilities = capabilities diff --git a/overlays.nix b/overlays.nix index 2f3c08c2..ef0b50d8 100644 --- a/overlays.nix +++ b/overlays.nix @@ -207,6 +207,16 @@ sha256 = "sha256-OBlXwWriE6cdGn0dhpfSMnJ6Rx1Z7KcXehaamdi/TxQ"; }; }; + tree-sitter-nu = final.pkgs.tree-sitter.buildGrammar { + language = "nu"; + version = "0.0.1"; + src = final.pkgs.fetchFromGitHub { + owner = "nushell"; + repo = "tree-sitter-nu"; + rev = "c5b7816043992b1cdc1462a889bc74dc08576fa6"; + sha256 = "sha256-P+ixE359fAW7R5UJLwvMsmju7UFmJw5SN+kbMEw7Kz0="; + }; + }; }; }; rest-nvim-overlay = final: prev: let