diff --git a/lua/core/init.lua b/lua/core/init.lua index fd59ae2..de884ab 100644 --- a/lua/core/init.lua +++ b/lua/core/init.lua @@ -2,3 +2,4 @@ require "core.settings" require "core.commands" require "core.autocmds" require "core.keys" +require "core.statusline" diff --git a/lua/core/settings.lua b/lua/core/settings.lua index a7a1fb1..69262fd 100644 --- a/lua/core/settings.lua +++ b/lua/core/settings.lua @@ -12,7 +12,7 @@ opt.relativenumber = true opt.scrolloff = 8 opt.sidescrolloff = 8 opt.title = true --- opt.titlestring = "filename [+=-] - NVIM" +opt.titlestring = "%t - NVIM" opt.wrap = false opt.clipboard = "unnamedplus" opt.splitbelow = true @@ -20,7 +20,10 @@ opt.splitright = true opt.showmode = false opt.grepprg = "rg --vimgrep --smart-case" + opt.path = ".,**" +vim.cmd "set path-=node_modules/**" +vim.cmd "set wildignore-=*/node_modules/*" -- Netrw g.netrw_banner = 0 diff --git a/lua/core/statusline.lua b/lua/core/statusline.lua new file mode 100644 index 0000000..98a810f --- /dev/null +++ b/lua/core/statusline.lua @@ -0,0 +1,38 @@ +local fn, api = vim.fn, vim.api + +local modes = { + ["n"] = "NORMAL", + ["v"] = "VISUAL", + ["V"] = "VISUAL LINE", + [""] = "VISUAL BLOCK", + ["i"] = "INSERT", + ["R"] = "REPLACE", + ["Rv"] = "VISUAL REPLACE", + ["c"] = "COMMAND", + ["nt"] = "TERMINAL" +} + +local function mode() + local current_mode = api.nvim_get_mode().mode + return string.format(" %s ", modes[current_mode]):upper() +end + +function StatusLine() + local filename = fn.expand("%:t") + local filetype = vim.bo.filetype + local lineinfo = fn.line(".") .. ":" .. vim.fn.col(".") + local percent = fn.line(".") / fn.line("$") * 100 + + return table.concat { + mode(), + " ", + filename, + "%=%#StatusLineExtra#", + filetype, + " ", + string.format("%3.0f", percent) .. "%% ", + lineinfo + } +end + +vim.o.statusline = "%!luaeval('StatusLine()')"