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 ];
# `require("otter").setup()` must run **BEFORE** quarto
# https://github.com/quarto-dev/quarto-nvim/issues/187
configLocation = lib.mkOrder 900 "extraConfigLua";
imports = [
# TODO: introduced 2024-06-29; remove after 24.11
(lib.mkRemovedOptionModule

View file

@ -1,4 +1,4 @@
{ lib, pkgs, ... }:
{ lib, config, ... }:
let
inherit (lib.nixvim) defaultNullOpts;
inherit (lib) types;
@ -99,4 +99,13 @@ lib.nixvim.plugins.mkNeovimPlugin {
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 = {
plugins.quarto.enable = true;
plugins = {
quarto.enable = true;
otter.enable = true;
treesitter = {
enable = true;
settings.highlight.enable = true;
};
};
};
defaults = {
@ -39,7 +46,14 @@
};
example = {
plugins.quarto = {
plugins = {
otter.enable = true;
treesitter = {
enable = true;
settings.highlight.enable = true;
};
quarto = {
enable = true;
settings = {
@ -72,4 +86,5 @@
};
};
};
};
}