From d438e42dfc2746fc64ead878594fbd601aab3067 Mon Sep 17 00:00:00 2001 From: saygo-png Date: Mon, 21 Jul 2025 20:58:40 +0200 Subject: [PATCH] plugins/faster: init Signed-off-by: saygo-png --- plugins/by-name/faster/default.nix | 43 +++++++ .../plugins/by-name/faster/default.nix | 113 ++++++++++++++++++ 2 files changed, 156 insertions(+) create mode 100644 plugins/by-name/faster/default.nix create mode 100644 tests/test-sources/plugins/by-name/faster/default.nix diff --git a/plugins/by-name/faster/default.nix b/plugins/by-name/faster/default.nix new file mode 100644 index 00000000..71f8a559 --- /dev/null +++ b/plugins/by-name/faster/default.nix @@ -0,0 +1,43 @@ +{ lib, ... }: +lib.nixvim.plugins.mkNeovimPlugin { + name = "faster"; + packPathName = "faster.nvim"; + package = "faster-nvim"; + description = "Selectively disable some features when a big file is opened or macro is executed."; + maintainers = [ lib.maintainers.saygo-png ]; + + settingsExample = { + behaviours = { + bigfile = { + on = true; + features_disabled = [ + "lsp" + "treesitter" + ]; + filesize = 2; + pattern = "*"; + extra_patterns = [ + { + filesize = 1.1; + pattern = "*.md"; + } + { pattern = "*.log"; } + ]; + }; + fastmacro = { + on = true; + features_disabled = [ "lualine" ]; + }; + }; + features = { + lsp = { + on = true; + defer = false; + }; + treesitter = { + on = true; + defer = false; + }; + }; + }; +} diff --git a/tests/test-sources/plugins/by-name/faster/default.nix b/tests/test-sources/plugins/by-name/faster/default.nix new file mode 100644 index 00000000..d4596730 --- /dev/null +++ b/tests/test-sources/plugins/by-name/faster/default.nix @@ -0,0 +1,113 @@ +{ + empty = { + plugins.faster.enable = true; + }; + + defaults = { + plugins.faster = { + enable = true; + settings = { + behaviours = { + bigfile = { + on = true; + features_disabled = [ + "illuminate" + "matchparen" + "lsp" + "treesitter" + "indent_blankline" + "vimopts" + "syntax" + "filetype" + ]; + filesize = 2; + pattern = "*"; + extra_patterns = [ ]; + }; + fastmacro = { + on = true; + features_disabled = [ "lualine" ]; + }; + features = { + filetype = { + on = true; + defer = true; + }; + illuminate = { + on = true; + defer = false; + }; + indent_blankline = { + on = true; + defer = false; + }; + lsp = { + on = true; + defer = false; + }; + lualine = { + on = true; + defer = false; + }; + matchparen = { + on = true; + defer = false; + }; + syntax = { + on = true; + defer = true; + }; + treesitter = { + on = true; + defer = false; + }; + vimopts = { + on = true; + defer = false; + }; + }; + }; + }; + }; + }; + + example = { + plugins.faster = { + enable = true; + settings = { + behaviours = { + bigfile = { + on = true; + features_disabled = [ + "lsp" + "treesitter" + ]; + filesize = 2; + pattern = "*"; + extra_patterns = [ + { + filesize = 1.1; + pattern = "*.md"; + } + { pattern = "*.log"; } + ]; + }; + fastmacro = { + on = true; + features_disabled = [ "lualine" ]; + }; + }; + features = { + lsp = { + on = true; + defer = false; + }; + treesitter = { + on = true; + defer = false; + }; + }; + }; + }; + }; +}