From f9109b6646510fed0ede3a03681c6678efc0f585 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Mon, 27 Feb 2023 23:48:21 +0100 Subject: [PATCH 1/2] nvim: add lspsage --- modules/programs/nvim/default.nix | 1 + modules/programs/nvim/init.lua | 22 ++++++++++++++-------- 2 files changed, 15 insertions(+), 8 deletions(-) diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index 1d29b71..3ec5a1c 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -72,6 +72,7 @@ in gitsigns-nvim lsp_lines-nvim lspkind-nvim + lspsaga-nvim-original lualine-lsp-progress lualine-nvim luasnip diff --git a/modules/programs/nvim/init.lua b/modules/programs/nvim/init.lua index 078cbd2..de5e1cf 100644 --- a/modules/programs/nvim/init.lua +++ b/modules/programs/nvim/init.lua @@ -259,18 +259,24 @@ vim.diagnostic.config({ -- The nvim-cmp almost supports LSP's capabilities so You should advertise it to LSP servers.. local capabilities = require("cmp_nvim_lsp").default_capabilities() +require("lspsaga").setup({ + symbol_in_winbar = { + enable = false, + }, +}) + local lspconfig = require("lspconfig") local on_attach_def = function(_, bufnr) wk.register({ - K = { vim.lsp.buf.hover, "show info" }, + K = { "Lspsaga hover_doc ++quiet", "show info" }, [""] = { l = { name = "lsp", - d = { vim.diagnostic.open_float, "open diagnostic window" }, - n = { vim.diagnostic.goto_next, "next error" }, - p = { vim.diagnostic.goto_prev, "prev error" }, - c = { vim.lsp.buf.code_action, "code action" }, - r = { vim.lsp.buf.rename, "rename" }, + d = { "Lspsaga show_cursor_diagnostics", "open diagnostic window" }, + n = { "Lspsaga diagnostic_jump_next", "next error" }, + p = { "Lspsaga diagnostic_jump_prev", "prev error" }, + c = { "Lspsaga code_action", "code action" }, + r = { "Lspsaga rename", "rename" }, f = { function() vim.lsp.buf.format({ async = true }) @@ -298,10 +304,10 @@ local on_attach_def = function(_, bufnr) g = { name = "goto", r = { vim.lsp.buf.references, "references" }, - d = { vim.lsp.buf.definition, "definition" }, + d = { "Lspsaga peek_definition", "definition" }, D = { vim.lsp.buf.declaration, "declaration" }, i = { vim.lsp.buf.implementation, "implementation" }, - t = { vim.lsp.buf.type_definition, "type defininition" }, + t = { "Lspsaga peek_type_definition", "type defininition" }, }, }, { buffer = bufnr, silent = true }) end From 17085b4a1b557ae12bdc9c1fb63cc0ff46c4d1ec Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Mon, 27 Feb 2023 23:53:35 +0100 Subject: [PATCH 2/2] nvim: use unstable lspsaga --- flake.lock | 17 +++++++++++++++++ flake.nix | 15 ++++++++++----- modules/programs/nvim/init.lua | 5 ++--- overlays/default.nix | 5 +++++ 4 files changed, 34 insertions(+), 8 deletions(-) diff --git a/flake.lock b/flake.lock index 18b52d9..ed44f3c 100644 --- a/flake.lock +++ b/flake.lock @@ -512,6 +512,22 @@ "type": "github" } }, + "lspsaga-nvim": { + "flake": false, + "locked": { + "lastModified": 1677497543, + "narHash": "sha256-xFba/hXqc0qyJH9Hd9XtXteXIqjJnIgYIy8Y5l9QPQQ=", + "owner": "glepnir", + "repo": "lspsaga.nvim", + "rev": "291629b704ba8fdd0134ef4204fb118050bca363", + "type": "github" + }, + "original": { + "owner": "glepnir", + "repo": "lspsaga.nvim", + "type": "github" + } + }, "master": { "locked": { "lastModified": 1677259386, @@ -838,6 +854,7 @@ "hypr-contrib": "hypr-contrib", "hyprland": "hyprland", "hyprpaper": "hyprpaper", + "lspsaga-nvim": "lspsaga-nvim", "master": "master", "neovim": "neovim", "nil": "nil", diff --git a/flake.nix b/flake.nix index 6a8b7d5..e6be918 100644 --- a/flake.nix +++ b/flake.nix @@ -77,17 +77,22 @@ flake = false; }; + copilot-lua = { + url = "github:zbirenbaum/copilot.lua"; + flake = false; + }; + + lspsaga-nvim = { + url = "github:glepnir/lspsaga.nvim"; + flake = false; + }; + attic = { url = "github:zhaofengli/attic"; inputs.nixpkgs.follows = "nixpkgs"; inputs.nixpkgs-stable.follows = "stable"; inputs.flake-utils.follows = "flake-utils"; }; - - copilot-lua = { - url = "github:zbirenbaum/copilot.lua"; - flake = false; - }; }; outputs = diff --git a/modules/programs/nvim/init.lua b/modules/programs/nvim/init.lua index 65153bf..0a47715 100644 --- a/modules/programs/nvim/init.lua +++ b/modules/programs/nvim/init.lua @@ -277,6 +277,7 @@ local on_attach_def = function(_, bufnr) p = { "Lspsaga diagnostic_jump_prev", "prev error" }, c = { "Lspsaga code_action", "code action" }, r = { "Lspsaga rename", "rename" }, + i = { "Lspsaga hover_doc ++keep", "show info (sticky)" }, f = { function() vim.lsp.buf.format({ async = true }) @@ -303,11 +304,9 @@ local on_attach_def = function(_, bufnr) }, g = { name = "goto", - r = { vim.lsp.buf.references, "references" }, d = { "Lspsaga peek_definition", "definition" }, - D = { vim.lsp.buf.declaration, "declaration" }, - i = { vim.lsp.buf.implementation, "implementation" }, t = { "Lspsaga peek_type_definition", "type defininition" }, + h = { "Lspsaga lsp_finder", "lsp finder" }, }, }, { buffer = bufnr, silent = true }) end diff --git a/overlays/default.nix b/overlays/default.nix index 960d029..8d802d2 100644 --- a/overlays/default.nix +++ b/overlays/default.nix @@ -49,6 +49,11 @@ in version = mkVersionInput inputs.copilot-lua; src = inputs.copilot-lua; }); + + lspsaga-nvim-original = prev.vimPlugins.lspsaga-nvim-original.overrideAttrs (old: { + version = mkVersionInput inputs.lspsaga-nvim; + src = inputs.lspsaga-nvim; + }); }; master = import inputs.master {