aboutsummaryrefslogtreecommitdiffstats
path: root/hm/soispha/conf/nvim/plgs/lsp-progress-nvim/default.nix
diff options
context:
space:
mode:
Diffstat (limited to 'hm/soispha/conf/nvim/plgs/lsp-progress-nvim/default.nix')
-rw-r--r--hm/soispha/conf/nvim/plgs/lsp-progress-nvim/default.nix50
1 files changed, 50 insertions, 0 deletions
diff --git a/hm/soispha/conf/nvim/plgs/lsp-progress-nvim/default.nix b/hm/soispha/conf/nvim/plgs/lsp-progress-nvim/default.nix
new file mode 100644
index 00000000..6602ceb6
--- /dev/null
+++ b/hm/soispha/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;}];
+ };
+ };
+ };
+}