112 lines
2.4 KiB
Lua
112 lines
2.4 KiB
Lua
require("nvim-web-devicons").setup({})
|
|
|
|
local mode_map = {
|
|
NORMAL = "N",
|
|
INSERT = "I",
|
|
REPLACE = "R",
|
|
COMMAND = "C",
|
|
VISUAL = "v",
|
|
["V-BLOCK"] = "V",
|
|
["V-LINE"] = "V-LINE",
|
|
}
|
|
|
|
local function format_diff_element(val, sym)
|
|
if val == nil or val < 1 then
|
|
return ""
|
|
end
|
|
|
|
return sym .. val
|
|
end
|
|
|
|
local diagnostics = {
|
|
"diagnostics",
|
|
sources = { "nvim_lsp" },
|
|
diagnostics_color = {
|
|
error = { fg = "#ffffff", bg = "#bf616a" },
|
|
warn = { fg = "#ebcb8b" },
|
|
info = { fg = "#81a1c1" },
|
|
hint = { fg = "#a3be8c" },
|
|
},
|
|
always_visible = false,
|
|
separator = { left = " " },
|
|
symbols = {
|
|
error = function(count)
|
|
return count .. "E"
|
|
end,
|
|
warn = function(count)
|
|
return count .. "W"
|
|
end,
|
|
info = function(count)
|
|
return count .. "I"
|
|
end,
|
|
hint = function(count)
|
|
return count .. "H"
|
|
end,
|
|
},
|
|
}
|
|
|
|
require("lualine").setup({
|
|
options = {
|
|
icons_enabled = false,
|
|
theme = "gruxbox_dark",
|
|
component_separators = "",
|
|
section_separators = { left = "", right = "" },
|
|
},
|
|
sections = {
|
|
lualine_a = {
|
|
{
|
|
"mode",
|
|
fmt = function(mode)
|
|
return mode_map[mode] or mode
|
|
end,
|
|
},
|
|
"paste",
|
|
},
|
|
lualine_b = { "filename" },
|
|
lualine_c = {
|
|
{
|
|
"branch",
|
|
padding = 1,
|
|
},
|
|
-- render coloured output from gitsigns, this doesn't seem to work with b:gitsigns_status:
|
|
{
|
|
function()
|
|
return format_diff_element(vim.b.gitsigns_status_dict.added, "+")
|
|
end,
|
|
color = { fg = "#a3be8c" },
|
|
},
|
|
{
|
|
function()
|
|
return format_diff_element(vim.b.gitsigns_status_dict.changed, "~")
|
|
end,
|
|
color = { fg = "#ebcb8b" },
|
|
},
|
|
{
|
|
function()
|
|
return format_diff_element(vim.b.gitsigns_status_dict.removed, "-")
|
|
end,
|
|
color = { fg = "#bf616a" },
|
|
},
|
|
diagnostics,
|
|
},
|
|
lualine_x = {
|
|
{
|
|
function()
|
|
return vim.bo.filetype
|
|
end,
|
|
padding = { left = 1, right = 0 },
|
|
},
|
|
},
|
|
lualine_y = { { "progress", padding = { left = 1, right = 1 } } },
|
|
lualine_z = { { "location", padding = { left = 1, right = 1 } } },
|
|
},
|
|
inactive_sections = {
|
|
lualine_a = {},
|
|
lualine_b = {},
|
|
lualine_c = { "filename", diagnostics },
|
|
lualine_x = { { "location", padding = { right = 0 } } },
|
|
lualine_y = {},
|
|
lualine_z = {},
|
|
},
|
|
})
|