local lsp_status = require('lsp-status') local gl = require('galaxyline') local gls = gl.section local colors = { line_bg = '#21242b', bg = '#000000', fg = '#c0c0c0', yellow = '#fabd2f', cyan = '#008080', darkblue = '#081633', green = '#afd700', orange = '#FF8800', purple = '#5d4d7a', magenta = '#c678dd', blue = '#51afef', red = '#ec5f67' } local buffer_not_empty = function() if vim.fn.empty(vim.fn.expand('%:t')) ~= 1 then return true end return false end local checkwidth = function() local squeeze_width = vim.fn.winwidth(0) / 2 if squeeze_width > 40 then return true end return false end local function find_git_root() local path = vim.fn.expand('%:p:h') local get_git_dir = require('galaxyline.provider_vcs').get_git_dir return get_git_dir(path) end 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 = buffer_not_empty, highlight = { require('galaxyline.provider_fileinfo').get_file_icon_color, colors.line_bg }, }, } gls.left[4] = { FileName = { provider = {'FileName'}, condition = buffer_not_empty, highlight = { colors.fg, colors.line_bg, 'bold' } } } gls.left[5] = { GitIcon = { provider = function() return '  ' end, condition = find_git_root, highlight = { colors.orange, colors.line_bg }, } } gls.left[6] = { GitBranch = { provider = 'GitBranch', condition = find_git_root, highlight = { colors.fg, colors.line_bg, 'bold' }, } } gls.left[7] = { DiffAdd = { provider = 'DiffAdd', condition = checkwidth and find_git_root, icon = ' ', highlight = { colors.green, colors.line_bg }, } } gls.left[8] = { DiffModified = { provider = 'DiffModified', condition = checkwidth and find_git_root, icon = ' ', highlight = { colors.orange, colors.line_bg }, } } gls.left[9] = { DiffRemove = { provider = 'DiffRemove', condition = checkwidth and find_git_root, 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] = { Space = { provider = function () return ' ' end } } gls.left[13] = { DiagnosticWarn = { provider = 'DiagnosticWarn', icon = '  ', highlight = { colors.blue, colors.bg }, } } gls.left[14] = { LspStatus = { provider = function() if #vim.lsp.buf_get_clients() > 0 then return lsp_status.status() end end, highlight = { colors.orange, colors.bg,'bold' }, } } 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_right[1] = { BufferIcon = { provider = 'BufferIcon', separator = '', separator_highlight = { colors.purple, colors.bg }, highlight = { colors.fg, colors.purple } } }