add lsp progress in lualine components
This commit is contained in:
parent
047d9005a2
commit
3e9a5533e4
|
|
@ -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 {
|
require('lualine').setup {
|
||||||
options = {
|
options = {
|
||||||
icons_enabled = true,
|
icons_enabled = true,
|
||||||
|
|
@ -23,7 +45,7 @@ require('lualine').setup {
|
||||||
lualine_c = {
|
lualine_c = {
|
||||||
{ "filename", path = 1, symbols = { modified = " ", readonly = "", unnamed = "" } }
|
{ "filename", path = 1, symbols = { modified = " ", readonly = "", unnamed = "" } }
|
||||||
},
|
},
|
||||||
lualine_x = { 'encoding', 'fileformat', 'filetype' },
|
lualine_x = { LSP_progress, 'encoding', 'fileformat', 'filetype' },
|
||||||
lualine_y = { 'progress' },
|
lualine_y = { 'progress' },
|
||||||
lualine_z = { 'location' }
|
lualine_z = { 'location' }
|
||||||
},
|
},
|
||||||
|
|
|
||||||
Reference in New Issue