Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Lsp-progress don't work at all with me #13

Open
melsiir opened this issue Jan 4, 2022 · 2 comments
Open

Lsp-progress don't work at all with me #13

melsiir opened this issue Jan 4, 2022 · 2 comments

Comments

@melsiir
Copy link

melsiir commented Jan 4, 2022

I tried the official template but it just doesn't showing and this my config iam using lualine and termux :

-- Eviline config for lualine
-- Author: shadmansaleh
-- Credit: glepnir
local lualine = require('lualine')

local function diff_source()
local gitsigns = vim.b.gitsigns_status_dict
if gitsigns then
return {
added = gitsigns.added,
modified = gitsigns.changed,
removed = gitsigns.removed
}
end
end

local lsp = function()
local msg = ''
local buf_ft = vim.api.nvim_buf_get_option(0, 'filetype')
local clients = vim.lsp.get_active_clients()
if next(clients) == nil then
return msg
end
for _, client in ipairs(clients) do
local filetypes = client.config.filetypes
if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then
-- return client.name
return ''
end
end
return msg
end

-- local function lsp_progress(_, is_active)
-- if not is_active then
-- return
-- end
-- local messages = vim.lsp.util.get_progress_messages()
-- if #messages == 0 then
-- return ""
-- end
-- -- dump(messages)
-- local status = {}
-- for _, msg in pairs(messages) do
-- local title = ""
-- if msg.title then
-- title = msg.title
-- end
-- -- if msg.message then
-- -- title = title .. " " .. msg.message
-- -- end
-- table.insert(status, (msg.percentage or 0) .. "%% " .. title)
-- end
-- local spinners = { "⠋", "⠙", "⠹", "⠸", "⠼", "⠴", "⠦", "⠧", "⠇", "⠏" }
-- local ms = vim.loop.hrtime() / 1000000
-- local frame = math.floor(ms / 120) % #spinners
-- return table.concat(status, "  ") .. " " .. spinners[frame + 1]
-- end

-- vim.cmd("au User LspProgressUpdate let &ro = &ro")

-- Color table for highlights
-- stylua: ignore
local colors = {
bg = '#202328',
fg = '#bbc2cf',
yellow = '#ECBE7B',
cyan = '#008080',
darkblue = '#081633',
green = '#98be65',
orange = '#FF8800',
violet = '#a9a1e1',
magenta = '#c678dd',
blue = '#51afef',
red = '#ec5f67',
}

local conditions = {
buffer_not_empty = function()
return vim.fn.empty(vim.fn.expand('%:t')) ~= 1
end,
hide_in_width = function()
return vim.fn.winwidth(0) > 80
end,
check_git_workspace = function()
local filepath = vim.fn.expand('%:p:h')
local gitdir = vim.fn.finddir('.git', filepath .. ';')
return gitdir and #gitdir > 0 and #gitdir < #filepath
end,
}

-- Config
local config = {
options = {
-- Disable sections and component separators
component_separators = '',
section_separators = '',
theme = {
-- We are going to use lualine_c an lualine_x as left and
-- right section. Both are highlighted by c theme . So we
-- are just setting default looks o statusline
normal = { c = { fg = colors.fg, bg = colors.bg } },
inactive = { c = { fg = colors.fg, bg = colors.bg } },
},
},
sections = {
-- these are to remove the defaults
lualine_a = {},
lualine_b = {},
lualine_y = {},
lualine_z = {},
-- These will be filled later
lualine_c = {},
lualine_x = {},
},
inactive_sections = {
-- these are to remove the defaults
lualine_a = {},
lualine_b = {},
lualine_y = {},
lualine_z = {},
lualine_c = {},
lualine_x = {},
},
}

-- Inserts a component in lualine_c at left section
local function ins_left(component)
table.insert(config.sections.lualine_c, component)
end

-- Inserts a component in lualine_x ot right section
local function ins_right(component)
table.insert(config.sections.lualine_x, component)
end

ins_left({
function()
return '▊'
end,
color = { fg = colors.blue }, -- Sets highlighting of component
padding = { left = 0, right = 0 }, -- We don't need space before this
})


ins_left ({
'mode',
padding = {right = 1}
})

