about summary refs log tree commit diff stats
path: root/modules/by-name/nv/nvim/plgs/lsp-progress-nvim/default.nix
diff options
context:
space:
mode:
authorBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-11-09 12:35:44 +0100
committerBenedikt Peetz <benedikt.peetz@b-peetz.de>2024-11-09 12:54:51 +0100
commit2122a01f99c6da466b8f0f55c965c11a9043d117 (patch)
tree6c1697afc30a5bb72635bda7db9b5610386a5b71 /modules/by-name/nv/nvim/plgs/lsp-progress-nvim/default.nix
parentfix(pkgs/stamp): Fallback to `dot-license` (diff)
downloadnixos-config-2122a01f99c6da466b8f0f55c965c11a9043d117.tar.gz
nixos-config-2122a01f99c6da466b8f0f55c965c11a9043d117.zip
refactor(modules/legacy/conf/nvim): Move to `by-name`
Diffstat (limited to 'modules/by-name/nv/nvim/plgs/lsp-progress-nvim/default.nix')
-rw-r--r--modules/by-name/nv/nvim/plgs/lsp-progress-nvim/default.nix53
1 files changed, 53 insertions, 0 deletions
diff --git a/modules/by-name/nv/nvim/plgs/lsp-progress-nvim/default.nix b/modules/by-name/nv/nvim/plgs/lsp-progress-nvim/default.nix
new file mode 100644
index 00000000..1a2fb6eb
--- /dev/null
+++ b/modules/by-name/nv/nvim/plgs/lsp-progress-nvim/default.nix
@@ -0,0 +1,53 @@
+{
+  lib,
+  config,
+  pkgs,
+  ...
+}: let
+  cfg = config.soispha.programs.nvim;
+in {
+  home-manager.users.soispha.programs.nixvim = lib.mkIf cfg.enable {
+    # TODO: package lsp-progress-nvim though a module
+    extraConfigLuaPost = ''
+      ${lib.strings.fileContents ./lua/lsp-progress-nvim.lua}
+    '';
+    extraPlugins = [
+      pkgs.vimExtraPlugins.lsp-progress-nvim
+    ];
+
+    # Status line setup
+    autoGroups.lsp_refresh.clear = true;
+    autoCmd = [
+      {
+        event = ["User LspProgressStatusUpdated"];
+        pattern = ["*"];
+        callback =
+          /*
+          lua
+          */
+          {
+            __raw = ''
+              require("lualine").refresh
+            '';
+          };
+        group = "lsp_refresh";
+        description = "Refresh the statusbar when the lsp status was updated.";
+      }
+    ];
+    plugins.lualine = let
+      get_lsp_progress = {
+        __raw =
+          /*
+          lua
+          */
+          ''
+            require('lsp-progress').progress
+          '';
+      };
+    in {
+      sections = {
+        lualine_c = [{name = get_lsp_progress;}];
+      };
+    };
+  };
+}