From cb4ce03b35cf9f46d1df129c44685bfb4d08f3a3 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Wed, 10 May 2023 14:41:17 +0300 Subject: [PATCH 1/7] feat: vim-wakatime --- extra.nix | 1 + flake.lock | 17 +++++++++++++++++ flake.nix | 5 +++++ lib/types/plugins.nix | 1 + modules/utility/default.nix | 1 + modules/utility/wakatime/config.nix | 15 +++++++++++++++ modules/utility/wakatime/default.nix | 6 ++++++ modules/utility/wakatime/vim-wakatime.nix | 8 ++++++++ 8 files changed, 54 insertions(+) create mode 100644 modules/utility/wakatime/config.nix create mode 100644 modules/utility/wakatime/default.nix create mode 100644 modules/utility/wakatime/vim-wakatime.nix diff --git a/extra.nix b/extra.nix index 767d5dd6..6794c489 100644 --- a/extra.nix +++ b/extra.nix @@ -151,6 +151,7 @@ inputs: let vim.utility = { colorizer.enable = true; + vim-wakatime.enable = true; icon-picker.enable = true; diffview-nvim.enable = true; motion = { diff --git a/flake.lock b/flake.lock index 4e4fbde1..25eb38f8 100644 --- a/flake.lock +++ b/flake.lock @@ -1359,6 +1359,7 @@ "vim-repeat": "vim-repeat", "vim-startify": "vim-startify", "vim-vsnip": "vim-vsnip", + "vim-wakatime": "vim-wakatime", "which-key": "which-key", "zig": "zig" } @@ -1732,6 +1733,22 @@ "type": "github" } }, + "vim-wakatime": { + "flake": false, + "locked": { + "lastModified": 1683640992, + "narHash": "sha256-DIj+ps5XfpFHwBJ42EBw5ayHfdzCc+bDvpyYm/p+9Ec=", + "owner": "wakatime", + "repo": "vim-wakatime", + "rev": "02be9238319937e04afea73fd0fc7da5413ee041", + "type": "github" + }, + "original": { + "owner": "wakatime", + "repo": "vim-wakatime", + "type": "github" + } + }, "vowel-src": { "flake": false, "locked": { diff --git a/flake.nix b/flake.nix index e488e894..a3a39a43 100644 --- a/flake.nix +++ b/flake.nix @@ -373,6 +373,11 @@ }; # Utilities + vim-wakatime = { + url = "github:wakatime/vim-wakatime"; + flake = false; + }; + colorizer = { url = "github:uga-rosa/ccc.nvim"; flake = false; diff --git a/lib/types/plugins.nix b/lib/types/plugins.nix index f99394fe..77c3eda4 100644 --- a/lib/types/plugins.nix +++ b/lib/types/plugins.nix @@ -81,6 +81,7 @@ with lib; let "project-nvim" "elixir-ls" "elixir-tools" + "vim-wakatime" ]; # You can either use the name of the plugin or a package. pluginsType = with types; diff --git a/modules/utility/default.nix b/modules/utility/default.nix index 1bd03c64..96589dd0 100644 --- a/modules/utility/default.nix +++ b/modules/utility/default.nix @@ -8,5 +8,6 @@ _: { ./icon-picker ./telescope ./diffview + ./wakatime ]; } diff --git a/modules/utility/wakatime/config.nix b/modules/utility/wakatime/config.nix new file mode 100644 index 00000000..b7e35f49 --- /dev/null +++ b/modules/utility/wakatime/config.nix @@ -0,0 +1,15 @@ +{ + config, + lib, + ... +}: +with lib; +with builtins; let + cfg = config.vim.utility.vim-wakatime; +in { + config = mkIf (cfg.enable) { + vim.startPlugins = [ + "vim-wakatime" + ]; + }; +} diff --git a/modules/utility/wakatime/default.nix b/modules/utility/wakatime/default.nix new file mode 100644 index 00000000..d6d67d57 --- /dev/null +++ b/modules/utility/wakatime/default.nix @@ -0,0 +1,6 @@ +_: { + imports = [ + ./config.nix + ./vim-wakatime.nix + ]; +} diff --git a/modules/utility/wakatime/vim-wakatime.nix b/modules/utility/wakatime/vim-wakatime.nix new file mode 100644 index 00000000..b97b9eac --- /dev/null +++ b/modules/utility/wakatime/vim-wakatime.nix @@ -0,0 +1,8 @@ +{lib, ...}: +with lib; +with builtins; { + options.vim.utility.vim-wakatime = { + enable = mkEnableOption "Enable vim-wakatime"; + }; +} + From f0bf3a7ae24f5bd4e50df4d407180d4e6223a54a Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Wed, 10 May 2023 14:56:49 +0300 Subject: [PATCH 2/7] dev: get vim-wakatime from nixpkgs --- modules/utility/wakatime/config.nix | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/modules/utility/wakatime/config.nix b/modules/utility/wakatime/config.nix index b7e35f49..9a9b7077 100644 --- a/modules/utility/wakatime/config.nix +++ b/modules/utility/wakatime/config.nix @@ -1,6 +1,7 @@ { config, lib, + pkgs, ... }: with lib; @@ -9,7 +10,7 @@ with builtins; let in { config = mkIf (cfg.enable) { vim.startPlugins = [ - "vim-wakatime" + pkgs.vimPlugins.vim-wakatime ]; }; } From a4b7a3ec3c9c4d4d4fad92444e375772dc09b15e Mon Sep 17 00:00:00 2001 From: n3oney Date: Mon, 8 May 2023 13:40:36 +0200 Subject: [PATCH 3/7] fix: remove non-existent fallback function --- modules/completion/nvim-cmp/config.nix | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/modules/completion/nvim-cmp/config.nix b/modules/completion/nvim-cmp/config.nix index 7bdda3d4..1cc4fa46 100644 --- a/modules/completion/nvim-cmp/config.nix +++ b/modules/completion/nvim-cmp/config.nix @@ -84,7 +84,9 @@ in { elseif has_words_before() then cmp.complete() else - fallback() + local termcode = vim.api.nvim_replace_termcodes(${builtins.toJSON mappings.next.value}, true, false, true) + + vim.fn.feedkeys(termcode, 'n') end end '') @@ -157,7 +159,9 @@ in { elseif has_words_before() then cmp.complete() else - fallback() + local termcode = vim.api.nvim_replace_termcodes(${builtins.toJSON mappings.next.value}, true, false, true) + + vim.fn.feedkeys(termcode, 'n') end end '') From 908dbd04b0695bbb558447b3430e750dda3098b1 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Wed, 10 May 2023 15:09:06 +0300 Subject: [PATCH 4/7] dev: drop vim-wakatime flake input --- flake.nix | 5 ----- lib/types/plugins.nix | 1 - 2 files changed, 6 deletions(-) diff --git a/flake.nix b/flake.nix index a3a39a43..e488e894 100644 --- a/flake.nix +++ b/flake.nix @@ -373,11 +373,6 @@ }; # Utilities - vim-wakatime = { - url = "github:wakatime/vim-wakatime"; - flake = false; - }; - colorizer = { url = "github:uga-rosa/ccc.nvim"; flake = false; diff --git a/lib/types/plugins.nix b/lib/types/plugins.nix index 77c3eda4..f99394fe 100644 --- a/lib/types/plugins.nix +++ b/lib/types/plugins.nix @@ -81,7 +81,6 @@ with lib; let "project-nvim" "elixir-ls" "elixir-tools" - "vim-wakatime" ]; # You can either use the name of the plugin or a package. pluginsType = with types; From ab35aaf3b7940f1960d2462ef2deb737be003000 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Wed, 10 May 2023 15:09:30 +0300 Subject: [PATCH 5/7] style: formatting --- modules/utility/wakatime/vim-wakatime.nix | 1 - 1 file changed, 1 deletion(-) diff --git a/modules/utility/wakatime/vim-wakatime.nix b/modules/utility/wakatime/vim-wakatime.nix index b97b9eac..78655067 100644 --- a/modules/utility/wakatime/vim-wakatime.nix +++ b/modules/utility/wakatime/vim-wakatime.nix @@ -5,4 +5,3 @@ with builtins; { enable = mkEnableOption "Enable vim-wakatime"; }; } - From 4e43b6e0090b6d1657df3787ec2c757447ec4420 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Wed, 10 May 2023 16:46:33 +0300 Subject: [PATCH 6/7] dev: re-lock flake --- flake.lock | 17 ----------------- 1 file changed, 17 deletions(-) diff --git a/flake.lock b/flake.lock index 25eb38f8..4e4fbde1 100644 --- a/flake.lock +++ b/flake.lock @@ -1359,7 +1359,6 @@ "vim-repeat": "vim-repeat", "vim-startify": "vim-startify", "vim-vsnip": "vim-vsnip", - "vim-wakatime": "vim-wakatime", "which-key": "which-key", "zig": "zig" } @@ -1733,22 +1732,6 @@ "type": "github" } }, - "vim-wakatime": { - "flake": false, - "locked": { - "lastModified": 1683640992, - "narHash": "sha256-DIj+ps5XfpFHwBJ42EBw5ayHfdzCc+bDvpyYm/p+9Ec=", - "owner": "wakatime", - "repo": "vim-wakatime", - "rev": "02be9238319937e04afea73fd0fc7da5413ee041", - "type": "github" - }, - "original": { - "owner": "wakatime", - "repo": "vim-wakatime", - "type": "github" - } - }, "vowel-src": { "flake": false, "locked": { From 50c2e916260849f62dfdd68a7ddaee9b44f7f3a8 Mon Sep 17 00:00:00 2001 From: NotAShelf Date: Thu, 11 May 2023 16:21:52 +0300 Subject: [PATCH 7/7] feat: provide wakatime-cli package option --- modules/utility/wakatime/config.nix | 8 ++++++++ modules/utility/wakatime/vim-wakatime.nix | 12 +++++++++++- 2 files changed, 19 insertions(+), 1 deletion(-) diff --git a/modules/utility/wakatime/config.nix b/modules/utility/wakatime/config.nix index 9a9b7077..fb990747 100644 --- a/modules/utility/wakatime/config.nix +++ b/modules/utility/wakatime/config.nix @@ -12,5 +12,13 @@ in { vim.startPlugins = [ pkgs.vimPlugins.vim-wakatime ]; + + vim.configRC.vim-wakatime = nvim.dag.entryAnywhere '' + ${ + if cfg.cli-package == null + then "" + else ''let g:wakatime_CLIPath = "${cfg.cli-package}"'' + } + ''; }; } diff --git a/modules/utility/wakatime/vim-wakatime.nix b/modules/utility/wakatime/vim-wakatime.nix index 78655067..2df357eb 100644 --- a/modules/utility/wakatime/vim-wakatime.nix +++ b/modules/utility/wakatime/vim-wakatime.nix @@ -1,7 +1,17 @@ -{lib, ...}: +{ + lib, + pkgs, + ... +}: with lib; with builtins; { options.vim.utility.vim-wakatime = { enable = mkEnableOption "Enable vim-wakatime"; + + cli-package = mkOption { + type = with types; nullOr package; + default = pkgs.wakatime; + description = "The package that should be used for wakatime-cli. Set as null to use the default path in `$XDG_DATA_HOME`"; + }; }; }