about summary refs log tree commit diff stats
path: root/modules/home.legacy/conf/nvim/plgs/lsp-progress-nvim/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'modules/home.legacy/conf/nvim/plgs/lsp-progress-nvim/default.nix')
-rw-r--r--modules/home.legacy/conf/nvim/plgs/lsp-progress-nvim/default.nix50
1 files changed, 50 insertions, 0 deletions
diff --git a/modules/home.legacy/conf/nvim/plgs/lsp-progress-nvim/default.nix b/modules/home.legacy/conf/nvim/plgs/lsp-progress-nvim/default.nix
new file mode 100644
index 00000000..6602ceb6
--- /dev/null
+++ b/modules/home.legacy/conf/nvim/plgs/lsp-progress-nvim/default.nix
@@ -0,0 +1,50 @@
+{
+  lib,
+  pkgs,
+  ...
+}: {
+  programs.nixvim = {
+    # 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;}];
+      };
+    };
+  };
+}