82 lines
2.1 KiB
Lua
82 lines
2.1 KiB
Lua
local status_ok, el = pcall(require, "el")
|
|
if not status_ok then
|
|
return
|
|
end
|
|
|
|
local builtin = require "el.builtin"
|
|
local diagnostic = require "el.diagnostic"
|
|
local extensions = require "el.extensions"
|
|
local lsp_statusline = require "el.plugins.lsp_status"
|
|
local sections = require "el.sections"
|
|
local subscribe = require "el.subscribe"
|
|
|
|
local file_icon = subscribe.buf_autocmd("el_file_icon", "BufRead", function(_, buffer)
|
|
return extensions.file_icon(_, buffer)
|
|
end)
|
|
|
|
local git_branch = subscribe.buf_autocmd("el_git_branch", "BufEnter", function(window, buffer)
|
|
local branch = extensions.git_branch(window, buffer)
|
|
if branch then
|
|
return " " .. extensions.git_icon() .. " " .. branch
|
|
end
|
|
end)
|
|
|
|
local git_changes = subscribe.buf_autocmd("el_git_changes", "BufWritePost", function(window, buffer)
|
|
return extensions.git_changes(window, buffer)
|
|
end)
|
|
|
|
local show_current_func = function(window, buffer)
|
|
if buffer.filetype == "lua" then
|
|
return ""
|
|
end
|
|
|
|
return lsp_statusline.current_function(window, buffer)
|
|
end
|
|
|
|
local diagnostic_display = diagnostic.make_buffer()
|
|
|
|
el.setup {
|
|
generator = function(window, buffer)
|
|
local mode = extensions.gen_mode { format_string = " %s " }
|
|
|
|
local items = {
|
|
{ mode },
|
|
{ git_branch },
|
|
{ sections.split },
|
|
{ file_icon },
|
|
{ " " },
|
|
{ sections.maximum_width(builtin.make_responsive_file(140, 90), 0.40) },
|
|
{ sections.collapse_builtin { { " " }, { builtin.modified_flag } } },
|
|
{ sections.split },
|
|
{ diagnostic_display },
|
|
{ show_current_func },
|
|
{ git_changes },
|
|
{ "[" },
|
|
{ builtin.line_with_width(3) },
|
|
{ ":" },
|
|
{ builtin.column_with_width(2) },
|
|
{ "]" },
|
|
{
|
|
sections.collapse_builtin {
|
|
"[",
|
|
builtin.help_list,
|
|
builtin.readonly_list,
|
|
"]",
|
|
},
|
|
},
|
|
{ builtin.filetype },
|
|
}
|
|
|
|
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,
|
|
}
|