aboutsummaryrefslogtreecommitdiff
path: root/lua/config/statusline.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/config/statusline.lua')
-rw-r--r--lua/config/statusline.lua31
1 files changed, 30 insertions, 1 deletions
diff --git a/lua/config/statusline.lua b/lua/config/statusline.lua
index aad6564..9b4c6fa 100644
--- a/lua/config/statusline.lua
+++ b/lua/config/statusline.lua
@@ -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 = {