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 ff7a105..3cef9ed 100644 --- a/docs/release-notes/rl-0.5.adoc +++ b/docs/release-notes/rl-0.5.adoc @@ -35,3 +35,5 @@ https://github.com/notashelf[notashelf]: * Addeed nvim-navic integration for catppuccin theme * Fixed mismatching zig language description + +* Added lsp_lines plugin for showing diagnostic messages 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/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]"; + }; + }; +}