From 5596c21e7f7209216591e0f4cc743d6f1cb504d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Wed, 6 Sep 2023 08:35:43 +0200 Subject: [PATCH 01/14] feat!: remove unused comma --- modules/profiles/base.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/profiles/base.nix b/modules/profiles/base.nix index aefaac4..830069d 100644 --- a/modules/profiles/base.nix +++ b/modules/profiles/base.nix @@ -149,7 +149,6 @@ in # nix (nom-system-command "nixos-boot" "sudo nixos-rebuild boot --flake ~/.dotfiles") (nom-system-command "nixos-switch" "sudo nixos-rebuild switch --flake ~/.dotfiles") - comma manix nix-index nix-output-monitor From 97320fbec17c1b50e702a12f7dfce9a944488606 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Wed, 6 Sep 2023 08:36:16 +0200 Subject: [PATCH 02/14] feat: set nixpkgs env variable --- modules/programs/nix.nix | 2 ++ 1 file changed, 2 insertions(+) diff --git a/modules/programs/nix.nix b/modules/programs/nix.nix index 39b47a2..c358dbc 100644 --- a/modules/programs/nix.nix +++ b/modules/programs/nix.nix @@ -24,6 +24,8 @@ in }; config.nix = { + nixPath = [ "nixpkgs=${inputs.nixpkgs}" ]; + package = pkgs.nix-super; extraOptions = "experimental-features = nix-command flakes"; From 736249a74d5abe3594f7c9ad153709cde5cbc943 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Wed, 6 Sep 2023 08:43:03 +0200 Subject: [PATCH 03/14] feat(nvim): add actions-preview.nvim --- flake.lock | 17 +++++++++++++++++ flake.nix | 3 +++ modules/programs/nvim/plugins/default.nix | 1 + .../programs/nvim/plugins/nvim-lspconfig.lua | 2 +- overlays/vimPlugins.nix | 6 ++++++ 5 files changed, 28 insertions(+), 1 deletion(-) diff --git a/flake.lock b/flake.lock index e03935e..6a8f108 100644 --- a/flake.lock +++ b/flake.lock @@ -1,5 +1,21 @@ { "nodes": { + "actions-preview-nvim": { + "flake": false, + "locked": { + "lastModified": 1692778077, + "narHash": "sha256-5HzyrYWGTdorG4JXMv0iQNj9EM702+8g7E18Oct1JiY=", + "owner": "aznhe21", + "repo": "actions-preview.nvim", + "rev": "5650c76abfb84d6498330dd045657ba630ecdbba", + "type": "github" + }, + "original": { + "owner": "aznhe21", + "repo": "actions-preview.nvim", + "type": "github" + } + }, "agenix": { "inputs": { "darwin": "darwin", @@ -840,6 +856,7 @@ }, "root": { "inputs": { + "actions-preview-nvim": "actions-preview-nvim", "agenix": "agenix", "arkenfox-userjs": "arkenfox-userjs", "asus-touchpad-numpad-driver": "asus-touchpad-numpad-driver", diff --git a/flake.nix b/flake.nix index 91ccddd..8cdd81d 100644 --- a/flake.nix +++ b/flake.nix @@ -47,6 +47,9 @@ hmts-nvim.flake = false; hmts-nvim.url = "github:calops/hmts.nvim"; + actions-preview-nvim.flake = false; + actions-preview-nvim.url = "github:aznhe21/actions-preview.nvim"; + # Hyprland hypr-contrib.url = "github:hyprwm/contrib"; hyprland.url = "github:hyprwm/Hyprland"; diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 8fcc9e1..6d22f61 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -148,6 +148,7 @@ with builtins; } ]; } + { plugin = actions-preview-nvim; } ]; } { diff --git a/modules/programs/nvim/plugins/nvim-lspconfig.lua b/modules/programs/nvim/plugins/nvim-lspconfig.lua index 0c44ceb..afb7ea0 100644 --- a/modules/programs/nvim/plugins/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/nvim-lspconfig.lua @@ -34,7 +34,7 @@ local on_attach_def = function(client, bufnr) l = { name = "lsp", d = { vim.diagnostic.open_float, "Open diagnostic window" }, - c = { vim.lsp.buf.code_action, "Code action" }, + c = { require("actions-preview").code_actions, "Code action", mode = { "v", "n" } }, r = { function() return ":IncRename " .. vim.fn.expand("") diff --git a/overlays/vimPlugins.nix b/overlays/vimPlugins.nix index eba8e54..75fa6b3 100644 --- a/overlays/vimPlugins.nix +++ b/overlays/vimPlugins.nix @@ -27,5 +27,11 @@ with lib.my; version = mkVersionInput inputs.hmts-nvim; src = inputs.hmts-nvim; }; + + actions-preview-nvim = prev.vimUtils.buildVimPluginFrom2Nix { + pname = "actions-preview-nvim"; + version = mkVersionInput inputs.actions-preview-nvim; + src = inputs.actions-preview-nvim; + }; }; } From c0112661ad4480ca4135235813d61e0d6b799b2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Wed, 6 Sep 2023 08:58:23 +0200 Subject: [PATCH 04/14] feat: update vimPlugins --- flake.lock | 36 +++++++++++++++++++++++++++--------- flake.nix | 9 ++++++--- overlays/vimPlugins.nix | 16 ++++++++++------ 3 files changed, 43 insertions(+), 18 deletions(-) diff --git a/flake.lock b/flake.lock index 6a8f108..e8e5f02 100644 --- a/flake.lock +++ b/flake.lock @@ -799,19 +799,20 @@ "type": "github" } }, - "nvim-treesitter-textsubjects": { + "nvim-treesitter": { "flake": false, "locked": { - "lastModified": 1691029837, - "narHash": "sha256-O57pMYtDR713ItAeUfdkcl2IfBLQcLEa2sb+AXhaqDs=", - "owner": "RRethy", - "repo": "nvim-treesitter-textsubjects", - "rev": "df75fcec548014f158cda6498ac38c4622c221e1", + "lastModified": 1691831669, + "narHash": "sha256-1Iuvq0hVQ7LyBYOkJ5d07NkwbGcR1K61ZZmAAA7ABGs=", + "owner": "nvim-treesitter", + "repo": "nvim-treesitter", + "rev": "63260da18bf273c76b8e2ea0db84eb901cab49ce", "type": "github" }, "original": { - "owner": "RRethy", - "repo": "nvim-treesitter-textsubjects", + "owner": "nvim-treesitter", + "ref": "v0.9.1", + "repo": "nvim-treesitter", "type": "github" } }, @@ -871,12 +872,13 @@ "nil": "nil", "nix-super": "nix-super", "nixpkgs": "nixpkgs_6", - "nvim-treesitter-textsubjects": "nvim-treesitter-textsubjects", + "nvim-treesitter": "nvim-treesitter", "pre-commit-hooks": "pre-commit-hooks", "rofi-wayland": "rofi-wayland", "smartcolumn-nvim": "smartcolumn-nvim", "stable": "stable", "telekasten-nvim": "telekasten-nvim", + "telescope-nvim": "telescope-nvim", "timers": "timers" } }, @@ -1028,6 +1030,22 @@ "type": "github" } }, + "telescope-nvim": { + "flake": false, + "locked": { + "lastModified": 1693850759, + "narHash": "sha256-309GezR93SVOD7/B8dDJIEidYziepc1s46CIRkhND1k=", + "owner": "nvim-telescope", + "repo": "telescope.nvim", + "rev": "20a37e43bb43c74c6091f9fea6551af0964ad45a", + "type": "github" + }, + "original": { + "owner": "nvim-telescope", + "repo": "telescope.nvim", + "type": "github" + } + }, "timers": { "inputs": { "naersk": "naersk", diff --git a/flake.nix b/flake.nix index 8cdd81d..5060b8c 100644 --- a/flake.nix +++ b/flake.nix @@ -35,15 +35,18 @@ # Neovim neovim-nightly-overlay.url = "github:nix-community/neovim-nightly-overlay"; - nvim-treesitter-textsubjects.flake = false; - nvim-treesitter-textsubjects.url = "github:RRethy/nvim-treesitter-textsubjects"; - smartcolumn-nvim.flake = false; smartcolumn-nvim.url = "github:m4xshen/smartcolumn.nvim"; telekasten-nvim.flake = false; telekasten-nvim.url = "github:renerocksai/telekasten.nvim"; + telescope-nvim.flake = false; + telescope-nvim.url = "github:nvim-telescope/telescope.nvim"; + + nvim-treesitter.flake = false; + nvim-treesitter.url = "github:nvim-treesitter/nvim-treesitter/v0.9.1"; # NOTE: to fix weird latest issues + hmts-nvim.flake = false; hmts-nvim.url = "github:calops/hmts.nvim"; diff --git a/overlays/vimPlugins.nix b/overlays/vimPlugins.nix index 75fa6b3..7cafdf5 100644 --- a/overlays/vimPlugins.nix +++ b/overlays/vimPlugins.nix @@ -4,12 +4,6 @@ _: prev: with lib.my; { vimPlugins = prev.vimPlugins // { - nvim-treesitter-textsubjects = prev.vimUtils.buildVimPluginFrom2Nix { - pname = "nvim-treesitter-textsubjects"; - version = mkVersionInput inputs.nvim-treesitter-textsubjects; - src = inputs.nvim-treesitter-textsubjects; - }; - smartcolumn-nvim = prev.vimUtils.buildVimPluginFrom2Nix { pname = "smartcolumn-nvim"; version = mkVersionInput inputs.smartcolumn-nvim; @@ -33,5 +27,15 @@ with lib.my; version = mkVersionInput inputs.actions-preview-nvim; src = inputs.actions-preview-nvim; }; + + telescope-nvim = prev.vimPlugins.telescope-nvim.overrideAttrs (_: { + version = mkVersionInput inputs.telescope-nvim; + src = inputs.telescope-nvim; + }); + + nvim-treesitter = prev.vimPlugins.nvim-treesitter.overrideAttrs (_: { + version = mkVersionInput inputs.nvim-treesitter; + src = inputs.nvim-treesitter; + }); }; } From dfa93f98dfea42fd2f190cdf4734014fec2d4d09 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Wed, 6 Sep 2023 09:19:32 +0200 Subject: [PATCH 05/14] Revert "feat(nvim): add coq-nvim" This reverts commit e2aff57d7236018257bc0a5ee6c14c2dfe9b3a04. --- modules/programs/nvim/plugins/codeium-vim.lua | 2 - modules/programs/nvim/plugins/coq-nvim.lua | 6 -- .../programs/nvim/plugins/coq-thirdparty.lua | 4 -- modules/programs/nvim/plugins/default.nix | 42 +++++++------ modules/programs/nvim/plugins/nvim-cmp.lua | 63 +++++++++++++++++++ .../programs/nvim/plugins/nvim-lspconfig.lua | 13 ++-- 6 files changed, 93 insertions(+), 37 deletions(-) delete mode 100644 modules/programs/nvim/plugins/codeium-vim.lua delete mode 100644 modules/programs/nvim/plugins/coq-nvim.lua delete mode 100644 modules/programs/nvim/plugins/coq-thirdparty.lua create mode 100644 modules/programs/nvim/plugins/nvim-cmp.lua diff --git a/modules/programs/nvim/plugins/codeium-vim.lua b/modules/programs/nvim/plugins/codeium-vim.lua deleted file mode 100644 index 72cd968..0000000 --- a/modules/programs/nvim/plugins/codeium-vim.lua +++ /dev/null @@ -1,2 +0,0 @@ --- dont show ghost text -vim.g.codeium_render = false diff --git a/modules/programs/nvim/plugins/coq-nvim.lua b/modules/programs/nvim/plugins/coq-nvim.lua deleted file mode 100644 index 63536a8..0000000 --- a/modules/programs/nvim/plugins/coq-nvim.lua +++ /dev/null @@ -1,6 +0,0 @@ -vim.g.coq_settings = { - auto_start = "shut-up", - keymap = { - jump_to_mark = "", - }, -} diff --git a/modules/programs/nvim/plugins/coq-thirdparty.lua b/modules/programs/nvim/plugins/coq-thirdparty.lua deleted file mode 100644 index ec1e05c..0000000 --- a/modules/programs/nvim/plugins/coq-thirdparty.lua +++ /dev/null @@ -1,4 +0,0 @@ -require("coq_3p")({ - { src = "orgmode", short_name = "ORG" }, - { src = "codeium", short_name = "COD" }, -}) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 6d22f61..7aa5eb0 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -74,6 +74,28 @@ with builtins; { plugin = nvim-web-devicons; } ]; } + { + plugin = nvim-cmp; + conf = readFile ./nvim-cmp.lua; + event = [ "InsertEnter" ]; + dependencies = [ + { plugin = cmp-async-path; } + { plugin = cmp-nvim-lsp; } + { plugin = cmp_luasnip; } + { + plugin = copilot-cmp; + dependencies = [ + { + plugin = copilot-lua; + conf = readFile ./copilot-lua.lua; + dependencies = [{ plugin = which-key-nvim; }]; + } + ]; + } + { plugin = friendly-snippets; } + { plugin = luasnip; } + ]; + } { plugin = todo-comments-nvim; event = [ "BufReadPost" "BufNewFile" ]; @@ -241,26 +263,6 @@ with builtins; plugin = markdown-preview-nvim; ft = [ "md" ]; } - { - plugin = coq_nvim; - event = [ "BufReadPost" "BufNewFile" ]; - init = builtins.readFile ./coq-nvim.lua; - dependencies = [ - { - plugin = coq-thirdparty; - conf = builtins.readFile ./coq-thirdparty.lua; - dependencies = [ - { - plugin = codeium-vim; - init = builtins.readFile ./codeium-vim.lua; - } - ]; - } - { - plugin = coq-artifacts; - } - ]; - } { plugin = nvim-surround; event = [ "BufReadPost" "BufNewFile" ]; diff --git a/modules/programs/nvim/plugins/nvim-cmp.lua b/modules/programs/nvim/plugins/nvim-cmp.lua new file mode 100644 index 0000000..0533cb7 --- /dev/null +++ b/modules/programs/nvim/plugins/nvim-cmp.lua @@ -0,0 +1,63 @@ +local cmp = require("cmp") +local luasnip = require("luasnip") +require("luasnip.loaders.from_vscode").lazy_load() +require("copilot_cmp").setup() + +local default_sources = { + { name = "async_path", priority = 1 }, + { name = "copilot", priority = 2 }, + { name = "luasnip", priority = 2 }, + { name = "nvim_lsp", priority = 3 }, +} + +cmp.setup({ + formatting = { + format = require("lspkind").cmp_format({ + mode = "symbol", -- show only symbol annotations + maxwidth = 50, -- prevent the popup from showing more than provided characters + ellipsis_char = "...", -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead + symbol_map = { + Copilot = "", + }, + }), + }, + snippet = { + -- REQUIRED - you must specify a snippet engine + expand = function(args) + require("luasnip").lsp_expand(args.body) + end, + }, + mapping = cmp.mapping.preset.insert({ + [""] = cmp.mapping.scroll_docs(-4), + [""] = cmp.mapping.scroll_docs(4), + [""] = cmp.mapping.complete(), + [""] = cmp.mapping.abort(), + [""] = cmp.mapping.confirm({ select = true }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_next_item() + elseif luasnip.expand_or_jumpable() then + luasnip.expand_or_jump() + else + fallback() + end + end, { "i", "s" }), + [""] = cmp.mapping(function(fallback) + if cmp.visible() then + cmp.select_prev_item() + elseif luasnip.jumpable(-1) then + luasnip.jump(-1) + else + fallback() + end + end, { "i", "s" }), + }), + sources = default_sources, +}) + +cmp.setup.filetype("org", { + sources = vim.tbl_deep_extend("force", default_sources, { + { name = "buffer", priority = 1 }, + { name = "orgmode", priority = 3 }, + }), +}) diff --git a/modules/programs/nvim/plugins/nvim-lspconfig.lua b/modules/programs/nvim/plugins/nvim-lspconfig.lua index afb7ea0..3690f1d 100644 --- a/modules/programs/nvim/plugins/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/nvim-lspconfig.lua @@ -5,8 +5,9 @@ vim.diagnostic.config({ virtual_text = false, }) -local capabilities = vim.lsp.protocol.make_client_capabilities() --- NOTE for nvim-ufo +-- The nvim-cmp almost supports LSP's capabilities so You should advertise it to LSP servers.. +local capabilities = require("cmp_nvim_lsp").default_capabilities() + -- Tell the server the capability of foldingRange, -- Neovim hasn't added foldingRange to default capabilities, users must add it manually capabilities.textDocument.foldingRange = { @@ -100,6 +101,9 @@ end local lspconfig_default_options = { on_attach = on_attach_def, capabilities = capabilities, + flags = { + debounce_text_changes = 100, + }, } ---function to add default options to lspconfig @@ -107,9 +111,8 @@ local lspconfig_default_options = { ---@param options table ---@return nil local function lspconfig_setup(lsp, options) - local coq_options = require("coq").lsp_ensure_capabilities({}) - local merged_options = vim.tbl_deep_extend("force", coq_options, lspconfig_default_options, options) - lspconfig[lsp].setup(merged_options) + local final_options = vim.tbl_deep_extend("force", lspconfig_default_options, options) + lspconfig[lsp].setup(final_options) end local servers = { From 7f336c2a900d7273884ff1b2a6fdf11747c2f4e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Wed, 6 Sep 2023 17:45:31 +0200 Subject: [PATCH 06/14] feat(nvim): add codeium completion --- flake.lock | 47 +++++++++++++++++++--- flake.nix | 3 ++ modules/programs/nvim/plugins/default.nix | 15 ++++--- modules/programs/nvim/plugins/nvim-cmp.lua | 44 +++++++++++++------- overlays/vimPlugins.nix | 2 + 5 files changed, 84 insertions(+), 27 deletions(-) diff --git a/flake.lock b/flake.lock index e8e5f02..acb5e01 100644 --- a/flake.lock +++ b/flake.lock @@ -71,6 +71,27 @@ "type": "github" } }, + "codeium-nvim": { + "inputs": { + "flake-utils": "flake-utils", + "nixpkgs": [ + "nixpkgs" + ] + }, + "locked": { + "lastModified": 1693966170, + "narHash": "sha256-maRkkUCzjSXK04ts+Io0WFBV1MxR7dCw8I6TV03Dpbs=", + "owner": "jcdickinson", + "repo": "codeium.nvim", + "rev": "6a8cbce54c41e0c305b5f77721f61b2ddd4b6c6d", + "type": "github" + }, + "original": { + "owner": "jcdickinson", + "repo": "codeium.nvim", + "type": "github" + } + }, "darwin": { "inputs": { "nixpkgs": [ @@ -203,6 +224,21 @@ } }, "flake-utils": { + "locked": { + "lastModified": 1667395993, + "narHash": "sha256-nuEHfE/LcWyuSWnS8t12N1wc105Qtau+/OdUAjtQ0rA=", + "owner": "numtide", + "repo": "flake-utils", + "rev": "5aed5285a952e0b949eb3ba02c12fa4fcfef535f", + "type": "github" + }, + "original": { + "owner": "numtide", + "repo": "flake-utils", + "type": "github" + } + }, + "flake-utils_2": { "inputs": { "systems": "systems" }, @@ -220,7 +256,7 @@ "type": "github" } }, - "flake-utils_2": { + "flake-utils_3": { "inputs": { "systems": "systems_3" }, @@ -238,7 +274,7 @@ "type": "github" } }, - "flake-utils_3": { + "flake-utils_4": { "inputs": { "systems": "systems_4" }, @@ -530,7 +566,7 @@ }, "neovim-flake": { "inputs": { - "flake-utils": "flake-utils_2", + "flake-utils": "flake-utils_3", "nixpkgs": [ "neovim-nightly-overlay", "nixpkgs" @@ -819,7 +855,7 @@ "pre-commit-hooks": { "inputs": { "flake-compat": "flake-compat_3", - "flake-utils": "flake-utils_3", + "flake-utils": "flake-utils_4", "gitignore": "gitignore", "nixpkgs": "nixpkgs_7", "nixpkgs-stable": "nixpkgs-stable" @@ -861,7 +897,8 @@ "agenix": "agenix", "arkenfox-userjs": "arkenfox-userjs", "asus-touchpad-numpad-driver": "asus-touchpad-numpad-driver", - "flake-utils": "flake-utils", + "codeium-nvim": "codeium-nvim", + "flake-utils": "flake-utils_2", "hmts-nvim": "hmts-nvim", "home-manager": "home-manager_2", "hypr-contrib": "hypr-contrib", diff --git a/flake.nix b/flake.nix index 5060b8c..f3bc896 100644 --- a/flake.nix +++ b/flake.nix @@ -53,6 +53,9 @@ actions-preview-nvim.flake = false; actions-preview-nvim.url = "github:aznhe21/actions-preview.nvim"; + codeium-nvim.url = "github:jcdickinson/codeium.nvim"; + codeium-nvim.inputs.nixpkgs.follows = "nixpkgs"; + # Hyprland hypr-contrib.url = "github:hyprwm/contrib"; hyprland.url = "github:hyprwm/Hyprland"; diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 7aa5eb0..d916f00 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -80,19 +80,18 @@ with builtins; event = [ "InsertEnter" ]; dependencies = [ { plugin = cmp-async-path; } + { plugin = cmp-buffer; } + { plugin = cmp-cmdline; } { plugin = cmp-nvim-lsp; } { plugin = cmp_luasnip; } { - plugin = copilot-cmp; - dependencies = [ - { - plugin = copilot-lua; - conf = readFile ./copilot-lua.lua; - dependencies = [{ plugin = which-key-nvim; }]; - } - ]; + plugin = codeium-nvim; + conf = /* lua */ '' + require("codeium").setup({}) + ''; } { plugin = friendly-snippets; } + { plugin = lspkind-nvim; } { plugin = luasnip; } ]; } diff --git a/modules/programs/nvim/plugins/nvim-cmp.lua b/modules/programs/nvim/plugins/nvim-cmp.lua index 0533cb7..0c06f77 100644 --- a/modules/programs/nvim/plugins/nvim-cmp.lua +++ b/modules/programs/nvim/plugins/nvim-cmp.lua @@ -1,14 +1,6 @@ local cmp = require("cmp") local luasnip = require("luasnip") require("luasnip.loaders.from_vscode").lazy_load() -require("copilot_cmp").setup() - -local default_sources = { - { name = "async_path", priority = 1 }, - { name = "copilot", priority = 2 }, - { name = "luasnip", priority = 2 }, - { name = "nvim_lsp", priority = 3 }, -} cmp.setup({ formatting = { @@ -17,7 +9,7 @@ cmp.setup({ maxwidth = 50, -- prevent the popup from showing more than provided characters ellipsis_char = "...", -- when popup menu exceed maxwidth, the truncated part would show ellipsis_char instead symbol_map = { - Copilot = "", + Codeium = "", }, }), }, @@ -52,12 +44,36 @@ cmp.setup({ end end, { "i", "s" }), }), - sources = default_sources, + sources = { + { name = "async_path", priority = 1 }, + { name = "buffer", priority = 1 }, + { name = "luasnip", priority = 2 }, + { name = "codeium", priority = 3 }, + { name = "nvim_lsp", priority = 4 }, + }, }) -cmp.setup.filetype("org", { - sources = vim.tbl_deep_extend("force", default_sources, { - { name = "buffer", priority = 1 }, - { name = "orgmode", priority = 3 }, +-- Set configuration for specific filetype. +cmp.setup.filetype("gitcommit", { + sources = cmp.config.sources({ + { name = "buffer" }, + }), +}) + +-- Use buffer source for `/` and `?` (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline({ "/", "?" }, { + mapping = cmp.mapping.preset.cmdline(), + sources = { + { name = "buffer" }, + }, +}) + +-- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). +cmp.setup.cmdline(":", { + mapping = cmp.mapping.preset.cmdline(), + sources = cmp.config.sources({ + { name = "async_path" }, + }, { + { name = "cmdline" }, }), }) diff --git a/overlays/vimPlugins.nix b/overlays/vimPlugins.nix index 7cafdf5..39f81d4 100644 --- a/overlays/vimPlugins.nix +++ b/overlays/vimPlugins.nix @@ -4,6 +4,8 @@ _: prev: with lib.my; { vimPlugins = prev.vimPlugins // { + inherit (inputs.codeium-nvim.packages.${prev.system}.vimPlugins) codeium-nvim; + smartcolumn-nvim = prev.vimUtils.buildVimPluginFrom2Nix { pname = "smartcolumn-nvim"; version = mkVersionInput inputs.smartcolumn-nvim; From abdb620c8307e30825aff25027c4e4e38b53b761 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Wed, 6 Sep 2023 17:46:29 +0200 Subject: [PATCH 07/14] feat(nvim)!: remove org mode --- modules/programs/nvim/plugins/default.nix | 4 ---- modules/programs/nvim/plugins/nvim-treesitter.lua | 5 ----- modules/programs/nvim/plugins/orgmode.lua | 4 ---- 3 files changed, 13 deletions(-) delete mode 100644 modules/programs/nvim/plugins/orgmode.lua diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index d916f00..b29f0ed 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -124,10 +124,6 @@ with builtins; ''; dependencies = [ { plugin = nvim-ts-context-commentstring; } - { - plugin = orgmode; - conf = readFile ./orgmode.lua; - } ]; } { diff --git a/modules/programs/nvim/plugins/nvim-treesitter.lua b/modules/programs/nvim/plugins/nvim-treesitter.lua index 0c13317..e221fdd 100644 --- a/modules/programs/nvim/plugins/nvim-treesitter.lua +++ b/modules/programs/nvim/plugins/nvim-treesitter.lua @@ -1,13 +1,8 @@ --- Load custom treesitter grammar for org filetype -require("orgmode").setup_ts_grammar() require("nvim-treesitter.configs").setup({ sync_install = false, auto_install = false, highlight = { enable = true, - -- Required for spellcheck, some LaTex highlights and - -- code block highlights that do not have ts grammar - additional_vim_regex_highlighting = { "org" }, }, context_commentstring = { enable = true, diff --git a/modules/programs/nvim/plugins/orgmode.lua b/modules/programs/nvim/plugins/orgmode.lua deleted file mode 100644 index 789eb0a..0000000 --- a/modules/programs/nvim/plugins/orgmode.lua +++ /dev/null @@ -1,4 +0,0 @@ -require("orgmode").setup({ - org_agenda_files = { "~/Notes/org" }, - org_default_notes_file = "~/Notes/org/refile.org", -}) From 4322977115c9368c2addcda2c8033cda7b199f85 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Wed, 6 Sep 2023 17:46:54 +0200 Subject: [PATCH 08/14] feat(nvim): make modes a list for lazy keybinds --- modules/programs/nvim/default.nix | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/modules/programs/nvim/default.nix b/modules/programs/nvim/default.nix index f39da7c..c4859e5 100644 --- a/modules/programs/nvim/default.nix +++ b/modules/programs/nvim/default.nix @@ -26,7 +26,7 @@ let ); descString = optionalString (desc != null) "desc = ${quote desc},"; in - ''{ ${quote key}, ${cmdString}, mode = ${quote mode}, ${descString} }''; + ''{ ${quote key}, ${cmdString}, mode = ${listToStringOneLine quote mode}, ${descString} }''; lazySpecFromPlugin = { plugin, dependencies, init, conf, lazy, event, enabled, cmd, ft, priority, keys }: listToStringMultiLine' @@ -161,8 +161,8 @@ in ''; }; mode = mkOption { - type = str; - default = "n"; + type = listOf str; + default = [ "n" ]; description = '' Mode to bind the key in. ''; From 6ae954d3c6cc6e9e729596d9fc01f364c56aad11 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Wed, 6 Sep 2023 17:48:54 +0200 Subject: [PATCH 09/14] feat(nvim): add lsp signature plugin --- modules/programs/nvim/plugins/default.nix | 1 + modules/programs/nvim/plugins/nvim-lspconfig.lua | 7 +++++++ 2 files changed, 8 insertions(+) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index b29f0ed..73a300c 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -131,6 +131,7 @@ with builtins; event = [ "BufRead" "BufNewFile" ]; conf = readFile ./nvim-lspconfig.lua; dependencies = [ + { plugin = lsp_signature-nvim; } { plugin = null-ls-nvim; conf = readFile ./null-ls-nvim.lua; diff --git a/modules/programs/nvim/plugins/nvim-lspconfig.lua b/modules/programs/nvim/plugins/nvim-lspconfig.lua index 3690f1d..bba7726 100644 --- a/modules/programs/nvim/plugins/nvim-lspconfig.lua +++ b/modules/programs/nvim/plugins/nvim-lspconfig.lua @@ -96,6 +96,13 @@ local on_attach_def = function(client, bufnr) vim.lsp.inlay_hint(bufnr, true) end, timeout) end + + require("lsp_signature").on_attach({ + bind = true, -- This is mandatory, otherwise border config won't get registered. + handler_opts = { + border = "rounded", + }, + }, bufnr) end local lspconfig_default_options = { From d3f5d2e9bd07484763887fdd54271291592f2f7a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Wed, 6 Sep 2023 17:49:31 +0200 Subject: [PATCH 10/14] feat(nvim): better next/prev tab keybinds --- modules/programs/nvim/plugins/which-key-nvim.lua | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/modules/programs/nvim/plugins/which-key-nvim.lua b/modules/programs/nvim/plugins/which-key-nvim.lua index 8adb863..09f227f 100644 --- a/modules/programs/nvim/plugins/which-key-nvim.lua +++ b/modules/programs/nvim/plugins/which-key-nvim.lua @@ -34,11 +34,17 @@ require("which-key").register({ [""] = { name = "tab", [""] = { "tabnew", "New tab" }, - n = { "tabnext", "Next tab" }, - p = { "tabprevious", "Previous tab" }, d = { "tabclose", "Close tab" }, }, }, { prefix = "" }) +require("which-key").register({ + ["["] = { + t = { "tabprevious", "Previous tab" }, + }, + ["]"] = { + t = { "tabnext", "Next tab" }, + }, +}) -- file require("which-key").register({ From b945255e596c7b42fb07842f51799720b25a40ba Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Wed, 6 Sep 2023 17:50:16 +0200 Subject: [PATCH 11/14] build: bump inputs --- flake.lock | 104 ++++++++++++++++++++++++++--------------------------- 1 file changed, 52 insertions(+), 52 deletions(-) diff --git a/flake.lock b/flake.lock index acb5e01..dafb7f2 100644 --- a/flake.lock +++ b/flake.lock @@ -41,11 +41,11 @@ "arkenfox-userjs": { "flake": false, "locked": { - "lastModified": 1691983650, - "narHash": "sha256-oA1bIpPc27Kk89n3JGpni7RkcIDRVAsTjUfjRHbKS24=", + "lastModified": 1693196107, + "narHash": "sha256-t6qvPFJIF+De2KqMfCI5DEA40BwWeu4AFRWOzKeEVE0=", "owner": "arkenfox", "repo": "user.js", - "rev": "915f39959c7e077f00477e6ce34a0f9f9e3e7c6b", + "rev": "ba173d49205ee927ed62e81e606569d98f531d38", "type": "github" }, "original": { @@ -170,11 +170,11 @@ ] }, "locked": { - "lastModified": 1690933134, - "narHash": "sha256-ab989mN63fQZBFrkk4Q8bYxQCktuHmBIBqUG1jl6/FQ=", + "lastModified": 1693611461, + "narHash": "sha256-aPODl8vAgGQ0ZYFIRisxYG5MOGSkIczvu2Cd8Gb9+1Y=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "59cf3f1447cfc75087e7273b04b31e689a8599fb", + "rev": "7f53fdb7bdc5bb237da7fefef12d099e4fd611ca", "type": "github" }, "original": { @@ -374,11 +374,11 @@ "hmts-nvim": { "flake": false, "locked": { - "lastModified": 1692743873, - "narHash": "sha256-lfqJVj1HbFJ5H4mo6rKYrexaosqSh17+PQ9BWpcuxZI=", + "lastModified": 1693226725, + "narHash": "sha256-jUuztOqNBltC3axa7s3CPJz9Cmukfwkf846+Z/gAxCU=", "owner": "calops", "repo": "hmts.nvim", - "rev": "34b825bd1c9ec1b6e2952c111753e2eb286c9e07", + "rev": "14fd941d7ec2bb98314a1aacaa2573d97f1629ab", "type": "github" }, "original": { @@ -415,11 +415,11 @@ ] }, "locked": { - "lastModified": 1692763155, - "narHash": "sha256-qMrGKZ8c/q/mHO3ZdrcBPwiVVXPLLgXjY98Ejqb5kAA=", + "lastModified": 1693972774, + "narHash": "sha256-Dt9UZs0/DaIex598quYRYFuGabUbvFdNrHuvGc6HjBc=", "owner": "nix-community", "repo": "home-manager", - "rev": "6a20e40acaebf067da682661aa67da8b36812606", + "rev": "b22d7bab30076bbb73744867d6c5bf7d6380570c", "type": "github" }, "original": { @@ -433,11 +433,11 @@ "nixpkgs": "nixpkgs" }, "locked": { - "lastModified": 1690635289, - "narHash": "sha256-ec77Yf7mqusmGkxrmYXEG4D0DqEcNRA3vFextWVQOVA=", + "lastModified": 1693839821, + "narHash": "sha256-ha9Cxqb81Yni217SoM/zFxE0nNz8IMtreTw4SlXw/D4=", "owner": "hyprwm", "repo": "contrib", - "rev": "bef073cff65917ba2d888aa4dc39bd9868e2b0a4", + "rev": "74aa6b02ff4bd48aaee4da461a16c4cbaaa0ca7e", "type": "github" }, "original": { @@ -455,11 +455,11 @@ "xdph": "xdph" }, "locked": { - "lastModified": 1692871050, - "narHash": "sha256-OJ/OkOLFn546rcXmj/3VEGlsPYjdXWAhEmjqdc6re6k=", + "lastModified": 1693944974, + "narHash": "sha256-kWa86ahIQvQIgo3GYFJShlBuKTXfggVbrZjkbdjct7U=", "owner": "hyprwm", "repo": "Hyprland", - "rev": "90c03e5bd2204ba6d1a0167c68f65b7a9231bef4", + "rev": "c3a83daa1e61285a418c39a1d9f29427c2c9a2c3", "type": "github" }, "original": { @@ -529,11 +529,11 @@ }, "master": { "locked": { - "lastModified": 1692893187, - "narHash": "sha256-Hbbp6bWQykkLsvzi7yo2KQme0oXCZkCdz9bBorcSKH4=", + "lastModified": 1693980916, + "narHash": "sha256-J7JJCpNiHbXb3D7pb1JkeOTUEpJJXiGI6BngfbnhiIM=", "owner": "nixos", "repo": "nixpkgs", - "rev": "d240553dcc2180fe486155bea8a846d5941e168c", + "rev": "6485865ec300c7baf9e51ad5d64c30355ee511e7", "type": "github" }, "original": { @@ -574,11 +574,11 @@ }, "locked": { "dir": "contrib", - "lastModified": 1692744130, - "narHash": "sha256-Iod6+KGeWnX1SV4owXpSoC17iImCJjTq2iqEp6IRBZc=", + "lastModified": 1693954768, + "narHash": "sha256-DIyHgdfhmftTN2aHVEmJ1q/W2o0Slild0McAf4sEa8U=", "owner": "neovim", "repo": "neovim", - "rev": "6462ee1c10f9f1aa66ffc4d4fe1b7b3d9f0f91af", + "rev": "2ef7b6a433c61837bcef0fca297a665551835423", "type": "github" }, "original": { @@ -597,11 +597,11 @@ "nixpkgs": "nixpkgs_5" }, "locked": { - "lastModified": 1692749096, - "narHash": "sha256-XyFSBw3WMf5cTG9ImL6S/v9Aoawr38h/Fr1XIi7peEs=", + "lastModified": 1693958686, + "narHash": "sha256-UgdB+EXYbi90vm2fam4tYgY9hYGwxSk0sxG96jIyeg4=", "owner": "nix-community", "repo": "neovim-nightly-overlay", - "rev": "83d68ba72f3308b5c90b12fb40044c870903e6ee", + "rev": "14defe836200c45acf14f3616d7ba20959028cf8", "type": "github" }, "original": { @@ -621,11 +621,11 @@ "rust-overlay": "rust-overlay" }, "locked": { - "lastModified": 1691372739, - "narHash": "sha256-fZ8KfBMcIFO/R7xaWtB85SFeuUjb9SCH8fxYBnY8068=", + "lastModified": 1693724255, + "narHash": "sha256-+Ucv/aBN9wwRE62sUJEBocI+9no7PV4KRDNuFQgygzU=", "owner": "oxalica", "repo": "nil", - "rev": "97abe7d3d48721d4e0fcc1876eea83bb4247825b", + "rev": "4bdcfcfe38cfcb386142e043392afbfa542665dd", "type": "github" }, "original": { @@ -644,11 +644,11 @@ "nixpkgs-regression": "nixpkgs-regression" }, "locked": { - "lastModified": 1691953666, - "narHash": "sha256-HxgMSgoM19OnDb4h47nrxI2lRGsDo+4Y4JEHeCoWB+Q=", + "lastModified": 1692913762, + "narHash": "sha256-WIz/rGYBUdRtkZx5BPbE9DXHfUCKlYuKkPzDsP4u77w=", "owner": "privatevoid-net", "repo": "nix-super", - "rev": "65e8abac80cc06f9f05147b51908a47549e9342e", + "rev": "0007178284d0247631af40931b7039d42bfc0da5", "type": "github" }, "original": { @@ -725,11 +725,11 @@ }, "nixpkgs_2": { "locked": { - "lastModified": 1692638711, - "narHash": "sha256-J0LgSFgJVGCC1+j5R2QndadWI1oumusg6hCtYAzLID4=", + "lastModified": 1693158576, + "narHash": "sha256-aRTTXkYvhXosGx535iAFUaoFboUrZSYb1Ooih/auGp0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "91a22f76cd1716f9d0149e8a5c68424bb691de15", + "rev": "a999c1cc0c9eb2095729d5aa03e0d8f7ed256780", "type": "github" }, "original": { @@ -773,11 +773,11 @@ }, "nixpkgs_5": { "locked": { - "lastModified": 1692557222, - "narHash": "sha256-TCOtZaioLf/jTEgfa+nyg0Nwq5Uc610Z+OFV75yUgGw=", + "lastModified": 1693844670, + "narHash": "sha256-t69F2nBB8DNQUWHD809oJZJVE+23XBrth4QZuVd6IE0=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "0b07d4957ee1bd7fd3bdfd12db5f361bd70175a6", + "rev": "3c15feef7770eb5500a4b8792623e2d6f598c9c1", "type": "github" }, "original": { @@ -789,11 +789,11 @@ }, "nixpkgs_6": { "locked": { - "lastModified": 1692808169, - "narHash": "sha256-x9Opq06rIiwdwGeK2Ykj69dNc2IvUH1fY55Wm7atwrE=", + "lastModified": 1693844670, + "narHash": "sha256-t69F2nBB8DNQUWHD809oJZJVE+23XBrth4QZuVd6IE0=", "owner": "nixos", "repo": "nixpkgs", - "rev": "9201b5ff357e781bf014d0330d18555695df7ba8", + "rev": "3c15feef7770eb5500a4b8792623e2d6f598c9c1", "type": "github" }, "original": { @@ -947,11 +947,11 @@ "smartcolumn-nvim": { "flake": false, "locked": { - "lastModified": 1692020684, - "narHash": "sha256-lNEsAkKRpMgdO6Og0odpTn/t4qkzO7EuTjC5ABJhvXc=", + "lastModified": 1693669522, + "narHash": "sha256-SfIbbrAFv/md9EgsJvO0RfDnc6oP5RYz8C5Icual1bU=", "owner": "m4xshen", "repo": "smartcolumn.nvim", - "rev": "4aa00ad766f3c0f0e2561e0eb42df3ea3743c135", + "rev": "d01b99355c7fab13233f48d0f28dc097e68a03f7", "type": "github" }, "original": { @@ -962,11 +962,11 @@ }, "stable": { "locked": { - "lastModified": 1692794066, - "narHash": "sha256-H0aG8r16dj0x/Wz6wQhQxc9V7AsObOiHPaKxQgH6Y08=", + "lastModified": 1693771906, + "narHash": "sha256-32EnPCaVjOiEERZ+o/2Ir7JH9pkfwJZJ27SKHNvt4yk=", "owner": "nixos", "repo": "nixpkgs", - "rev": "fc944919f743bb22379dddf18dcb72db6cff84aa", + "rev": "da5adce0ffaff10f6d0fee72a02a5ed9d01b52fc", "type": "github" }, "original": { @@ -1125,18 +1125,18 @@ "flake": false, "locked": { "host": "gitlab.freedesktop.org", - "lastModified": 1691073628, - "narHash": "sha256-LlxE3o3UzRY7APYVLGNKM30DBMcDifCRIQiMVSbYLIc=", + "lastModified": 1692976565, + "narHash": "sha256-eBKkG7tMxg92NskEn8dHRFY245JwjirWRoOZzW6DnUw=", "owner": "wlroots", "repo": "wlroots", - "rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5", + "rev": "717ded9bb0191ea31bf4368be32e7a15fe1b8294", "type": "gitlab" }, "original": { "host": "gitlab.freedesktop.org", "owner": "wlroots", "repo": "wlroots", - "rev": "c74f89d4f84bfed0284d3908aee5d207698c70c5", + "rev": "717ded9bb0191ea31bf4368be32e7a15fe1b8294", "type": "gitlab" } }, From 78bad0191497397f6019a50437f3fb9fd60d1d7b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Thu, 7 Sep 2023 08:02:32 +0200 Subject: [PATCH 12/14] feat(nvim): lazy load vim fugitive --- modules/programs/nvim/plugins/default.nix | 26 ++++++++++++++++++++++- 1 file changed, 25 insertions(+), 1 deletion(-) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index 73a300c..cb75135 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -176,7 +176,31 @@ with builtins; } { plugin = vim-fugitive; - event = [ "VeryLazy" ]; + cmd = [ + "G" + "Git" + "Ggrep" + "Glgrep" + "Gclog" + "Gllog" + "Gcd" + "Glcd" + "Gedit" + "Gsplit" + "Gvsplit" + "Gtabedit" + "Gpedit" + "Gdrop" + "Gread" + "Gwrite" + "Gwq" + "Gdiffsplit" + "Gvdiffsplit" + "GMove" + "GRename" + "GDelete" + "GBrowse" + ]; } { plugin = vim-tmux-navigator; From 116fc30524cb220e9d8cbf7f47c4fa4e39352e96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Thu, 7 Sep 2023 08:39:43 +0200 Subject: [PATCH 13/14] feat(nvim)!: use nvim autopairs instead of mini --- modules/programs/nvim/plugins/default.nix | 6 ++++++ modules/programs/nvim/plugins/mini-nvim.lua | 1 - modules/programs/nvim/plugins/nvim-cmp.lua | 24 +++++++++++++++++++++ 3 files changed, 30 insertions(+), 1 deletion(-) diff --git a/modules/programs/nvim/plugins/default.nix b/modules/programs/nvim/plugins/default.nix index cb75135..f4a6780 100644 --- a/modules/programs/nvim/plugins/default.nix +++ b/modules/programs/nvim/plugins/default.nix @@ -79,6 +79,12 @@ with builtins; conf = readFile ./nvim-cmp.lua; event = [ "InsertEnter" ]; dependencies = [ + { + plugin = nvim-autopairs; + conf = /* lua */ '' + require("nvim-autopairs").setup({}) + ''; + } { plugin = cmp-async-path; } { plugin = cmp-buffer; } { plugin = cmp-cmdline; } diff --git a/modules/programs/nvim/plugins/mini-nvim.lua b/modules/programs/nvim/plugins/mini-nvim.lua index e89e7a3..f2c42d3 100644 --- a/modules/programs/nvim/plugins/mini-nvim.lua +++ b/modules/programs/nvim/plugins/mini-nvim.lua @@ -1,6 +1,5 @@ require("mini.align").setup() require("mini.move").setup() -require("mini.pairs").setup() require("mini.starter").setup() require("mini.statusline").setup({ diff --git a/modules/programs/nvim/plugins/nvim-cmp.lua b/modules/programs/nvim/plugins/nvim-cmp.lua index 0c06f77..500a3a9 100644 --- a/modules/programs/nvim/plugins/nvim-cmp.lua +++ b/modules/programs/nvim/plugins/nvim-cmp.lua @@ -77,3 +77,27 @@ cmp.setup.cmdline(":", { { name = "cmdline" }, }), }) +-- If you want insert `(` after select function or method item +local cmp_autopairs = require("nvim-autopairs.completion.cmp") +local handlers = require("nvim-autopairs.completion.handlers") + +cmp.event:on( + "confirm_done", + cmp_autopairs.on_confirm_done({ + filetypes = { + -- "*" is a alias to all filetypes + ["*"] = { + ["("] = { + kind = { + cmp.lsp.CompletionItemKind.Function, + cmp.lsp.CompletionItemKind.Method, + }, + handler = handlers["*"], + }, + }, + -- Disable for functional languages + haskell = false, + nix = false, + }, + }) +) From 12a5420ee928e05fddb522aad77a8a52874e52b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Moritz=20B=C3=B6hme?= Date: Thu, 7 Sep 2023 08:45:50 +0200 Subject: [PATCH 14/14] feat(nvim): disable cmp for IncRename --- modules/programs/nvim/plugins/nvim-cmp.lua | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/modules/programs/nvim/plugins/nvim-cmp.lua b/modules/programs/nvim/plugins/nvim-cmp.lua index 500a3a9..1a8a070 100644 --- a/modules/programs/nvim/plugins/nvim-cmp.lua +++ b/modules/programs/nvim/plugins/nvim-cmp.lua @@ -76,6 +76,17 @@ cmp.setup.cmdline(":", { }, { { name = "cmdline" }, }), + enabled = function() + -- Set of commands where cmp will be disabled + local disabled = { + IncRename = true, + } + -- Get first word of cmdline + local cmd = vim.fn.getcmdline():match("%S+") + -- Return true if cmd isn't disabled + -- else call/return cmp.close(), which returns false + return not disabled[cmd] or cmp.close() + end, }) -- If you want insert `(` after select function or method item local cmp_autopairs = require("nvim-autopairs.completion.cmp")