Last active
July 22, 2024 08:35
-
-
Save dharmx/47139967b0c4303572e3742af725300c to your computer and use it in GitHub Desktop.
Minimal feline configuration.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
local present, feline = pcall(require, "feline") | |
if not present then return end | |
-- Customizations {{{ | |
local theme = { | |
aqua = "#7AB0DF", | |
bg = "#1C212A", | |
blue = "#5FB0FC", | |
cyan = "#70C0BA", | |
darkred = "#FB7373", | |
fg = "#C7C7CA", | |
gray = "#222730", | |
green = "#79DCAA", | |
lime = "#54CED6", | |
orange = "#FFD064", | |
pink = "#D997C8", | |
purple = "#C397D8", | |
red = "#F87070", | |
yellow = "#FFE59E" | |
} | |
local mode_theme = { | |
["NORMAL"] = theme.green, | |
["OP"] = theme.cyan, | |
["INSERT"] = theme.aqua, | |
["VISUAL"] = theme.yellow, | |
["LINES"] = theme.darkred, | |
["BLOCK"] = theme.orange, | |
["REPLACE"] = theme.purple, | |
["V-REPLACE"] = theme.pink, | |
["ENTER"] = theme.pink, | |
["MORE"] = theme.pink, | |
["SELECT"] = theme.darkred, | |
["SHELL"] = theme.cyan, | |
["TERM"] = theme.lime, | |
["NONE"] = theme.gray, | |
["COMMAND"] = theme.blue, | |
} | |
local modes = setmetatable({ | |
["n"] = "N", | |
["no"] = "N", | |
["v"] = "V", | |
["V"] = "VL", | |
[""] = "VB", | |
["s"] = "S", | |
["S"] = "SL", | |
[""] = "SB", | |
["i"] = "I", | |
["ic"] = "I", | |
["R"] = "R", | |
["Rv"] = "VR", | |
["c"] = "C", | |
["cv"] = "EX", | |
["ce"] = "X", | |
["r"] = "P", | |
["rm"] = "M", | |
["r?"] = "C", | |
["!"] = "SH", | |
["t"] = "T", | |
}, { __index = function() return "-" end }) | |
-- }}} | |
-- Components {{{ | |
local component = {} | |
component.vim_mode = { | |
provider = function() return modes[vim.api.nvim_get_mode().mode] end, | |
hl = function() | |
return { | |
fg = "bg", | |
bg = require("feline.providers.vi_mode").get_mode_color(), | |
style = "bold", | |
name = "NeovimModeHLColor", | |
} | |
end, | |
left_sep = "block", | |
right_sep = "block", | |
} | |
component.git_branch = { | |
provider = "git_branch", | |
hl = { | |
fg = "fg", | |
bg = "bg", | |
style = "bold", | |
}, | |
left_sep = "block", | |
right_sep = "", | |
} | |
component.git_add = { | |
provider = "git_diff_added", | |
hl = { | |
fg = "green", | |
bg = "bg", | |
}, | |
left_sep = "", | |
right_sep = "", | |
} | |
component.git_delete = { | |
provider = "git_diff_removed", | |
hl = { | |
fg = "red", | |
bg = "bg", | |
}, | |
left_sep = "", | |
right_sep = "", | |
} | |
component.git_change = { | |
provider = "git_diff_changed", | |
hl = { | |
fg = "purple", | |
bg = "bg", | |
}, | |
left_sep = "", | |
right_sep = "", | |
} | |
component.separator = { | |
provider = "", | |
hl = { | |
fg = "bg", | |
bg = "bg", | |
}, | |
} | |
component.diagnostic_errors = { | |
provider = "diagnostic_errors", | |
hl = { | |
fg = "red", | |
}, | |
} | |
component.diagnostic_warnings = { | |
provider = "diagnostic_warnings", | |
hl = { | |
fg = "yellow", | |
}, | |
} | |
component.diagnostic_hints = { | |
provider = "diagnostic_hints", | |
hl = { | |
fg = "aqua", | |
}, | |
} | |
component.diagnostic_info = { | |
provider = "diagnostic_info", | |
} | |
component.lsp = { | |
provider = function() | |
if not rawget(vim, "lsp") then | |
return "" | |
end | |
local progress = vim.lsp.util.get_progress_messages()[1] | |
if vim.o.columns < 120 then | |
return "" | |
end | |
local clients = vim.lsp.get_active_clients({ bufnr = 0 }) | |
if #clients ~= 0 then | |
if progress then | |
local spinners = { | |
"◜ ", | |
"◠ ", | |
"◝ ", | |
"◞ ", | |
"◡ ", | |
"◟ ", | |
} | |
local ms = vim.loop.hrtime() / 1000000 | |
local frame = math.floor(ms / 120) % #spinners | |
local content = string.format("%%<%s", spinners[frame + 1]) | |
return content or "" | |
else | |
return "לּ LSP" | |
end | |
end | |
return "" | |
end, | |
hl = function() | |
local progress = vim.lsp.util.get_progress_messages()[1] | |
return { | |
fg = progress and "yellow" or "green", | |
bg = "gray", | |
style = "bold", | |
} | |
end, | |
left_sep = "", | |
right_sep = "block", | |
} | |
component.file_type = { | |
provider = { | |
name = "file_type", | |
opts = { | |
filetype_icon = true, | |
}, | |
}, | |
hl = { | |
fg = "fg", | |
bg = "gray", | |
}, | |
left_sep = "block", | |
right_sep = "block", | |
} | |
component.scroll_bar = { | |
provider = function() | |
local chars = setmetatable({ | |
" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", | |
" ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", " ", | |
}, { __index = function() return " " end }) | |
local line_ratio = vim.api.nvim_win_get_cursor(0)[1] / vim.api.nvim_buf_line_count(0) | |
local position = math.floor(line_ratio * 100) | |
local icon = chars[math.floor(line_ratio * #chars)] .. position | |
if position <= 5 then | |
icon = " TOP" | |
elseif position >= 95 then | |
icon = " BOT" | |
end | |
return icon | |
end, | |
hl = function() | |
local position = math.floor(vim.api.nvim_win_get_cursor(0)[1] / vim.api.nvim_buf_line_count(0) * 100) | |
local fg | |
local style | |
if position <= 5 then | |
fg = "aqua" | |
style = "bold" | |
elseif position >= 95 then | |
fg = "red" | |
style = "bold" | |
else | |
fg = "purple" | |
style = nil | |
end | |
return { | |
fg = fg, | |
style = style, | |
bg = "bg", | |
} | |
end, | |
left_sep = "block", | |
right_sep = "block", | |
} | |
-- }}} | |
-- Arrangements -- {{{ | |
vim.api.nvim_set_hl(0, "StatusLine", { bg = "#101317", fg = "#7AB0DF" }) | |
feline.setup({ | |
components = { | |
active = { | |
{}, -- left | |
{}, -- middle | |
{ -- right | |
component.vim_mode, | |
component.file_type, | |
component.lsp, | |
component.git_branch, | |
component.git_add, | |
component.git_delete, | |
component.git_change, | |
component.separator, | |
component.diagnostic_errors, | |
component.diagnostic_warnings, | |
component.diagnostic_info, | |
component.diagnostic_hints, | |
component.scroll_bar, | |
}, | |
}, | |
}, | |
theme = theme, | |
vi_mode_colors = mode_theme, | |
}) | |
-- }}} |
Have started getting this error:
vim.lsp.util.get_progress_messages() is deprecated, use vim.lsp.status() instead. :help deprecated Feature will be removed in Nvim 0.11
vim.lsp.util.get_progress_messages() is deprecated, use vim.lsp.status() instead. :help deprecated
stack traceback:
...ar/neovim/0.10.0/share/nvim/runtime/lua/vim/lsp/util.lua:350: in function 'get_progress_messag
es'
....config/nvim/lua/plugins/gui-statusline/theme-dharmx.lua:187: in function 'evaluate_if_functio
n'
...cal/share/nvim/lazy/feline.nvim/lua/feline/generator.lua:424: in function <...cal/share/nvim/l
azy/feline.nvim/lua/feline/generator.lua:411>
[C]: in function 'pcall'
...cal/share/nvim/lazy/feline.nvim/lua/feline/generator.lua:498: in function 'parse_component_han
dle_errors'
...cal/share/nvim/lazy/feline.nvim/lua/feline/generator.lua:615: in function <...cal/share/nvim/l
azy/feline.nvim/lua/feline/generator.lua:534>
Its the usage of this function. Any chance of a quick fix/update?
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
@sphyrnidae8 I don't think it is lazy.nvim specific error. Just paste the whole gist code , in place of
require("plugins.feline")
.Or create files init.lua, dharmx.lua in lua/plugins/feline/ and call it by require("plugins.feline.dharmx") in feline/init.lua