about summary refs log tree commit diff stats
path: root/modules/by-name/nv/nvim/plgs/nvim-cmp/default.nix
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-11-09 12:35:44 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-11-09 12:54:51 +0100
commit2122a01f99c6da466b8f0f55c965c11a9043d117 (patch)
tree6c1697afc30a5bb72635bda7db9b5610386a5b71 /modules/by-name/nv/nvim/plgs/nvim-cmp/default.nix
parentfix(pkgs/stamp): Fallback to `dot-license` (diff)
downloadnixos-config-2122a01f99c6da466b8f0f55c965c11a9043d117.tar.gz
nixos-config-2122a01f99c6da466b8f0f55c965c11a9043d117.zip
refactor(modules/legacy/conf/nvim): Move to `by-name`
Diffstat (limited to 'modules/by-name/nv/nvim/plgs/nvim-cmp/default.nix')
-rw-r--r--modules/by-name/nv/nvim/plgs/nvim-cmp/default.nix53
1 files changed, 53 insertions, 0 deletions
diff --git a/modules/by-name/nv/nvim/plgs/nvim-cmp/default.nix b/modules/by-name/nv/nvim/plgs/nvim-cmp/default.nix
new file mode 100644
index 00000000..8d61dbd7
--- /dev/null
+++ b/modules/by-name/nv/nvim/plgs/nvim-cmp/default.nix
@@ -0,0 +1,53 @@
+{
+  config,
+  lib,
+  ...
+}: 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"
+      };
+
+      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";}
+      ];
+    };
+  };
+}