add lsp progress in lualine components

This commit is contained in:
krolyxon 2023-01-26 11:27:54 +05:30
parent 047d9005a2
commit 3e9a5533e4
1 changed files with 23 additions and 1 deletions

View File

@ -1,3 +1,25 @@
local function LSP_progress()
if not rawget(vim, "lsp") then
return ""
end
local Lsp = vim.lsp.util.get_progress_messages()[1]
if vim.o.columns < 120 or not Lsp then
return ""
end
local msg = Lsp.message or ""
local percentage = Lsp.percentage or 0
local title = Lsp.title or ""
local spinners = { "", "" }
local ms = vim.loop.hrtime() / 1000000
local frame = math.floor(ms / 120) % #spinners
local content = string.format(" %%<%s %s %s (%s%%%%) ", spinners[frame + 1], title, msg, percentage)
return ("%#St_LspProgress#" .. content) or ""
end
require('lualine').setup {
options = {
icons_enabled = true,
@ -23,7 +45,7 @@ require('lualine').setup {
lualine_c = {
{ "filename", path = 1, symbols = { modified = "", readonly = "", unnamed = "" } }
},
lualine_x = { 'encoding', 'fileformat', 'filetype' },
lualine_x = { LSP_progress, 'encoding', 'fileformat', 'filetype' },
lualine_y = { 'progress' },
lualine_z = { 'location' }
},