diff --git a/modules/extra/deprecations.nix b/modules/extra/deprecations.nix index 31d0995d..760b7b38 100644 --- a/modules/extra/deprecations.nix +++ b/modules/extra/deprecations.nix @@ -358,5 +358,10 @@ in { [ (mkRenamedOptionModule ["vim" "languages" "ts"] ["vim" "languages" "typescript"]) ] + + # 2026-04-19 + [ + (mkRenamedOptionModule ["vim" "utility" "vim-wakatime" "cli-path"] ["vim" "utility" "vim-wakatime" "setupOpts" "cli_path"]) + ] ]; } diff --git a/modules/plugins/utility/default.nix b/modules/plugins/utility/default.nix index 98a455fb..a2a3d870 100644 --- a/modules/plugins/utility/default.nix +++ b/modules/plugins/utility/default.nix @@ -26,7 +26,7 @@ ./snacks-nvim ./surround ./telescope - ./wakatime + ./vim-wakatime ./yanky-nvim ./yazi-nvim ./undotree diff --git a/modules/plugins/utility/vim-wakatime/config.nix b/modules/plugins/utility/vim-wakatime/config.nix new file mode 100644 index 00000000..98262330 --- /dev/null +++ b/modules/plugins/utility/vim-wakatime/config.nix @@ -0,0 +1,19 @@ +{ + config, + lib, + ... +}: let + inherit (lib.modules) mkIf; + + cfg = config.vim.utility.vim-wakatime; +in { + config = mkIf cfg.enable { + vim = { + lazy.plugins."vim-wakatime" = { + package = "vim-wakatime"; + setupModule = "wakatime"; + inherit (cfg) setupOpts; + }; + }; + }; +} diff --git a/modules/plugins/utility/wakatime/default.nix b/modules/plugins/utility/vim-wakatime/default.nix similarity index 100% rename from modules/plugins/utility/wakatime/default.nix rename to modules/plugins/utility/vim-wakatime/default.nix diff --git a/modules/plugins/utility/vim-wakatime/vim-wakatime.nix b/modules/plugins/utility/vim-wakatime/vim-wakatime.nix new file mode 100644 index 00000000..efc81332 --- /dev/null +++ b/modules/plugins/utility/vim-wakatime/vim-wakatime.nix @@ -0,0 +1,27 @@ +{ + pkgs, + lib, + ... +}: let + inherit (lib.options) mkOption mkEnableOption literalExpression; + inherit (lib.types) str; + inherit (lib.nvim.types) mkPluginSetupOption; +in { + options.vim.utility.vim-wakatime = { + enable = mkEnableOption '' + automatic time tracking and metrics generated from your programming activity [vim-wakatime] + ''; + + setupOpts = mkPluginSetupOption "vim-wakatime" { + cli_path = mkOption { + type = str; + default = lib.getExe' pkgs.wakatime-cli "wakatime-cli"; + defaultText = literalExpression "lib.getExe' pkgs.wakatime-cli \"wakatime-cli\""; + example = literalExpression "wakatime-cli"; + description = '' + Path to wakatime-cli executable. Set to `"wakatime-cli"` to get `wakatime-cli` from {env}`PATH`. + ''; + }; + }; + }; +} diff --git a/modules/plugins/utility/wakatime/config.nix b/modules/plugins/utility/wakatime/config.nix deleted file mode 100644 index 675f0034..00000000 --- a/modules/plugins/utility/wakatime/config.nix +++ /dev/null @@ -1,22 +0,0 @@ -{ - config, - pkgs, - lib, - ... -}: let - inherit (lib.modules) mkIf; - inherit (lib.meta) getExe; - - cfg = config.vim.utility.vim-wakatime; -in { - config = mkIf cfg.enable { - vim = { - startPlugins = [pkgs.vimPlugins.vim-wakatime]; - - # Wakatime configuration is stored as vim globals. - globals = { - "wakatime_CLIPath" = mkIf (cfg.cli-package != null) "${getExe cfg.cli-package}"; - }; - }; - }; -} diff --git a/modules/plugins/utility/wakatime/vim-wakatime.nix b/modules/plugins/utility/wakatime/vim-wakatime.nix deleted file mode 100644 index 04f27868..00000000 --- a/modules/plugins/utility/wakatime/vim-wakatime.nix +++ /dev/null @@ -1,24 +0,0 @@ -{ - pkgs, - lib, - ... -}: let - inherit (lib.options) mkEnableOption mkOption; - inherit (lib.types) nullOr package; -in { - options.vim.utility.vim-wakatime = { - enable = mkEnableOption '' - automatic time tracking and metrics generated from your programming activity [vim-wakatime] - ''; - - cli-package = mkOption { - type = nullOr package; - default = pkgs.wakatime-cli; - example = null; - description = '' - The package that should be used for wakatime-cli. - Set as null to use the default path in {env}`$XDG_DATA_HOME` - ''; - }; - }; -} diff --git a/npins/sources.json b/npins/sources.json index cdaf4017..e47227b5 100644 --- a/npins/sources.json +++ b/npins/sources.json @@ -2888,6 +2888,22 @@ "url": "https://github.com/mhinz/vim-startify/archive/4e089dffdad46f3f5593f34362d530e8fe823dcf.tar.gz", "hash": "sha256-W5N/Dqxf9hSXEEJsrEkXInFwBXNBJe9Dzx9TVS12mPk=" }, + "vim-wakatime": { + "type": "GitRelease", + "repository": { + "type": "GitHub", + "owner": "wakatime", + "repo": "vim-wakatime" + }, + "pre_releases": false, + "version_upper_bound": null, + "release_prefix": null, + "submodules": false, + "version": "12.0.0", + "revision": "cb7ba055330245b3a9d29f8bb4b82aeb2d52e580", + "url": "https://api.github.com/repos/wakatime/vim-wakatime/tarball/refs/tags/12.0.0", + "hash": "sha256-3D+07D3NKndFeTSNMJiG1HJl5Cv5/GjWJUU+6FOSI/k=" + }, "which-key-nvim": { "type": "Git", "repository": {