From 405a564f3dea151ec86794b68a5ce18c85c3be47 Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 30 Apr 2025 10:29:43 +0200 Subject: [PATCH] plugins/actions-preview: init --- plugins/by-name/actions-preview/default.nix | 31 +++++ .../by-name/actions-preview/default.nix | 106 ++++++++++++++++++ 2 files changed, 137 insertions(+) create mode 100644 plugins/by-name/actions-preview/default.nix create mode 100644 tests/test-sources/plugins/by-name/actions-preview/default.nix diff --git a/plugins/by-name/actions-preview/default.nix b/plugins/by-name/actions-preview/default.nix new file mode 100644 index 00000000..015d438f --- /dev/null +++ b/plugins/by-name/actions-preview/default.nix @@ -0,0 +1,31 @@ +{ lib, ... }: +lib.nixvim.plugins.mkNeovimPlugin { + name = "actions-preview"; + packPathName = "actions-preview.nvim"; + package = "actions-preview-nvim"; + + maintainers = [ lib.maintainers.GaetanLepage ]; + + settingsExample = { + telescope = { + sorting_strategy = "ascending"; + layout_strategy = "vertical"; + layout_config = { + width = 0.8; + height = 0.9; + prompt_position = "top"; + preview_cutoff = 20; + preview_height = lib.nixvim.nestedLiteralLua '' + function(_, _, max_lines) + return max_lines - 15 + end + ''; + }; + }; + highlight_command = [ + (lib.nixvim.nestedLiteralLua "require('actions-preview.highlight').delta 'delta --side-by-side'") + (lib.nixvim.nestedLiteralLua "require('actions-preview.highlight').diff_so_fancy()") + (lib.nixvim.nestedLiteralLua "require('actions-preview.highlight').diff_highlight()") + ]; + }; +} diff --git a/tests/test-sources/plugins/by-name/actions-preview/default.nix b/tests/test-sources/plugins/by-name/actions-preview/default.nix new file mode 100644 index 00000000..1d03da5f --- /dev/null +++ b/tests/test-sources/plugins/by-name/actions-preview/default.nix @@ -0,0 +1,106 @@ +{ lib, ... }: +{ + empty = { + plugins.actions-preview.enable = true; + }; + + defaults = { + plugins = { + web-devicons.enable = true; + telescope.enable = true; + + actions-preview = { + enable = true; + + settings = { + diff = { + ctxlen = 3; + }; + highlight_command = [ ]; + backend = [ + "telescope" + "minipick" + "snacks" + "nui" + ]; + telescope.__raw = '' + vim.tbl_extend( + "force", + require("telescope.themes").get_dropdown(), + { + make_value = nil, + make_make_display = nil, + } + ) + ''; + nui = { + dir = "col"; + keymap = null; + layout = { + position = "50%"; + size = { + width = "60%"; + height = "90%"; + }; + min_width = 40; + min_height = 10; + relative = "editor"; + }; + preview = { + size = "60%"; + border = { + style = "rounded"; + padding = [ + 0 + 1 + ]; + }; + }; + select = { + size = "40%"; + border = { + style = "rounded"; + padding = [ + 0 + 1 + ]; + }; + }; + }; + snacks = { + layout.preset = "default"; + }; + }; + }; + }; + }; + + example = { + plugins.actions-preview = { + enable = true; + + settings = { + telescope = { + sorting_strategy = "ascending"; + layout_strategy = "vertical"; + layout_config = { + width = 0.8; + height = 0.9; + prompt_position = "top"; + preview_cutoff = 20; + preview_height.__raw = '' + function(_, _, max_lines) + return max_lines - 15 + end + ''; + }; + }; + highlight_command = [ + (lib.nixvim.mkRaw "require('actions-preview.highlight').delta 'delta --side-by-side'") + (lib.nixvim.mkRaw "require('actions-preview.highlight').diff_so_fancy()") + (lib.nixvim.mkRaw "require('actions-preview.highlight').diff_highlight()") + ]; + }; + }; + }; +}