{ 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;}]; }; }; }; }