ins_left({
-- mode component
function()
-- auto change color according to neovims mode
local mode_color = {
n = colors.red,
i = colors.green,
v = colors.blue,
['�'] = colors.blue,
V = colors.blue,
c = colors.magenta,
no = colors.red,
s = colors.orange,
S = colors.orange,
['�'] = colors.orange,
ic = colors.yellow,
R = colors.violet,
Rv = colors.violet,
cv = colors.red,
ce = colors.red,
r = colors.cyan,
rm = colors.cyan,
['r?'] = colors.cyan,
['!'] = colors.red,
t = colors.red,
}
vim.api.nvim_command('hi! LualineMode guifg=' .. mode_color[vim.fn.mode()] .. ' guibg=' .. colors.bg)
return ''
end,
color = 'LualineMode',
padding = { right = 0 },
})


-- ins_left({
-- -- filesize component
-- 'filesize',
-- cond = conditions.buffer_not_empty,
-- })

-- ins_left({
-- 'filename',
-- cond = conditions.buffer_not_empty,
-- color = { fg = colors.magenta, gui = 'bold' },
-- })

ins_left({
'branch',
icon = '',
color = { fg = colors.violet },
})

ins_left({
'diff',source = diff_source,
-- Is it me or the symbol for modified us really weird
symbols = { added = ' ', modified = '柳 ', removed = ' ' },
diff_color = {
added = { fg = colors.green },
modified = { fg = colors.orange },
removed = { fg = colors.red },
},
-- cond = conditions.hide_in_width,
})

ins_left({
'diagnostics',
sources = { 'nvim_diagnostic' },
symbols = { error = ' ', warn = ' ', info = ' ' },
diagnostics_color = {
color_error = { fg = colors.red },
color_warn = { fg = colors.yellow },
color_info = { fg = colors.cyan },
},
})

-- Insert mid section. You can make any number of sections in neovim :)
-- for lualine it's any number greater then 2

-- ins_left({
-- function()
-- return '%='
-- end,
-- })

-- Add components to right sections
-- ins_right({
-- 'o:encoding', -- option component same as &encoding in viml
-- fmt = string.upper, -- I'm not sure why it's upper case either ;)
-- cond = conditions.hide_in_width,
-- color = { fg = colors.green, gui = 'bold' },
-- })

-- ins_right({
-- 'fileformat',
-- fmt = string.upper,
-- icons_enabled = false, -- I think icons are cool but Eviline doesn't have them. sigh
-- color = { fg = colors.green, gui = 'bold' },
-- })

ins_left ({
'lsp_progress',
display_components = { 'lsp_client_name', 'spinner' },
-- With spinner
-- display_components = { 'lsp_client_name', 'spinner', { 'title', 'percentage', 'message' }},
colors = {
percentage = colors.cyan,
title = colors.cyan,
message = colors.cyan,
spinner = colors.cyan,
lsp_client_name = colors.magenta,
use = true,
},
separators = {
component = ' ',
progress = ' | ',
message = { pre = '(', post = ')'},
percentage = { pre = '', post = '%% ' },
title = { pre = '', post = ': ' },
lsp_client_name = { pre = '[', post = ']' },
spinner = { pre = '', post = '' },
message = { commenced = 'In Progress', completed = 'Completed' },
},
display_components = { 'lsp_client_name', 'spinner', { 'title', 'percentage', 'message' } },
timer = { progress_enddelay = 500, spinner = 1000, lsp_client_name_enddelay = 1000 },
spinner_symbols = { '🌑 ', '🌒 ', '🌓 ', '🌔 ', '🌕 ', '🌖 ', '🌗 ', '🌘 ' },
})

ins_right({
-- Lsp server name .
-- 'lsp_progress',
lsp,
-- lsp_progress,
-- icon = ' LSP:',
color = { fg = '#ffffff'},
padding = { left = 0, right = 0 },
})

ins_right({ 'location',color = { fg = colors.blue },
padding = { left = 0, right = 0 },
})

ins_right({ 'progress', color = { fg = colors.fg, gui = 'bold' },padding = { left = 0, right = 0 }, })

ins_right({
function()
return '▊'
end,
color = { fg = colors.blue },
padding = { left = 1 },
})

-- Now don't forget to initialize lualine
lualine.setup(config)

@megalithic
Copy link

highly recommend wrapping your code blocks in at least opening and closing triple backticks: and

@towry
Copy link

towry commented Dec 29, 2022

Doesn't work indeed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants