From f3a53350ef1e762cdd635d1e8622d0055d71cf4b Mon Sep 17 00:00:00 2001 From: Stefan Weigl-Bosker Date: Mon, 14 Apr 2025 22:12:58 -0400 Subject: statusline and other stuff --- modules/neovim/nvim/lua/config/statusline.lua | 54 +++++++++++++++++++++++++++ 1 file changed, 54 insertions(+) create mode 100644 modules/neovim/nvim/lua/config/statusline.lua (limited to 'modules/neovim/nvim/lua/config/statusline.lua') diff --git a/modules/neovim/nvim/lua/config/statusline.lua b/modules/neovim/nvim/lua/config/statusline.lua new file mode 100644 index 0000000..82725c1 --- /dev/null +++ b/modules/neovim/nvim/lua/config/statusline.lua @@ -0,0 +1,54 @@ +local modes = { + ["n"] = "", + ["no"] = "", + ["v"] = "VISUAL", + ["V"] = "VISUAL-LINE", + [""] = "VISUAL-BLOCK", + ["s"] = "SELECT", + ["S"] = "SELECT-LINE", + [""] = "SELECT-BLOCK", + ["i"] = "INSERT", + ["ic"] = "INSERT", + ["R"] = "REPLACE", + ["Rv"] = "VISUAL-REPLACE", + ["c"] = "COMMAND", + ["cv"] = "VIM-EX", + ["ce"] = "EX", + ["r"] = "PROMPT", + ["rm"] = "MOAR", + ["r?"] = "CONFIRM", + ["!"] = "SHELL", + ["t"] = "TERMINAL", +} + +local function mode() + local m = vim.api.nvim_get_mode().mode + local s = modes[m] + return s == "" and "" or string.format("%s » ", s) +end + +M = {} + +M.statusline = function() + return table.concat { + " ", + mode(), + "%f%=%p%% « %l, %c " + } +end + +M.termStatus = function() + return " TERM » %{b:term_title}%=%p%% « %l, %c " +end + +M.setup = function(config) + vim.api.nvim_exec([[ + set statusline=%!v:lua.M.statusline() + augroup Statusline + au! + au TermOpen * setlocal statusline=%!v:lua.M.termStatus() + augroup END + ]], false) +end + +M.setup() -- cgit v1.2.3