diff options
author | Squibid <me@zacharyscheiman.com> | 2023-04-30 18:41:13 -0400 |
---|---|---|
committer | Squibid <me@zacharyscheiman.com> | 2023-04-30 18:41:13 -0400 |
commit | 01a09f243ce07d367c539d69d4a7f4541ab1dcd7 (patch) | |
tree | ec2af23e59a38d4f9ac476e69abc07c8110b52a1 /after/plugin/statusline.lua | |
parent | 7c5d3eff786bef884022cc813448bb085ba4eccd (diff) | |
download | nvim-01a09f243ce07d367c539d69d4a7f4541ab1dcd7.tar.gz nvim-01a09f243ce07d367c539d69d4a7f4541ab1dcd7.tar.bz2 nvim-01a09f243ce07d367c539d69d4a7f4541ab1dcd7.zip |
new config old version is now on v1 branch
Diffstat (limited to '')
-rw-r--r-- | after/plugin/statusline.lua | 136 |
1 files changed, 136 insertions, 0 deletions
diff --git a/after/plugin/statusline.lua b/after/plugin/statusline.lua new file mode 100644 index 0000000..d3a6ed2 --- /dev/null +++ b/after/plugin/statusline.lua @@ -0,0 +1,136 @@ +local status_ok, el = pcall(require, "el") +if not status_ok then + return +end + +el.reset_windows() + +local builtin = require "el.builtin" +local sections = require "el.sections" +local c = require "components" + +-- color setup +local hl_statusline = "StatusLine" +--diagnostic colors +local hl_hint = "DiagnosticHint" +local hl_info = "DiagnosticInfo" +local hl_warn = "DiagnosticWarn" +local hl_err = "DiagnosticError" +-- git colors +local hl_red = "ErrorMsg" +local hl_green = "diffAdded" +local hl_yellow = "WarningMsg" +local highlights = { + -- diagnostic colors + diag_err = c.extract_hl({ + bg = { [hl_statusline] = "bg" }, + fg = { [hl_err] = "fg" }, + bold = true, + }), + diag_warn = c.extract_hl({ + bg = { [hl_statusline] = "bg" }, + fg = { [hl_warn] = "fg" }, + bold = true, + }), + diag_info = c.extract_hl({ + bg = { [hl_statusline] = "bg" }, + fg = { [hl_info] = "fg" }, + bold = true, + }), + diag_hint = c.extract_hl({ + bg = { [hl_statusline] = "bg" }, + fg = { [hl_hint] = "fg" }, + bold = true, + }), + + -- git colors + red_fg = c.extract_hl({ + bg = { [hl_statusline] = "bg" }, + fg = { [hl_red] = "fg" }, + bold = true, + }), + green_fg = c.extract_hl({ + bg = { [hl_statusline] = "bg" }, + fg = { [hl_green] = "fg" }, + bold = true, + }), + yellow_fg = c.extract_hl({ + bg = { [hl_statusline] = "bg" }, + fg = { [hl_yellow] = "fg" }, + bold = true, + }), +} + +-- modes +local modes = { + -- display name, mode, highlight group + n = { "Normal", "N" }, + niI = { "Normal", "N" }, + niR = { "Normal", "N" }, + niV = { "Normal", "N" }, + no = { "N·OpPd", "?" }, + v = { "Visual", "V" }, + V = { "V·Line", "Vl" }, + [""] = { "V·Block", "Vb" }, + s = { "Select", "S" }, + S = { "S·Line", "Sl" }, + [""] = { "S·Block", "Sb" }, + i = { "Insert", "I" }, + ic = { "ICompl", "Ic" }, + R = { "Replace", "R" }, + Rv = { "VReplace", "Rv" }, + c = { "Command", "C" }, + cv = { "Vim Ex", "E" }, + ce = { "Ex (r)", "E" }, + r = { "Prompt", "P" }, + rm = { "More ", "M" }, + ["r?"] = { "Confirm", "Cn" }, + ["!"] = { "Shell ", "S" }, + nt = { "Term ", "T" }, + t = { "Term ", "T" }, +} + +el.setup { + generator = function() + + local items = { + { c.mode { modes = modes, fmt = " %s %s ", icon = "", hl_icon_only = false } }, + { sections.split, required = true }, + { sections.collapse_builtin { { builtin.filetype }, { " " } } }, + { sections.maximum_width(builtin.tail_file, 0.50), required = true }, + { sections.collapse_builtin { { " " }, { builtin.modified_flag } } }, + { sections.split, required = true }, + { c.diagnostics { + fmt = "[%s]", lsp = true, + hl_err = highlights.diag_err, + hl_warn = highlights.diag_warn, + hl_info = highlights.diag_info, + hl_hint = highlights.diag_hint, + icon_err = 'x', icon_warn = '!', icon_info = 'i', icon_hint = 'h' + } + }, + { c.git_branch { fmt = "%s *%s", icon = "" } }, + { c.git_changes_buf { + fmt = "[%s]", + icon_insert = "+", + icon_change = "~", + icon_delete = "-", + hl_insert = highlights.green_fg, + hl_change = highlights.yellow_fg, + hl_delete = highlights.red_fg, + } + }, + } + + local add_item = function(result, item) + table.insert(result, item) + end + + local result = {} + for _, item in ipairs(items) do + add_item(result, item) + end + + return result +end, +} |