diff --git a/configuration.nix b/configuration.nix index 5aaba59..f8fcafe 100644 --- a/configuration.nix +++ b/configuration.nix @@ -34,9 +34,10 @@ inputs: let lspkind.enable = false; lightbulb.enable = true; lspsaga.enable = false; - nvimCodeActionMenu.enable = true; + nvimCodeActionMenu.enable = isMaximal; trouble.enable = true; lspSignature.enable = true; + lsplines.enable = isMaximal; }; vim.debugger = { diff --git a/docs/release-notes/rl-0.5.adoc b/docs/release-notes/rl-0.5.adoc index 84d9843..f6416fb 100644 --- a/docs/release-notes/rl-0.5.adoc +++ b/docs/release-notes/rl-0.5.adoc @@ -37,3 +37,7 @@ https://github.com/notashelf[notashelf]: * Fixed mismatching zig language description * Added support for `statix` and `deadnix` through <> + +* Added lsp_lines plugin for showing diagnostic messages + +* Added a configuration option for choosing the leader key diff --git a/flake.lock b/flake.lock index 9c14e84..078c43f 100644 --- a/flake.lock +++ b/flake.lock @@ -613,6 +613,22 @@ "type": "github" } }, + "lsp-lines": { + "flake": false, + "locked": { + "lastModified": 1684163755, + "narHash": "sha256-Zhf2xitLWtE+dWqhvWtLM1K1WdtBvkqqoRLSYIO42oY=", + "owner": "~whynothugo", + "repo": "lsp_lines.nvim", + "rev": "f53af96d4789eef39a082dbcce078d2bfc384ece", + "type": "sourcehut" + }, + "original": { + "owner": "~whynothugo", + "repo": "lsp_lines.nvim", + "type": "sourcehut" + } + }, "lsp-signature": { "flake": false, "locked": { @@ -1421,6 +1437,7 @@ "indent-blankline": "indent-blankline", "kommentary": "kommentary", "leap-nvim": "leap-nvim", + "lsp-lines": "lsp-lines", "lsp-signature": "lsp-signature", "lspkind": "lspkind", "lspsaga": "lspsaga", diff --git a/flake.nix b/flake.nix index 4a81e24..957010b 100644 --- a/flake.nix +++ b/flake.nix @@ -108,6 +108,11 @@ flake = false; }; + lsp-lines = { + url = "sourcehut:~whynothugo/lsp_lines.nvim"; + flake = false; + }; + null-ls = { url = "github:jose-elias-alvarez/null-ls.nvim"; flake = false; diff --git a/lib/types/plugins.nix b/lib/types/plugins.nix index ccbde55..18ad20c 100644 --- a/lib/types/plugins.nix +++ b/lib/types/plugins.nix @@ -90,6 +90,7 @@ with lib; let "nvim-navic" "nvim-navbuddy" "copilot-cmp" + "lsp-lines" ]; # You can either use the name of the plugin or a package. pluginType = with types; diff --git a/modules/basic/config.nix b/modules/basic/config.nix index d510505..6e4237c 100644 --- a/modules/basic/config.nix +++ b/modules/basic/config.nix @@ -142,6 +142,9 @@ in { set spell set spelllang=${toString cfg.spellChecking.language} ''} + ${optionalString (cfg.leaderKey != null) '' + let mapleader = "${toString cfg.leaderKey}" + ''} ''; }; } diff --git a/modules/basic/module.nix b/modules/basic/module.nix index ade7d10..3f8e49a 100644 --- a/modules/basic/module.nix +++ b/modules/basic/module.nix @@ -31,6 +31,12 @@ with builtins; { }; }; + leaderKey = mkOption { + type = with types; nullOr str; + default = null; + description = "The leader key to be used internally"; + }; + colourTerm = mkOption { type = types.bool; default = true; diff --git a/modules/lsp/default.nix b/modules/lsp/default.nix index 7f13e40..e39e33a 100644 --- a/modules/lsp/default.nix +++ b/modules/lsp/default.nix @@ -15,5 +15,6 @@ _: { ./lsp-signature ./lightbulb ./lspkind + ./lsplines ]; } diff --git a/modules/lsp/lsplines/config.nix b/modules/lsp/lsplines/config.nix new file mode 100644 index 0000000..8fe46d3 --- /dev/null +++ b/modules/lsp/lsplines/config.nix @@ -0,0 +1,20 @@ +{ + config, + lib, + ... +}: +with lib; +with builtins; let + cfg = config.vim.lsp; +in { + config = mkIf (cfg.enable && cfg.lsplines.enable) { + vim.startPlugins = ["lsp-lines"]; + vim.luaConfigRC.lsplines = nvim.dag.entryAfter ["lspconfig"] '' + require("lsp_lines").setup() + + vim.diagnostic.config({ + virtual_text = false, + }) + ''; + }; +} diff --git a/modules/lsp/lsplines/default.nix b/modules/lsp/lsplines/default.nix new file mode 100644 index 0000000..fa50897 --- /dev/null +++ b/modules/lsp/lsplines/default.nix @@ -0,0 +1,6 @@ +_: { + imports = [ + ./config.nix + ./lsplines.nix + ]; +} diff --git a/modules/lsp/lsplines/lsplines.nix b/modules/lsp/lsplines/lsplines.nix new file mode 100644 index 0000000..2b3eec4 --- /dev/null +++ b/modules/lsp/lsplines/lsplines.nix @@ -0,0 +1,9 @@ +{lib, ...}: +with lib; +with builtins; { + options.vim.lsp = { + lsplines = { + enable = mkEnableOption "diagnostics using virtual lines on top of the real line of code. [lsp_lines]"; + }; + }; +}