diff --git a/flake.lock b/flake.lock index 4b7c4bb5..e698b6a9 100644 --- a/flake.lock +++ b/flake.lock @@ -7,11 +7,11 @@ ] }, "locked": { - "lastModified": 1753121425, - "narHash": "sha256-TVcTNvOeWWk1DXljFxVRp+E0tzG1LhrVjOGGoMHuXio=", + "lastModified": 1754091436, + "narHash": "sha256-XKqDMN1/Qj1DKivQvscI4vmHfDfvYR2pfuFOJiCeewM=", "owner": "hercules-ci", "repo": "flake-parts", - "rev": "644e0fc48951a860279da645ba77fe4a6e814c5e", + "rev": "67df8c627c2c39c41dbec76a1f201929929ab0bd", "type": "github" }, "original": { @@ -66,11 +66,11 @@ }, "nixpkgs": { "locked": { - "lastModified": 1753432016, - "narHash": "sha256-cnL5WWn/xkZoyH/03NNUS7QgW5vI7D1i74g48qplCvg=", + "lastModified": 1754151594, + "narHash": "sha256-S30TWshtDmNlU30u842RidFUraKj1f2dd4nrKRHm3gE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6027c30c8e9810896b92429f0092f624f7b1aace", + "rev": "7b6929d8b900de3142638310f8bc40cff4f2c507", "type": "github" }, "original": { @@ -89,11 +89,11 @@ ] }, "locked": { - "lastModified": 1753450833, + "lastModified": 1753771532, "narHash": "sha256-Pmpke0JtLRzgdlwDC5a+aiLVZ11JPUO5Bcqkj0nHE/k=", "owner": "NuschtOS", "repo": "search", - "rev": "40987cc1a24feba378438d691f87c52819f7bd75", + "rev": "2a65adaf2c0c428efb0f4a2bc406aab466e96a06", "type": "github" }, "original": { diff --git a/flake/dev/flake.lock b/flake/dev/flake.lock index 64272a5d..cd23dc1a 100644 --- a/flake/dev/flake.lock +++ b/flake/dev/flake.lock @@ -2,11 +2,11 @@ "nodes": { "dev-nixpkgs": { "locked": { - "lastModified": 1753432016, - "narHash": "sha256-cnL5WWn/xkZoyH/03NNUS7QgW5vI7D1i74g48qplCvg=", + "lastModified": 1754151594, + "narHash": "sha256-S30TWshtDmNlU30u842RidFUraKj1f2dd4nrKRHm3gE=", "owner": "NixOS", "repo": "nixpkgs", - "rev": "6027c30c8e9810896b92429f0092f624f7b1aace", + "rev": "7b6929d8b900de3142638310f8bc40cff4f2c507", "type": "github" }, "original": { @@ -104,11 +104,11 @@ ] }, "locked": { - "lastModified": 1753693456, - "narHash": "sha256-5i5+9pPq80C37a/xqepLRYMHNw8CSh1S7o0ps+kkl3k=", + "lastModified": 1754174776, + "narHash": "sha256-Sp3FRM6xNwNtGzYH/HByjzJYHSQvwsW+lDMMZNF43PQ=", "owner": "nix-community", "repo": "home-manager", - "rev": "a7b7c6f520b51f3577bd6b7a7493d2cdbcb22ec6", + "rev": "e6e2f43a62b7dbc8aa8b1adb7101b0d8b9395445", "type": "github" }, "original": { @@ -155,11 +155,11 @@ ] }, "locked": { - "lastModified": 1753439394, - "narHash": "sha256-Bv9h1AJegLI8uAhiJ1sZ4XAndYxhgf38tMgCQwiEpmc=", + "lastModified": 1754061284, + "narHash": "sha256-ONcNxdSiPyJ9qavMPJYAXDNBzYobHRxw0WbT38lKbwU=", "owner": "numtide", "repo": "treefmt-nix", - "rev": "2673921c03d6e75fdf4aa93e025772608d1482cf", + "rev": "58bd4da459f0a39e506847109a2a5cfceb837796", "type": "github" }, "original": { diff --git a/flake/dev/fmt.nix b/flake/dev/fmt.nix index e3733497..7c2610d1 100644 --- a/flake/dev/fmt.nix +++ b/flake/dev/fmt.nix @@ -57,6 +57,7 @@ "**.scm" "**.svg" "**/man/*.5" + "docs/mdbook/highlight.js" # Those files are generated by pytest-regression, which then `diff`s them. # Formatting them will make the tests fail. "docs/gfm-alerts-to-admonitions/tests/**/*.yml" diff --git a/plugins/by-name/otter/default.nix b/plugins/by-name/otter/default.nix index fd841b83..34feed28 100644 --- a/plugins/by-name/otter/default.nix +++ b/plugins/by-name/otter/default.nix @@ -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 diff --git a/plugins/by-name/quarto/default.nix b/plugins/by-name/quarto/default.nix index 50413eae..77c628d0 100644 --- a/plugins/by-name/quarto/default.nix +++ b/plugins/by-name/quarto/default.nix @@ -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. + ''; + }; + }; } diff --git a/tests/test-sources/plugins/by-name/dap-view/default.nix b/tests/test-sources/plugins/by-name/dap-view/default.nix index b89fede6..601ec300 100644 --- a/tests/test-sources/plugins/by-name/dap-view/default.nix +++ b/tests/test-sources/plugins/by-name/dap-view/default.nix @@ -18,52 +18,121 @@ "repl" ]; default_section = "watches"; - headers = { - breakpoints = "Breakpoints [B]"; - scopes = "Scopes [S]"; - exceptions = "Exceptions [E]"; - watches = "Watches [W]"; - threads = "Threads [T]"; - repl = "REPL [R]"; - console = "Console [C]"; + base_sections = { + breakpoints = { + keymap = "B"; + label = "Breakpoints [B]"; + short_label = " [B]"; + action.__raw = '' + function() + views.switch_to_view("breakpoints") + end + ''; + }; + scopes = { + keymap = "S"; + label = "Scopes [S]"; + short_label = "󰂥 [S]"; + action.__raw = '' + function() + views.switch_to_view("scopes") + end + ''; + }; + exceptions = { + keymap = "E"; + label = "Exceptions [E]"; + short_label = "󰢃 [E]"; + action.__raw = '' + function() + views.switch_to_view("exceptions") + end + ''; + }; + watches = { + keymap = "W"; + label = "Watches [W]"; + short_label = "󰛐 [W]"; + action.__raw = '' + function() + views.switch_to_view("watches") + end + ''; + }; + threads = { + keymap = "T"; + label = "Threads [T]"; + short_label = "󱉯 [T]"; + action.__raw = '' + function() + views.switch_to_view("threads") + end + ''; + }; + repl = { + keymap = "R"; + label = "REPL [R]"; + short_label = "󰯃 [R]"; + action.__raw = '' + function() + require("dap-view.repl").show() + end + ''; + }; + console = { + keymap = "C"; + label = "Console [C]"; + short_label = "󰆍 [C]"; + action.__raw = '' + function() + require("dap-view.term").show() + end + ''; + }; + }; + custom_sections = { }; + controls = { + enabled = false; + position = "right"; + buttons = [ + "play" + "step_into" + "step_over" + "step_out" + "step_back" + "run_last" + "terminate" + "disconnect" + ]; + icons = { + pause = ""; + play = ""; + step_into = ""; + step_over = ""; + step_out = ""; + step_back = ""; + run_last = ""; + terminate = ""; + disconnect = ""; + }; + custom_buttons = { }; }; - # TODO: Enable after plugin update - # controls = { - # enabled = false; - # position = "right"; - # buttons = [ - # "play" - # "step_into" - # "step_over" - # "step_out" - # "step_back" - # "run_last" - # "terminate" - # "disconnect" - # ]; - # icons = { - # pause = ""; - # play = ""; - # step_into = ""; - # step_over = ""; - # step_out = ""; - # step_back = ""; - # run_last = ""; - # terminate = ""; - # disconnect = ""; - # }; - # custom_buttons = { }; - # }; }; windows = { - height = 12; + height = 0.25; + position = "below"; terminal = { + width = 0.5; position = "left"; - hide = { }; + hide = [ ]; start_hidden = false; }; }; - switchbuf = "usetab;newtab"; + help = { + border = null; + }; + switchbuf = "usetab"; + auto_toggle = false; }; }; }; diff --git a/tests/test-sources/plugins/by-name/quarto/default.nix b/tests/test-sources/plugins/by-name/quarto/default.nix index 45d036d1..d28c1837 100644 --- a/tests/test-sources/plugins/by-name/quarto/default.nix +++ b/tests/test-sources/plugins/by-name/quarto/default.nix @@ -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,36 +46,44 @@ }; example = { - plugins.quarto = { - enable = true; + plugins = { + otter.enable = true; + treesitter = { + enable = true; + settings.highlight.enable = true; + }; - settings = { - debug = true; - closePreviewOnExit = false; - lspFeatures = { - enabled = true; - chunks = "curly"; - languages = [ - "r" - "python" - "julia" - ]; - diagnostics = { + quarto = { + enable = true; + + settings = { + debug = true; + closePreviewOnExit = false; + lspFeatures = { enabled = true; - triggers = [ "BufWritePost" ]; + chunks = "curly"; + languages = [ + "r" + "python" + "julia" + ]; + diagnostics = { + enabled = true; + triggers = [ "BufWritePost" ]; + }; + completion = { + enabled = true; + }; }; - completion = { + codeRunner = { 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" ]; - }; }; }; }; diff --git a/version-info.toml b/version-info.toml index 52cbc153..42505fa1 100644 --- a/version-info.toml +++ b/version-info.toml @@ -1,6 +1,6 @@ # DO NOT MODIFY! # This file was generated by ci/version-info/default.nix -nixpkgs_rev = "6027c30c8e9810896b92429f0092f624f7b1aace" +nixpkgs_rev = "7b6929d8b900de3142638310f8bc40cff4f2c507" release = "25.11" unstable = true