Improve hiding/showing statusline via config

This commit is contained in:
Akianonymus 2021-08-20 14:52:27 +05:30 committed by siduck76
parent dbf0b56059
commit 1f6dbed26b
4 changed files with 42 additions and 10 deletions

View File

@ -17,12 +17,16 @@ M.ui = {
-- For Ex : if you have onedark set in nvchad , set onedark's bg color on your terminal -- For Ex : if you have onedark set in nvchad , set onedark's bg color on your terminal
transparency = false, transparency = false,
hidden_statusline = { -- statusline related options
statusline = {
-- these are filetypes, not pattern matched -- these are filetypes, not pattern matched
"NvimTree", -- if a filetype is present in shown, it will always show the statusline, irrespective of filetypes in hidden
"terminal", hidden = {},
shown = {
-- "terminal"
},
style = "default", -- default, round , slant , block , arrow
}, },
statusline_style = "default", -- default, round , slant , block , arrow
} }
M.options = { M.options = {

View File

@ -17,12 +17,17 @@ M.ui = {
-- For Ex : if you have onedark set in nvchad , set onedark's bg color on your terminal -- For Ex : if you have onedark set in nvchad , set onedark's bg color on your terminal
transparency = false, transparency = false,
hidden_statusline = { -- statusline related options
statusline = {
-- these are filetypes, not pattern matched -- these are filetypes, not pattern matched
-- if a filetype is present in shown, it will always show the statusline, irrespective of filetypes in hidden
hidden = {
"NvimTree", "NvimTree",
-- "terminal", "terminal",
},
shown = {},
style = "default", -- default, round , slant , block , arrow
}, },
statusline_style = "default", -- default, round , slant , block , arrow
} }
M.options = { M.options = {

View File

@ -78,9 +78,10 @@ end
-- Don't show any numbers inside terminals -- Don't show any numbers inside terminals
vim.cmd [[ au TermOpen term://* setlocal nonumber norelativenumber ]] vim.cmd [[ au TermOpen term://* setlocal nonumber norelativenumber ]]
-- Don't show status line on certain windows
vim.cmd [[ au TermOpen term://* setfiletype terminal ]] vim.cmd [[ au TermOpen term://* setfiletype terminal ]]
vim.cmd [[ let hidden_statusline = luaeval('require("utils").load_config().ui.hidden_statusline') | autocmd BufEnter,BufWinEnter,WinEnter,CmdwinEnter,TermEnter * nested if index(hidden_statusline, &ft) >= 0 | set laststatus=0 | else | set laststatus=2 | endif ]]
-- Don't show status line on certain windows
vim.cmd [[ autocmd BufEnter,BufWinEnter,WinEnter,CmdwinEnter,TermEnter * lua require("utils").hide_statusline() ]]
-- Open a file from its last left off position -- Open a file from its last left off position
-- vim.cmd [[ au BufReadPost * if expand('%:p') !~# '\m/\.git/' && line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif ]] -- vim.cmd [[ au BufReadPost * if expand('%:p') !~# '\m/\.git/' && line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif ]]

View File

@ -181,6 +181,28 @@ M.file = function(mode, filepath, content)
return data return data
end end
-- hide statusline
-- tables fetched from load_config function
M.hide_statusline = function(values)
local hidden = require("utils").load_config().ui.statusline.hidden
local shown = require("utils").load_config().ui.statusline.shown
local api = vim.api
local buftype = api.nvim_buf_get_option("%", "ft")
-- shown table from config has the highest priority
if vim.tbl_contains(shown, buftype) then
api.nvim_set_option("laststatus", 2)
return
end
if vim.tbl_contains(hidden, buftype) then
api.nvim_set_option("laststatus", 0)
return
else
api.nvim_set_option("laststatus", 2)
end
end
-- return a table of available themes -- return a table of available themes
M.list_themes = function(return_type) M.list_themes = function(return_type)
local themes = {} local themes = {}