nvim: plugins: Switch to lualine
This commit is contained in:
parent
13dbf4a8c1
commit
5716ca88af
3 changed files with 196 additions and 193 deletions
|
@ -1,191 +0,0 @@
|
|||
local gl = require('galaxyline')
|
||||
local gls = gl.section
|
||||
local condition = require('galaxyline.condition')
|
||||
|
||||
-- Without this, the status line for inactive window does not change.
|
||||
-- We use packer anyways, else this would actually be a bug.
|
||||
gl.short_line_list = {'Packer'}
|
||||
|
||||
local colors = {
|
||||
line_bg = '#21242b',
|
||||
bg = '#000000',
|
||||
fg = '#dobfa1',
|
||||
yellow = '#fabd2f',
|
||||
cyan = '#008080',
|
||||
darkblue = '#081633',
|
||||
green = '#afd700',
|
||||
orange = '#FF8800',
|
||||
purple = '#5d4d7a',
|
||||
magenta = '#c678dd',
|
||||
blue = '#51afef',
|
||||
red = '#ec5f67'
|
||||
}
|
||||
|
||||
gls.left[1] = {
|
||||
FirstElement = {
|
||||
provider = function() return '▋' end,
|
||||
highlight = { colors.bg, colors.line_bg }
|
||||
},
|
||||
}
|
||||
gls.left[2] = {
|
||||
ViMode = {
|
||||
provider = function()
|
||||
local mode_color = {
|
||||
n = colors.magenta, i = colors.green, v = colors.blue, [''] = colors.blue, V = colors.blue,
|
||||
c = colors.red, no = colors.magenta, s = colors.orange, S = colors.orange,
|
||||
[''] = colors.orange, ic = colors.yellow, R = colors.purple, Rv = colors.purple,
|
||||
cv = colors.red, ce = colors.red, r = colors.cyan, rm = colors.cyan, ['r?'] = colors.cyan,
|
||||
['!'] = colors.red, t = colors.red
|
||||
}
|
||||
vim.api.nvim_command('hi GalaxyViMode guifg='..mode_color[vim.fn.mode()])
|
||||
return ' '
|
||||
end,
|
||||
highlight = { colors.red, colors.line_bg, 'bold' },
|
||||
},
|
||||
}
|
||||
gls.left[3] = {
|
||||
FileIcon = {
|
||||
provider = 'FileIcon',
|
||||
condition = condition.buffer_not_empty,
|
||||
highlight = { require('galaxyline.providers.fileinfo').get_file_icon_color, colors.line_bg },
|
||||
},
|
||||
}
|
||||
gls.left[4] = {
|
||||
FileName = {
|
||||
provider = {'FileName'},
|
||||
condition = condition.buffer_not_empty,
|
||||
highlight = { colors.fg, colors.line_bg, 'bold' }
|
||||
}
|
||||
}
|
||||
gls.left[5] = {
|
||||
GitIcon = {
|
||||
provider = function() return ' ' end,
|
||||
condition = condition.check_git_workspace,
|
||||
highlight = { colors.orange, colors.line_bg },
|
||||
}
|
||||
}
|
||||
gls.left[6] = {
|
||||
GitBranch = {
|
||||
provider = 'GitBranch',
|
||||
condition = condition.check_git_workspace,
|
||||
highlight = { colors.fg, colors.line_bg, 'bold' },
|
||||
}
|
||||
}
|
||||
gls.left[7] = {
|
||||
DiffAdd = {
|
||||
provider = 'DiffAdd',
|
||||
condition = condition.check_git_workspace and condition.hide_in_width,
|
||||
icon = ' ',
|
||||
highlight = { colors.green, colors.line_bg },
|
||||
}
|
||||
}
|
||||
gls.left[8] = {
|
||||
DiffModified = {
|
||||
provider = 'DiffModified',
|
||||
condition = condition.check_git_workspace and condition.hide_in_width,
|
||||
icon = ' ',
|
||||
highlight = { colors.orange, colors.line_bg },
|
||||
}
|
||||
}
|
||||
gls.left[9] = {
|
||||
DiffRemove = {
|
||||
provider = 'DiffRemove',
|
||||
condition = condition.check_git_workspace and condition.hide_in_width,
|
||||
icon = ' ',
|
||||
highlight = { colors.red, colors.line_bg },
|
||||
}
|
||||
}
|
||||
gls.left[10] = {
|
||||
LeftEnd = {
|
||||
provider = function() return '' end,
|
||||
separator = '',
|
||||
separator_highlight = { colors.bg, colors.line_bg },
|
||||
highlight = { colors.line_bg, colors.line_bg }
|
||||
}
|
||||
}
|
||||
gls.left[11] = {
|
||||
DiagnosticError = {
|
||||
provider = 'DiagnosticError',
|
||||
icon = ' ',
|
||||
highlight = { colors.red, colors.bg }
|
||||
}
|
||||
}
|
||||
gls.left[12] = {
|
||||
DiagnosticWarn = {
|
||||
provider = 'DiagnosticWarn',
|
||||
icon = ' ',
|
||||
highlight = { colors.yellow, colors.bg },
|
||||
}
|
||||
}
|
||||
gls.left[13] = {
|
||||
DiagnosticHint = {
|
||||
provider = 'DiagnosticHint',
|
||||
icon = ' ',
|
||||
highlight = {colors.orange,colors.bg},
|
||||
}
|
||||
}
|
||||
gls.left[14] = {
|
||||
DiagnosticInfo = {
|
||||
provider = 'DiagnosticInfo',
|
||||
icon = ' ',
|
||||
highlight = {colors.cyan,colors.bg},
|
||||
}
|
||||
}
|
||||
|
||||
gls.right[1]= {
|
||||
FileFormat = {
|
||||
provider = 'FileFormat',
|
||||
separator = '',
|
||||
separator_highlight = { colors.bg, colors.line_bg },
|
||||
highlight = { colors.fg, colors.line_bg },
|
||||
}
|
||||
}
|
||||
gls.right[2] = {
|
||||
LineInfo = {
|
||||
provider = 'LineColumn',
|
||||
separator = ' | ',
|
||||
separator_highlight = { colors.blue, colors.line_bg },
|
||||
highlight = { colors.fg, colors.line_bg },
|
||||
},
|
||||
}
|
||||
gls.right[3] = {
|
||||
PerCent = {
|
||||
provider = 'LinePercent',
|
||||
separator = '',
|
||||
separator_highlight = { colors.line_bg, colors.line_bg },
|
||||
highlight = { colors.fg, colors.darkblue },
|
||||
}
|
||||
}
|
||||
|
||||
gls.short_line_left[1] = {
|
||||
BufferType = {
|
||||
provider = 'FileTypeName',
|
||||
separator = ' ',
|
||||
separator_highlight = { colors.purple, colors.bg },
|
||||
highlight = { colors.fg, colors.purple }
|
||||
}
|
||||
}
|
||||
gls.short_line_left[2] = {
|
||||
WindowNumber = {
|
||||
provider = function() return vim.fn.winnr() end,
|
||||
separator = '',
|
||||
separator_highlight = { colors.purple, colors.bg },
|
||||
highlight = { colors.red, colors.bg }
|
||||
}
|
||||
}
|
||||
gls.short_line_left[3] = {
|
||||
FileName = {
|
||||
provider = {'FileName'},
|
||||
condition = condition.buffer_not_empty,
|
||||
highlight = { colors.fg, colors.line_bg, 'bold' }
|
||||
}
|
||||
}
|
||||
|
||||
gls.short_line_right[1] = {
|
||||
BufferIcon = {
|
||||
provider = 'BufferIcon',
|
||||
separator = '',
|
||||
separator_highlight = { colors.purple, colors.bg },
|
||||
highlight = { colors.fg, colors.purple }
|
||||
}
|
||||
}
|
191
nvim/.config/nvim/after/plugin/lualine.lua
Normal file
191
nvim/.config/nvim/after/plugin/lualine.lua
Normal file
|
@ -0,0 +1,191 @@
|
|||
local colors = {
|
||||
line_bg = '#21242b',
|
||||
bg = '#000000',
|
||||
fg = '#dobfa1',
|
||||
yellow = '#fabd2f',
|
||||
cyan = '#008080',
|
||||
darkblue = '#081633',
|
||||
green = '#afd700',
|
||||
orange = '#FF8800',
|
||||
purple = '#5d4d7a',
|
||||
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,
|
||||
check_active_lsp = function()
|
||||
local clients = vim.lsp.get_active_clients()
|
||||
return next(clients) ~= nil
|
||||
end
|
||||
}
|
||||
|
||||
local window = {
|
||||
function()
|
||||
return vim.api.nvim_win_get_number(0)
|
||||
end,
|
||||
color = { fg = colors.red },
|
||||
}
|
||||
|
||||
local function diffsigns_source()
|
||||
local gitsigns = vim.b.gitsigns_status_dict
|
||||
if gitsigns then
|
||||
return {
|
||||
added = gitsigns.added,
|
||||
modified = gitsigns.changed,
|
||||
removed = gitsigns.removed
|
||||
}
|
||||
end
|
||||
end
|
||||
|
||||
local config = {
|
||||
options = {
|
||||
icons_enabled = true,
|
||||
component_separators = '',
|
||||
section_separators = '',
|
||||
theme = {
|
||||
normal = { c = { fg = colors.fg , bg = colors.bg } },
|
||||
inactive = { c = { fg = colors.yellow, bg = colors.bg } },
|
||||
},
|
||||
},
|
||||
sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_b = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
-- These will be filled later
|
||||
lualine_c = {},
|
||||
lualine_x = {},
|
||||
},
|
||||
inactive_sections = {
|
||||
-- these are to remove the defaults
|
||||
lualine_a = {},
|
||||
lualine_v = {},
|
||||
lualine_y = {},
|
||||
lualine_z = {},
|
||||
lualine_c = { window, 'filename' },
|
||||
lualine_x = { 'location', 'progress' },
|
||||
},
|
||||
extensions = { 'fugitive', 'fzf', 'quickfix', 'toggleterm' },
|
||||
}
|
||||
|
||||
local function ins_left(component)
|
||||
table.insert(config.sections.lualine_c, component)
|
||||
end
|
||||
|
||||
local function ins_right(component)
|
||||
table.insert(config.sections.lualine_x, component)
|
||||
end
|
||||
|
||||
ins_left {
|
||||
function()
|
||||
return ' '
|
||||
end,
|
||||
color = { fg = colors.blue },
|
||||
padding = { left = 0, right = 1 },
|
||||
}
|
||||
|
||||
ins_left {
|
||||
function()
|
||||
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.purple,
|
||||
Rv = colors.purple,
|
||||
cv = colors.red,
|
||||
ce = colors.red,
|
||||
r = colors.cyan,
|
||||
rm = colors.cyan,
|
||||
['r?'] = colors.cyan,
|
||||
['!'] = colors.red,
|
||||
t = colors.red,
|
||||
}
|
||||
vim.api.nvim_command('hi! LualineMode guifg=' .. mode_color[vim.fn.mode()] .. ' guibg=' .. colors.bg)
|
||||
return ''
|
||||
end,
|
||||
color = 'LualineMode',
|
||||
padding = { right = 1 },
|
||||
}
|
||||
|
||||
ins_left {
|
||||
'filename',
|
||||
cond = conditions.buffer_not_empty,
|
||||
color = { fg = colors.blue, gui = 'bold' },
|
||||
}
|
||||
|
||||
ins_left {
|
||||
'FugitiveHead',
|
||||
cond = conditions.check_git_workspace,
|
||||
icon = ' ',
|
||||
color = { fg = colors.orange, gui = 'bold' },
|
||||
}
|
||||
|
||||
ins_left {
|
||||
'diff',
|
||||
source = diffsigns_source,
|
||||
cond = conditions.check_git_workspace,
|
||||
symbols = { added = ' ', modified = ' ', removed = ' ' },
|
||||
diff_color = {
|
||||
added = { fg = colors.green },
|
||||
modified = { fg = colors.orange },
|
||||
removed = { fg = colors.red },
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
ins_left {
|
||||
'diagnostics',
|
||||
sources = { 'nvim_diagnostic' },
|
||||
symbols = { error = ' ', warn = ' ', info = ' ', hint = ' ' },
|
||||
diagnostics_color = {
|
||||
color_error = { fg = colors.red },
|
||||
color_warn = { fg = colors.yellow },
|
||||
color_info = { fg = colors.cyan },
|
||||
color_hint = { fg = colors.orange },
|
||||
},
|
||||
}
|
||||
|
||||
ins_left {
|
||||
function()
|
||||
return '%='
|
||||
end,
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'lsp_progress',
|
||||
cond = conditions.check_active_lsp and conditions.hide_in_width,
|
||||
color = { fg = colors.cyan, gui = 'bold' }
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'location',
|
||||
color = { fg = colors.green, gui = 'bold' }
|
||||
}
|
||||
|
||||
ins_right {
|
||||
'progress',
|
||||
color = { fg = colors.magenta, gui = 'bold' }
|
||||
}
|
||||
|
||||
require'lualine'.setup(config)
|
|
@ -123,8 +123,11 @@ local init = function ()
|
|||
use 'vmchale/dhall-vim'
|
||||
-- For statusline
|
||||
use {
|
||||
'NTBBloodbath/galaxyline.nvim',
|
||||
requires = { 'kyazdani42/nvim-web-devicons' }
|
||||
'nvim-lualine/lualine.nvim',
|
||||
requires = {
|
||||
'kyazdani42/nvim-web-devicons',
|
||||
'arkav/lualine-lsp-progress'
|
||||
}
|
||||
}
|
||||
-- Marks and registers
|
||||
use {
|
||||
|
|
Loading…
Reference in a new issue