about summary refs log tree commit diff stats
path: root/modules/by-name
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-05-04 21:47:47 +0200
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2025-05-04 21:47:47 +0200
commit03597224c2fc59e2d0b96cccf49ab8aebbcb10d4 (patch)
tree806bc7699ea7636877f54329d3aba7b50a8b9b02 /modules/by-name
parentmodules/lf/commands/set_wallpaper: Add required `procps` dependency (diff)
downloadnixos-config-03597224c2fc59e2d0b96cccf49ab8aebbcb10d4.zip
modules/nvim/options/completeopt: Move to `plgs/nvim-cmp`
Diffstat (limited to '')
-rw-r--r--modules/by-name/nv/nvim/options/default.nix1
-rw-r--r--modules/by-name/nv/nvim/plgs/nvim-cmp/default.nix90
2 files changed, 49 insertions, 42 deletions
diff --git a/modules/by-name/nv/nvim/options/default.nix b/modules/by-name/nv/nvim/options/default.nix
index 0f529ca3..301f0ac0 100644
--- a/modules/by-name/nv/nvim/options/default.nix
+++ b/modules/by-name/nv/nvim/options/default.nix
@@ -32,7 +32,6 @@ in {
 
     confirm = true; # confirm to save changes before closing modified buffer
     colorcolumn = "+1"; # show a +1 before the 'textwidth'
-    completeopt = ["menuone" "noselect"]; # have a better completion experience
 
     # https://www.compart.com/en/unicode/U+XXXX (unicode character code)
     fillchars = {
diff --git a/modules/by-name/nv/nvim/plgs/nvim-cmp/default.nix b/modules/by-name/nv/nvim/plgs/nvim-cmp/default.nix
index 80363ba4..f0754bd3 100644
--- a/modules/by-name/nv/nvim/plgs/nvim-cmp/default.nix
+++ b/modules/by-name/nv/nvim/plgs/nvim-cmp/default.nix
@@ -14,49 +14,57 @@
 }: let
   cfg = config.soispha.programs.nvim;
 in {
-  home-manager.users.soispha.programs.nixvim.plugins.cmp = lib.mkIf cfg.enable {
-    /*
-    TODO: integrate this:
-    ```lua
-      enabled = {
-      function()
-          -- disable completion in comments
-          local context = require 'cmp.config.context'
-          -- keep command mode completion enabled when cursor is in a comment
-          -- te
-          if vim.api.nvim_get_mode().mode == 'c' then
-              return true
-          else
-              return not context.in_treesitter_capture("comment")
-                  and not context.in_syntax_group("Comment")
-          end
-      end
-      },
-    ```
-    */
-    enable = true;
-    autoEnableSources = true;
-    settings = {
-      mapping = {
-        # TODO: add support for desc and which key here
-        "<C-d>" = "cmp.mapping.scroll_docs(-4)"; # desc = "Scroll up by four lines"
-        "<C-f>" = "cmp.mapping.scroll_docs(4)"; # desc = "Scroll down by four lines"
-        "HH" = "cmp.mapping.complete()"; # desc = "Confirm snipped"
-      };
+  home-manager.users.soispha.programs.nixvim = lib.mkIf cfg.enable {
+    opts.completeopt = [
+      "menu" # Show completions in a menu
+      "menuone" # Also open menu, when only one completion exists
+      "noselect" # Do not pre select one of the completions
+    ];
+
+    plugins.cmp = {
+      /*
+      TODO: integrate this:
+      ```lua
+        enabled = {
+        function()
+            -- disable completion in comments
+            local context = require 'cmp.config.context'
+            -- keep command mode completion enabled when cursor is in a comment
+            -- te
+            if vim.api.nvim_get_mode().mode == 'c' then
+                return true
+            else
+                return not context.in_treesitter_capture("comment")
+                    and not context.in_syntax_group("Comment")
+            end
+        end
+        },
+      ```
+      */
+      enable = true;
+      autoEnableSources = true;
+      settings = {
+        mapping = {
+          # TODO: add support for desc and which key here
+          "<C-d>" = "cmp.mapping.scroll_docs(-4)"; # desc = "Scroll up by four lines"
+          "<C-f>" = "cmp.mapping.scroll_docs(4)"; # desc = "Scroll down by four lines"
+          "HH" = "cmp.mapping.complete()"; # desc = "Confirm snipped"
+        };
 
-      snippet.expand = "function(args) require('luasnip').lsp_expand(args.body) end";
+        snippet.expand = "function(args) require('luasnip').lsp_expand(args.body) end";
 
-      sources = [
-        {name = "nvim_lsp";}
-        {name = "luasnip";}
-        {name = "path";}
-        {name = "git";} # TODO: I might want to add config to allow all issues/prs <2023-10-16>
-        # {name = "convertionalcommits";} # TODO: Useless without commitlint [https://commitlint.js.org/] <2023-10-16>
-        # {name = "rg";} # TODO: This might really RIP-grep my system <2023-10-16>
-        # {name = "buffer";}
-        # {name = "digraphs";}
-        {name = "calc";}
-      ];
+        sources = [
+          {name = "nvim_lsp";}
+          {name = "luasnip";}
+          {name = "path";}
+          {name = "git";} # TODO: I might want to add config to allow all issues/prs <2023-10-16>
+          # {name = "convertionalcommits";} # TODO: Useless without commitlint [https://commitlint.js.org/] <2023-10-16>
+          # {name = "rg";} # TODO: This might really RIP-grep my system <2023-10-16>
+          # {name = "buffer";}
+          # {name = "digraphs";}
+          {name = "calc";}
+        ];
+      };
     };
   };
 }