From 5bc3fa6996ee37b754f2e815a165be6e4d0cfcb9 Mon Sep 17 00:00:00 2001 From: bpatel347 Date: Fri, 8 Nov 2024 16:56:53 -0500 Subject: [PATCH] plugins/quarto: init Use neovim-plugin.mkNeovimPlugin and move quarto-nvim to quarto Rename tests to match convention Passing tests locally, add required dependencies Utilize `let` - `in` block Remove extraPlugins plugins/quarto: init plugin/quarto: init plugins/quarto: init plugins/quarto: init --- plugins/by-name/quarto/default.nix | 101 ++++++++++++++++++ .../plugins/by-name/quarto/default.nix | 75 +++++++++++++ 2 files changed, 176 insertions(+) create mode 100644 plugins/by-name/quarto/default.nix create mode 100644 tests/test-sources/plugins/by-name/quarto/default.nix diff --git a/plugins/by-name/quarto/default.nix b/plugins/by-name/quarto/default.nix new file mode 100644 index 00000000..6591f01b --- /dev/null +++ b/plugins/by-name/quarto/default.nix @@ -0,0 +1,101 @@ +{ lib, pkgs, ... }: +let + inherit (lib.nixvim) defaultNullOpts; + inherit (lib) types; +in +lib.nixvim.neovim-plugin.mkNeovimPlugin { + name = "quarto"; + originalName = "quarto-nvim"; + package = "quarto-nvim"; + + maintainers = [ lib.maintainers.BoneyPatel ]; + + settingsOptions = { + debug = defaultNullOpts.mkBool false '' + Enables or disables debugging. + ''; + + closePreviewOnExit = defaultNullOpts.mkBool true '' + Closes preview on exit. + ''; + + lspFeatures = { + enabled = defaultNullOpts.mkBool true '' + Enables LSP features. + ''; + + chunks = defaultNullOpts.mkStr "curly" '' + Sets chunk delimiter style. + ''; + + languages = + defaultNullOpts.mkListOf types.str + [ + "r" + "python" + "julia" + "bash" + "html" + ] + '' + List of supported languages. + ''; + + diagnostics = { + enabled = defaultNullOpts.mkBool true '' + Enables diagnostics. + ''; + + triggers = defaultNullOpts.mkListOf types.str [ "BufWritePost" ] '' + Sets triggers for diagnostics. + ''; + }; + + completion = { + enabled = defaultNullOpts.mkBool true '' + Enables completion. + ''; + }; + }; + + codeRunner = { + enabled = defaultNullOpts.mkBool false '' + Enables or disables the code runner. + ''; + + default_method = + defaultNullOpts.mkEnum + [ + "molten" + "slime" + ] + null + '' + Sets the default code runner method. Either "molten", "slime", or `null`. + ''; + + ft_runners = defaultNullOpts.mkAttrsOf types.str { } '' + Specifies filetype to runner mappings. + ''; + + never_run = defaultNullOpts.mkListOf types.str [ "yaml" ] '' + List of filetypes that are never sent to a code runner. + ''; + }; + }; + + settingsExample = { + debug = false; + lspFeatures = { + enabled = false; + diagnostics = { + enabled = true; + triggers = [ "BufWritePost" ]; + }; + }; + codeRunner = { + enabled = false; + default_method = "vim-slime"; + }; + }; +} diff --git a/tests/test-sources/plugins/by-name/quarto/default.nix b/tests/test-sources/plugins/by-name/quarto/default.nix new file mode 100644 index 00000000..45d036d1 --- /dev/null +++ b/tests/test-sources/plugins/by-name/quarto/default.nix @@ -0,0 +1,75 @@ +{ + empty = { + plugins.quarto.enable = true; + }; + + defaults = { + plugins.quarto = { + enable = true; + + settings = { + debug = false; + closePreviewOnExit = true; + lspFeatures = { + enabled = true; + chunks = "curly"; + languages = [ + "r" + "python" + "julia" + "bash" + "html" + ]; + diagnostics = { + enabled = true; + triggers = [ "BufWritePost" ]; + }; + completion = { + enabled = true; + }; + }; + codeRunner = { + enabled = false; + default_method = null; + ft_runners = { }; + never_run = [ "yaml" ]; + }; + }; + }; + }; + + example = { + plugins.quarto = { + enable = true; + + settings = { + debug = true; + closePreviewOnExit = false; + lspFeatures = { + enabled = true; + chunks = "curly"; + languages = [ + "r" + "python" + "julia" + ]; + diagnostics = { + enabled = true; + triggers = [ "BufWritePost" ]; + }; + completion = { + enabled = true; + }; + }; + codeRunner = { + enabled = true; + default_method = "molten"; + ft_runners = { + python = "molten"; + }; + never_run = [ "yaml" ]; + }; + }; + }; + }; +}