1
0
mirror of https://github.com/jdhao/nvim-config.git synced 2025-06-08 14:14:33 +02:00

add mixed indent detection for lualine

This commit is contained in:
jdhao 2021-12-05 16:18:10 +08:00
parent 8e46441a36
commit c652796da1

View File

@ -7,6 +7,7 @@ local function spell()
end
local function trailing_space()
-- Get the positions of trailing whitespaces from plugin 'jdhao/whitespace.nvim'.
local trailing_space_pos = vim.b.trailing_whitespace_pos
local msg = ""
@ -19,6 +20,30 @@ local function trailing_space()
return msg
end
local function mixed_indent()
local space_pat = [[\v^ +]]
local tab_pat = [[\v^\t+]]
local space_indent = vim.fn.search(space_pat, 'nwc')
local tab_indent = vim.fn.search(tab_pat, 'nwc')
local mixed = (space_indent > 0 and tab_indent > 0)
local mixed_same_line
if not mixed then
mixed_same_line = vim.fn.search([[\v^(\t+ | +\t)]], 'nwc')
mixed = mixed_same_line > 0
end
if not mixed then return '' end
if mixed_same_line ~= nil and mixed_same_line > 0 then
return 'MI:'..mixed_same_line
end
local space_indent_cnt = vim.fn.searchcount({pattern=space_pat, max_count=1e3}).total
local tab_indent_cnt = vim.fn.searchcount({pattern=tab_pat, max_count=1e3}).total
if space_indent_cnt > tab_indent_cnt then
return 'MI:'..tab_indent
else
return 'MI:'..space_indent
end
end
require("lualine").setup({
options = {
icons_enabled = true,
@ -60,7 +85,11 @@ require("lualine").setup({
{
trailing_space,
color = "WarningMsg"
}
},
{
mixed_indent,
color = "WarningMsg"
},
},
},
inactive_sections = {