From 2ca0f6b7bc0e2badc6fec83fffa332d8585ab5bc Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Wed, 31 Dec 2025 14:04:45 +0100 Subject: [PATCH] plugins/vscode-diff: init --- plugins/by-name/vscode-diff/default.nix | 29 +++++++ .../plugins/by-name/vscode-diff/default.nix | 85 +++++++++++++++++++ 2 files changed, 114 insertions(+) create mode 100644 plugins/by-name/vscode-diff/default.nix create mode 100644 tests/test-sources/plugins/by-name/vscode-diff/default.nix diff --git a/plugins/by-name/vscode-diff/default.nix b/plugins/by-name/vscode-diff/default.nix new file mode 100644 index 00000000..a9aa1b11 --- /dev/null +++ b/plugins/by-name/vscode-diff/default.nix @@ -0,0 +1,29 @@ +{ lib, ... }: +lib.nixvim.plugins.mkNeovimPlugin { + name = "vscode-diff"; + package = "vscode-diff-nvim"; + + maintainers = [ lib.maintainers.GaetanLepage ]; + + settingsExample = { + highlights = { + line_insert = "#2a3325"; + line_delete = "#362c2e"; + char_insert = "#3d4f35"; + char_delete = "#4d3538"; + }; + keymaps = { + view = { + next_hunk = "]c"; + prev_hunk = "[c"; + next_file = "]f"; + prev_file = "[f"; + }; + explorer = { + select = ""; + hover = "K"; + refresh = "R"; + }; + }; + }; +} diff --git a/tests/test-sources/plugins/by-name/vscode-diff/default.nix b/tests/test-sources/plugins/by-name/vscode-diff/default.nix new file mode 100644 index 00000000..f731ad91 --- /dev/null +++ b/tests/test-sources/plugins/by-name/vscode-diff/default.nix @@ -0,0 +1,85 @@ +{ + empty = { + plugins.vscode-diff.enable = true; + }; + + defaults = { + plugins.vscode-diff = { + enable = true; + + settings = { + highlights = { + line_insert = "#2a3325"; + line_delete = "#362c2e"; + char_insert = "#3d4f35"; + char_delete = "#4d3538"; + }; + keymaps = { + view = { + next_hunk = "]c"; + prev_hunk = "[c"; + next_file = "]f"; + prev_file = "[f"; + }; + explorer = { + select = ""; + hover = "K"; + refresh = "R"; + }; + }; + }; + }; + }; + + example = { + plugins.vscode-diff = { + enable = true; + + settings = { + highlights = { + line_insert = "DiffAdd"; + line_delete = "DiffDelete"; + char_insert.__raw = "nil"; + char_delete.__raw = "nil"; + char_brightness.__raw = "nil"; + }; + diff = { + disable_inlay_hints = true; + max_computation_time_ms = 5000; + }; + explorer = { + position = "left"; + width = 40; + height = 15; + view_mode = "list"; + indent_markers = true; + icons = { + folder_closed = "\u{e5ff}"; + folder_open = "\u{e5fe}"; + }; + file_filter = { + ignore = [ ]; + }; + }; + keymaps = { + view = { + quit = "q"; + toggle_explorer = "b"; + next_hunk = "]c"; + prev_hunk = "[c"; + next_file = "]f"; + prev_file = "[f"; + diff_get = "do"; + diff_put = "dp"; + }; + explorer = { + select = ""; + hover = "K"; + refresh = "R"; + toggle_view_mode = "i"; + }; + }; + }; + }; + }; +}