vim-settings/neovim/lua/plugins/lualine.lua

71 lines
1.9 KiB
Lua
Raw Normal View History

local M = {}
-- Only return interesting ffenc (not utf-8[unix])
function M.custom_ffenc()
local enc = vim.bo.fenc
local format = vim.bo.fileformat
if enc ~= "utf-8" or format ~= "unix" then
return enc .. "[" .. format .. "]"
end
2021-10-21 17:24:28 +00:00
return ""
end
function M.mixed_indent()
local mixed = vim.fn.search([[\v^(\t+ | +\t)]], 'nw')
if mixed > 0 then
return "i:" .. mixed
end
local space_indent = vim.fn.search([[\v^ +]], 'nw')
local tab_indent = vim.fn.search([[\v^\t+]], 'nw')
if tab_indent > 0 and space_indent > 0 then
return "i:" .. require("math").max(tab_indent, space_indent)
end
2021-10-21 17:24:28 +00:00
return ""
end
function M.trailing_whitespace()
local line = vim.fn.search([[\s\+$]], 'nw')
if line ~= 0 then
return "tw:" .. line
end
2021-10-21 17:24:28 +00:00
return ""
end
-- Configure lualine witha provided theme
function M.config_lualine(theme_name)
-- Theme name transformations
if theme_name == nil then
theme_name = "auto"
2021-09-28 01:00:17 +00:00
elseif theme_name:find("wombat") then
theme_name = "wombat"
elseif theme_name == "wombuddy" then
theme_name = "wombat"
end
require("lualine").setup {
options = {
theme = theme_name,
icons_enabled = false,
2021-10-21 17:24:28 +00:00
component_separators = {left = "|", right = "|"},
section_separators = {left = "", right = ""},
},
sections = {
2021-10-21 17:24:28 +00:00
lualine_a = {{"mode", fmt = function(str) return str:sub(1, 1) end}},
lualine_b = {"FugitiveHead", "diff"},
lualine_c = {"filename"},
lualine_x = {M.custom_ffenc, "filetype"},
lualine_y = {"progress", "location"},
lualine_z = {
2021-10-21 17:24:28 +00:00
{"diagnostics", sources = {"nvim_lsp"}},
{M.mixed_indent, color = {bg = "#de4f1f"}},
{M.trailing_whitespace, color = {bg = "#de4f1f"}},
},
},
}
end
return M