diff --git a/plugins/by-name/supermaven/default.nix b/plugins/by-name/supermaven/default.nix new file mode 100644 index 00000000..82fc5798 --- /dev/null +++ b/plugins/by-name/supermaven/default.nix @@ -0,0 +1,40 @@ +{ lib, ... }: +lib.nixvim.plugins.mkNeovimPlugin { + name = "supermaven"; + package = "supermaven-nvim"; + moduleName = "supermaven-nvim"; + packPathName = "supermaven-nvim"; + + maintainers = [ lib.maintainers.PoCo ]; + + # Register nvim-cmp association + imports = [ + { cmpSourcePlugins.supermaven = "supermaven"; } + ]; + + extraConfig = { + dependencies.curl.enable = lib.mkDefault true; + }; + + settingsExample = lib.literalExpression '' + { + keymaps = { + accept_suggestion = ""; + clear_suggestions = ""; + accept_word = ""; + }; + ignore_filetypes = [ "cpp" ]; + color = { + suggestion_color = "#ffffff"; + cterm = 244; + }; + log_level = "info"; + disable_inline_completion = false; + disable_keymaps = false; + condition = lib.nixvim.mkRaw ''' + function() + return false + end + '''; + }''; +} diff --git a/tests/test-sources/plugins/by-name/supermaven/default.nix b/tests/test-sources/plugins/by-name/supermaven/default.nix new file mode 100644 index 00000000..d3b567b1 --- /dev/null +++ b/tests/test-sources/plugins/by-name/supermaven/default.nix @@ -0,0 +1,63 @@ +# We don't run neovim here, as supermaven tries to download `sm-agent` +{ + empty = { + test.runNvim = false; + plugins.supermaven.enable = true; + }; + + defaults = { + test.runNvim = false; + plugins.supermaven = { + enable = true; + + settings = { + keymaps = { + accept_suggestion = ""; + clear_suggestions = ""; + accept_word = ""; + }; + ignore_filetypes = [ ]; + color = { + suggestion_color = null; + cterm = null; + }; + log_level = "info"; + disable_inline_completion = false; + disable_keymaps = false; + condition.__raw = '' + function() + return false + end + ''; + }; + }; + }; + + example = { + test.runNvim = false; + plugins.supermaven = { + enable = true; + + settings = { + keymaps = { + accept_suggestion = ""; + clear_suggestions = ""; + accept_word = ""; + }; + ignore_filetypes = [ "cpp" ]; + color = { + suggestion_color = "#ffffff"; + cterm = 244; + }; + log_level = "info"; + disable_inline_completion = false; + disable_keymaps = false; + condition.__raw = '' + function() + return false + end + ''; + }; + }; + }; +} diff --git a/tests/test-sources/plugins/cmp/all-sources.nix b/tests/test-sources/plugins/cmp/all-sources.nix index 623ec1fb..39168545 100644 --- a/tests/test-sources/plugins/cmp/all-sources.nix +++ b/tests/test-sources/plugins/cmp/all-sources.nix @@ -25,6 +25,8 @@ "otter" # Invokes the `nix` command at startup which is not available in the sandbox "nixpkgs_maintainers" + # Needs internet access to download `sm-agent` + "supermaven" ] ++ optional (pkgs.stdenv.hostPlatform.system == "aarch64-linux") "cmp_tabnine"; in pipe config.cmpSourcePlugins [