From 51765fedbe15ee5920025b7b6772f24aa644e50b Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Sat, 2 Mar 2024 19:11:05 +0100 Subject: [PATCH] plugins/magma-nvim: switch to settings option --- plugins/utils/magma-nvim.nix | 139 ++++++++---------- .../test-sources/plugins/utils/magma-nvim.nix | 16 +- 2 files changed, 68 insertions(+), 87 deletions(-) diff --git a/plugins/utils/magma-nvim.nix b/plugins/utils/magma-nvim.nix index add06df2..0d772ab9 100644 --- a/plugins/utils/magma-nvim.nix +++ b/plugins/utils/magma-nvim.nix @@ -12,97 +12,76 @@ with helpers.vim-plugin; originalName = "magma-nvim"; defaultPackage = pkgs.vimPlugins.magma-nvim-goose; globalPrefix = "magma_"; + + # TODO introduced 2024-03-02: remove 2024-05-02 deprecateExtraConfig = true; + optionsRenamedToSettings = [ + "imageProvider" + "automaticallyOpenOutput" + "wrapOutput" + "outputWindowBorders" + "cellHighlightGroup" + "savePath" + "showMimetypeDebug" + ]; - options = { - imageProvider = mkDefaultOpt { - global = "image_provider"; - description = '' - This configures how to display images. The following options are available: - - "none" -- don't show images. - - "ueberzug" -- use Ueberzug to display images. - - "kitty" -- use the Kitty protocol to display images. + settingsOptions = { + image_provider = helpers.defaultNullOpts.mkEnumFirstDefault ["none" "ueberzug" "kitty"] '' + This configures how to display images. The following options are available: + - "none" -- don't show images. + - "ueberzug" -- use Ueberzug to display images. + - "kitty" -- use the Kitty protocol to display images. + ''; - Default: "none" - ''; - type = types.enum ["none" "ueberzug" "kitty"]; - }; + automatically_open_output = helpers.defaultNullOpts.mkBool true '' + If this is true, then whenever you have an active cell its output window will be + automatically shown. - automaticallyOpenOutput = mkDefaultOpt { - global = "automatically_open_output"; - description = '' - If this is true, then whenever you have an active cell its output window will be - automatically shown. + If this is false, then the output window will only be automatically shown when you've just + evaluated the code. + So, if you take your cursor out of the cell, and then come back, the output window won't be + opened (but the cell will be highlighted). + This means that there will be nothing covering your code. + You can then open the output window at will using `:MagmaShowOutput`. + ''; - If this is false, then the output window will only be automatically shown when you've just - evaluated the code. - So, if you take your cursor out of the cell, and then come back, the output window won't - be opened (but the cell will be highlighted). - This means that there will be nothing covering your code. - You can then open the output window at will using `:MagmaShowOutput`. + wrap_output = helpers.defaultNullOpts.mkBool true '' + If this is true, then text output in the output window will be wrapped (akin to `set wrap`). + ''; - Default: true - ''; - type = types.bool; - example = false; - }; + output_window_borders = helpers.defaultNullOpts.mkBool true '' + If this is true, then the output window will have rounded borders. + If it is false, it will have no borders. + ''; - wrapOutput = mkDefaultOpt { - global = "wrap_output"; - type = types.bool; - example = false; - description = '' - If this is true, then text output in the output window will be wrapped - (akin to `set wrap`). + cell_highlight_group = helpers.defaultNullOpts.mkStr "CursorLine" '' + The highlight group to be used for highlighting cells. + ''; - Default: true - ''; - }; - - outputWindowBorders = mkDefaultOpt { - global = "output_window_borders"; - type = types.bool; - example = false; - description = '' - If this is true, then the output window will have rounded borders. - If it is false, it will have no borders. - - Default: true - ''; - }; - - cellHighlightGroup = mkDefaultOpt { - global = "cell_highlight_group"; - type = types.str; - description = '' - The highlight group to be used for highlighting cells. - - Default: "CursorLine" - ''; - }; - - savePath = mkDefaultOpt { - global = "save_path"; - type = types.str; - description = '' - Where to save/load with :MagmaSave and :MagmaLoad (with no parameters). + save_path = + helpers.defaultNullOpts.mkStr + ''{__raw = "vim.fn.stdpath('data') .. '/magma'";}'' + '' + Where to save/load with `:MagmaSave` and `:MagmaLoad` (with no parameters). The generated file is placed in this directory, with the filename itself being the - buffer's name, with % replaced by %% and / replaced by %, and postfixed with the extension - .json. + buffer's name, with `%` replaced by `%%` and `/` replaced by `%`, and postfixed with the + extension `.json`. ''; - }; - showMimetypeDebug = mkDefaultOpt { - global = "show_mimetype_debug"; - type = types.bool; - example = true; - description = '' - If this is true, then before any non-iostream output chunk, Magma shows the mimetypes it - received for it. - This is meant for debugging and adding new mimetypes. + show_mimetype_debug = helpers.defaultNullOpts.mkBool false '' + If this is true, then before any non-iostream output chunk, Magma shows the mimetypes it + received for it. + This is meant for debugging and adding new mimetypes. + ''; + }; - Default: false - ''; - }; + settingsExample = { + image_provider = "none"; + automatically_open_output = true; + wrap_output = true; + output_window_borders = true; + cell_highlight_group = "CursorLine"; + save_path.__raw = "vim.fn.stdpath('data') .. '/magma'"; + show_mimetype_debug = false; }; } diff --git a/tests/test-sources/plugins/utils/magma-nvim.nix b/tests/test-sources/plugins/utils/magma-nvim.nix index 894667ee..b5eb8b30 100644 --- a/tests/test-sources/plugins/utils/magma-nvim.nix +++ b/tests/test-sources/plugins/utils/magma-nvim.nix @@ -7,13 +7,15 @@ plugins.magma-nvim = { enable = true; - imageProvider = "none"; - automaticallyOpenOutput = true; - wrapOutput = true; - outputWindowBorders = true; - cellHighlightGroup = "CursorLine"; - savePath = null; - showMimetypeDebug = false; + settings = { + image_provider = "none"; + automatically_open_output = true; + wrap_output = true; + output_window_borders = true; + cell_highlight_group = "CursorLine"; + save_path.__raw = "vim.fn.stdpath('data') .. '/magma'"; + show_mimetype_debug = false; + }; }; }; }