diff --git a/plugins/by-name/vim-suda/default.nix b/plugins/by-name/vim-suda/default.nix new file mode 100644 index 0000000000..57609d6d4f --- /dev/null +++ b/plugins/by-name/vim-suda/default.nix @@ -0,0 +1,41 @@ +{ lib, helpers, ... }: + +lib.nixvim.vim-plugin.mkVimPlugin { + name = "vim-suda"; + globalPrefix = "suda#"; + maintainers = [ lib.maintainers.marcel ]; + + settingsOptions = { + executable = helpers.defaultNullOpts.mkStr "sudo" '' + Path to the sudo binary. + ''; + + noninteractive = helpers.defaultNullOpts.mkFlagInt 0 '' + If set, suda will not prompt you for a password before saving a file. + It is supposed to support a setup with passwordless sudo or doas. + Use with care. + ''; + + prompt = helpers.defaultNullOpts.mkStr "Password: " '' + A prompt string used to ask password. + ''; + + # TODO: til https://github.com/lambdalisue/vim-suda/pull/84 + # makes it into nixos-unstable + # NOTE: also update in `settingsExample` and test cases + #smart_edit = helpers.defaultNullOpts.mkFlagInt 0 '' + # If set, an `|autocmd|` is created that performs a heuristic check on + # every buffer and decides whether to replace it with a suda buffer. + # The check is done only once for every buffer and it is designed to be + # optimized as possible so you shouldn't feel any slowdown when opening + # buffers. + #''; + }; + + settingsExample = { + path = "doas"; + noninteractive = 1; + prompt = "Pass: "; + #smart_edit = 1; + }; +} diff --git a/tests/test-sources/plugins/by-name/vim-suda/default.nix b/tests/test-sources/plugins/by-name/vim-suda/default.nix new file mode 100644 index 0000000000..2f76bfbd7c --- /dev/null +++ b/tests/test-sources/plugins/by-name/vim-suda/default.nix @@ -0,0 +1,29 @@ +{ + empty = { + plugins.vim-suda.enable = true; + }; + + defaults = { + plugins.vim-suda = { + enable = true; + settings = { + path = "sudo"; + noninteractive = 0; + prompt = "Password: "; + #smart_edit = 0; + }; + }; + }; + + example = { + plugins.vim-suda = { + enable = true; + settings = { + path = "doas"; + noninteractive = 1; + prompt = "Pass: "; + #smart_edit = 1; + }; + }; + }; +}