diff options
| author | jdhao <jdhao@hotmail.com> | 2021-12-05 16:18:10 +0800 |
|---|---|---|
| committer | jdhao <jdhao@hotmail.com> | 2021-12-05 16:18:10 +0800 |
| commit | c652796da17113171daa0643a92308616f62eb38 (patch) | |
| tree | aced29b03a6c9c12d11a999fd2c31bf38697c5d9 /lua/config/statusline.lua | |
| parent | 8e46441a3661370bebdb7bec0d77332dae2d427f (diff) | |
add mixed indent detection for lualine
Diffstat (limited to 'lua/config/statusline.lua')
| -rw-r--r-- | lua/config/statusline.lua | 31 |
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 = { |
