From f8d657c6f3a630fd9448d1b3e1e81d44ce4b6b1c Mon Sep 17 00:00:00 2001 From: Gaetan Lepage Date: Thu, 26 Jan 2023 14:31:50 +0100 Subject: [PATCH] plugins: Add tagbar --- plugins/default.nix | 1 + plugins/languages/tagbar.nix | 35 +++++++++++++++++++++++++++++++++++ 2 files changed, 36 insertions(+) create mode 100644 plugins/languages/tagbar.nix diff --git a/plugins/default.nix b/plugins/default.nix index a76b39fb..30230b7b 100644 --- a/plugins/default.nix +++ b/plugins/default.nix @@ -25,6 +25,7 @@ ./languages/nix.nix ./languages/plantuml-syntax.nix ./languages/rust.nix + ./languages/tagbar.nix ./languages/treesitter.nix ./languages/treesitter-context.nix ./languages/treesitter-refactor.nix diff --git a/plugins/languages/tagbar.nix b/plugins/languages/tagbar.nix new file mode 100644 index 00000000..982c65f9 --- /dev/null +++ b/plugins/languages/tagbar.nix @@ -0,0 +1,35 @@ +{ pkgs +, lib +, config +, ... +}: +let + cfg = config.plugins.tagbar; + helpers = import ../helpers.nix { inherit lib; }; +in +with lib; +{ + options.plugins.tagbar = { + + enable = mkEnableOption "tagbar"; + + package = helpers.mkPackageOption "tagbar" pkgs.vimPlugins.tagbar; + + extraConfig = helpers.mkNullOrOption types.attrs '' + The configuration options for vimtex without the 'tagbar_' prefix. + Example: To set 'tagbar_show_tag_count' to 1, write + extraConfig = { + show_tag_count= true; + }; + ''; + }; + + config = mkIf cfg.enable { + + extraPlugins = [ cfg.package ]; + + extraPackages = [ pkgs.ctags ]; + + globals = mapAttrs' (name: value: nameValuePair ("tagbar_" + name) value) cfg.extraConfig; + }; +}