plugins/quarto: fix by enforcing enabling otter when settings.codeRunner is enabled

See https://github.com/quarto-dev/quarto-nvim/issues/187
This commit is contained in:
Gaetan Lepage 2025-07-31 16:19:49 +02:00
parent e76ebb7819
commit 550c2573bb
3 changed files with 54 additions and 26 deletions

View file

@ -12,6 +12,10 @@ lib.nixvim.plugins.mkNeovimPlugin {
maintainers = [ lib.maintainers.HeitorAugustoLN ]; maintainers = [ lib.maintainers.HeitorAugustoLN ];
# `require("otter").setup()` must run **BEFORE** quarto
# https://github.com/quarto-dev/quarto-nvim/issues/187
configLocation = lib.mkOrder 900 "extraConfigLua";
imports = [ imports = [
# TODO: introduced 2024-06-29; remove after 24.11 # TODO: introduced 2024-06-29; remove after 24.11
(lib.mkRemovedOptionModule (lib.mkRemovedOptionModule

View file

@ -1,4 +1,4 @@
{ lib, pkgs, ... }: { lib, config, ... }:
let let
inherit (lib.nixvim) defaultNullOpts; inherit (lib.nixvim) defaultNullOpts;
inherit (lib) types; inherit (lib) types;
@ -99,4 +99,13 @@ lib.nixvim.plugins.mkNeovimPlugin {
default_method = "vim-slime"; default_method = "vim-slime";
}; };
}; };
extraConfig = cfg: {
assertions = lib.nixvim.mkAssertions "plugins.quarto" {
assertion = (cfg.settings.codeRunner.enable or false) -> config.plugins.otter.enable;
message = ''
Quarto requires `plugins.otter` to be enabled when `settings.codeRunner.enable` is true.
'';
};
};
} }

View file

@ -1,6 +1,13 @@
{ {
empty = { empty = {
plugins.quarto.enable = true; plugins = {
quarto.enable = true;
otter.enable = true;
treesitter = {
enable = true;
settings.highlight.enable = true;
};
};
}; };
defaults = { defaults = {
@ -39,36 +46,44 @@
}; };
example = { example = {
plugins.quarto = { plugins = {
enable = true; otter.enable = true;
treesitter = {
enable = true;
settings.highlight.enable = true;
};
settings = { quarto = {
debug = true; enable = true;
closePreviewOnExit = false;
lspFeatures = { settings = {
enabled = true; debug = true;
chunks = "curly"; closePreviewOnExit = false;
languages = [ lspFeatures = {
"r"
"python"
"julia"
];
diagnostics = {
enabled = true; enabled = true;
triggers = [ "BufWritePost" ]; chunks = "curly";
languages = [
"r"
"python"
"julia"
];
diagnostics = {
enabled = true;
triggers = [ "BufWritePost" ];
};
completion = {
enabled = true;
};
}; };
completion = { codeRunner = {
enabled = true; enabled = true;
default_method = "molten";
ft_runners = {
python = "molten";
};
never_run = [ "yaml" ];
}; };
}; };
codeRunner = {
enabled = true;
default_method = "molten";
ft_runners = {
python = "molten";
};
never_run = [ "yaml" ];
};
}; };
}; };
}; };