summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/setup/lualine.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/setup/lualine.lua')
-rw-r--r--.config/nvim/lua/setup/lualine.lua137
1 files changed, 126 insertions, 11 deletions
diff --git a/.config/nvim/lua/setup/lualine.lua b/.config/nvim/lua/setup/lualine.lua
index 087a301..54f31d4 100644
--- a/.config/nvim/lua/setup/lualine.lua
+++ b/.config/nvim/lua/setup/lualine.lua
@@ -1,27 +1,128 @@
-local lualine = require 'lualine'
+local lualine = require("lualine")
+
+local colors = {
+ bg = '#202328',
+ fg = '#bbc2cf',
+ yellow = '#ECBE7B',
+ cyan = '#008080',
+ darkblue = '#081633',
+ green = '#98be65',
+ orange = '#FF8800',
+ violet = '#a9a1e1',
+ magenta = '#c678dd',
+ blue = '#51afef',
+ red = '#ec5f67',
+}
+
+local conditions = {
+ buffer_not_empty = function()
+ return vim.fn.empty(vim.fn.expand('%:t')) ~= 1
+ end,
+ hide_in_width = function()
+ return vim.fn.winwidth(0) > 80
+ end,
+ check_git_workspace = function()
+ local filepath = vim.fn.expand('%:p:h')
+ local gitdir = vim.fn.finddir('.git', filepath .. ';')
+ return gitdir and #gitdir > 0 and #gitdir < #filepath
+ end,
+}
local config = {
options = {
icons_enabled = true,
- theme = 'onedark',
- component_separators = { left = '', right = '' },
- section_separators = { left = '', right = '' },
+ -- theme = 'onedark',
+ theme = {
+ -- We are going to use lualine_c an lualine_x as left and
+ -- right section. Both are highlighted by c theme . So we
+ -- are just setting default looks o statusline
+ normal = { c = { fg = colors.fg, bg = colors.bg } },
+ inactive = { c = { fg = colors.fg, bg = colors.bg } },
+ },
+ component_separators = '',
+ section_separators = '',
globalstatus = true,
},
sections = {
- lualine_a = { 'mode' },
- lualine_b = { 'branch' },
- lualine_c = { 'filename', 'diagnostics' },
- lualine_x = { 'encoding', 'filetype' },
- lualine_y = { 'progress' },
- lualine_z = { 'location' },
+ -- these are to remove the defaults
+ lualine_a = {},
+ lualine_b = {},
+ lualine_y = {},
+ lualine_z = {},
+ -- These will be filled later
+ lualine_c = {},
+ lualine_x = {},
},
}
+-- Inserts a component in lualine_c at left section
+local function ins_left(component)
+ table.insert(config.sections.lualine_c, component)
+end
+
+-- Inserts a component in lualine_x ot right section
local function ins_right(component)
- table.insert(config.sections.lualine_x, 1, component)
+ table.insert(config.sections.lualine_x, component)
end
+ins_left {
+ function()
+ return '▊'
+ end,
+ color = { fg = colors.blue }, -- Sets highlighting of component
+ padding = { left = 0, right = 1 }, -- We don't need space before this
+}
+
+ins_left {
+ -- mode component
+ function()
+ return ''
+ end,
+ color = function()
+ -- auto change color according to neovims mode
+ local mode_color = {
+ n = colors.red,
+ i = colors.green,
+ v = colors.blue,
+ [''] = colors.blue,
+ V = colors.blue,
+ c = colors.magenta,
+ no = colors.red,
+ s = colors.orange,
+ S = colors.orange,
+ [''] = colors.orange,
+ ic = colors.yellow,
+ R = colors.violet,
+ Rv = colors.violet,
+ cv = colors.red,
+ ce = colors.red,
+ r = colors.cyan,
+ rm = colors.cyan,
+ ['r?'] = colors.cyan,
+ ['!'] = colors.red,
+ t = colors.red,
+ }
+ return { fg = mode_color[vim.fn.mode()] }
+ end,
+ padding = { right = 1 },
+}
+
+ins_left {
+ -- filesize component
+ 'filesize',
+ cond = conditions.buffer_not_empty,
+}
+
+ins_left {
+ 'filename',
+ cond = conditions.buffer_not_empty,
+ color = { fg = colors.magenta, gui = 'bold' },
+}
+
+ins_left { 'location' }
+
+ins_left { 'progress', color = { fg = colors.fg, gui = 'bold' } }
+
ins_right {
-- LSP Indicator
function()
@@ -41,4 +142,18 @@ ins_right {
end,
}
+ins_left {
+ 'diagnostics',
+ sources = { 'nvim_lsp' },
+ sections = { 'error', 'warn', 'info', 'hint' },
+ -- symbols = { error = 'E', warn = 'W', info = 'I', hint = 'H' },
+ diagnostics_color = {
+ -- Same values as the general color option can be used here.
+ error = 'DiagnosticError', -- Changes diagnostics' error color.
+ warn = 'DiagnosticWarn', -- Changes diagnostics' warn color.
+ info = 'DiagnosticInfo', -- Changes diagnostics' info color.
+ hint = 'DiagnosticHint', -- Changes diagnostics' hint color.
+ },
+}
+
lualine.setup(config)