LunarVim/lua/lv-galaxyline/init.lua

334 lines
7.5 KiB
Lua
Raw Normal View History

2021-07-04 18:40:40 +02:00
-- if not package.loaded['galaxyline'] then
-- return
-- end
2021-07-05 03:14:01 +02:00
local gl = require "galaxyline"
2021-03-18 07:08:38 +01:00
-- get my theme in galaxyline repo
-- local colors = require('galaxyline.theme').default
local colors = {
2021-07-05 03:14:01 +02:00
bg = "#2E2E2E",
-- bg = '#292D38',
yellow = "#DCDCAA",
dark_yellow = "#D7BA7D",
cyan = "#4EC9B0",
green = "#608B4E",
light_green = "#B5CEA8",
string_orange = "#CE9178",
orange = "#FF8800",
purple = "#C586C0",
magenta = "#D16D9E",
grey = "#858585",
blue = "#569CD6",
vivid_blue = "#4FC1FF",
light_blue = "#9CDCFE",
red = "#D16969",
error_red = "#F44747",
info_yellow = "#FFCC66",
2021-03-18 07:08:38 +01:00
}
-- galaxyline themes for Gruvbox and NVCode.
-- Uncomment and change 'colors_colorschemeName'
-- to 'colors' to enable.
-- Colors for Gruvbox
-- local colors_gruvbox = {
-- bg = '#32302F',
-- yellow = '#FABD2F',
-- dark_yellow = '#D79921',
-- cyan = '#689D6A',
-- green = '#608B4E',
-- light_green = '#B8BB26',
-- string_orange = '#D65D0E',
-- orange = '#FE8019',
-- purple = '#B16286',
-- magenta = '#D3869B',
-- grey = '#A89984',
-- blue = '#458588',
-- -- vivid_blue = '#4FC1FF',
-- light_blue = '#83A598',
-- red = '#FB4834',
-- error_red = '#CC241D',
-- info_yellow = '#D79921'
-- }
-- colors for NVCode theme (very minimal changes)
-- local colors_nvcode = {
-- bg = '#2E2E2E',
-- yellow = '#DCDCAA',
-- dark_yellow = '#D7BA7D',
-- cyan = '#4EC9B0',
-- green = '#608B4E',
-- light_green = '#B5CEA8',
-- string_orange = '#CE9178',
-- orange = '#FF8800',
-- purple = '#C586C0',
-- magenta = '#D16D9E',
-- grey = '#729CB3',
-- blue = '#569CD6',
-- vivid_blue = '#4FC1FF',
-- light_blue = '#9CDCFE',
-- red = '#D16969',
-- error_red = '#F44747',
-- info_yellow = '#FFCC66'
-- }
2021-07-05 03:14:01 +02:00
local condition = require "galaxyline.condition"
2020-10-29 02:59:10 +01:00
local gls = gl.section
2021-07-05 03:14:01 +02:00
gl.short_line_list = { "NvimTree", "vista", "dbui", "packer" }
2020-10-29 02:59:10 +01:00
table.insert(gls.left, {
2021-07-05 03:14:01 +02:00
ViMode = {
provider = function()
-- auto change color according the vim mode
local mode_color = {
n = colors.blue,
i = colors.green,
v = colors.purple,
[""] = colors.purple,
V = colors.purple,
c = colors.magenta,
no = colors.blue,
s = colors.orange,
S = colors.orange,
[""] = colors.orange,
ic = colors.yellow,
R = colors.red,
Rv = colors.red,
cv = colors.blue,
ce = colors.blue,
r = colors.cyan,
rm = colors.cyan,
["r?"] = colors.cyan,
["!"] = colors.blue,
t = colors.blue,
}
vim.api.nvim_command("hi GalaxyViMode guifg=" .. mode_color[vim.fn.mode()])
return ""
end,
2021-07-05 19:58:38 +02:00
highlight = 'StatusLineNC'
2021-07-05 03:14:01 +02:00
-- highlight = {colors.red, colors.bg}
},
})
2021-07-03 17:31:55 +02:00
-- print(vim.fn.getbufvar(0, 'ts'))
2021-07-05 03:14:01 +02:00
vim.fn.getbufvar(0, "ts")
2020-10-29 02:59:10 +01:00
table.insert(gls.left, {
2021-07-05 03:14:01 +02:00
GitIcon = {
provider = function()
return ""
end,
condition = condition.check_git_workspace,
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineGit",
},
})
2020-10-29 02:59:10 +01:00
table.insert(gls.left, {
2021-07-05 03:14:01 +02:00
GitBranch = {
provider = "GitBranch",
condition = condition.check_git_workspace,
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineNC",
},
})
2021-03-18 07:08:38 +01:00
table.insert(gls.left, {
2021-07-05 03:14:01 +02:00
DiffAdd = {
provider = "DiffAdd",
condition = condition.hide_in_width,
icon = "",
highlight = "StatusLineGitAdd",
},
})
table.insert(gls.left, {
2021-07-05 03:14:01 +02:00
DiffModified = {
provider = "DiffModified",
condition = condition.hide_in_width,
icon = "",
highlight = "StatusLineGitChange",
},
})
table.insert(gls.left, {
2021-07-05 03:14:01 +02:00
DiffRemove = {
provider = "DiffRemove",
condition = condition.hide_in_width,
icon = "",
highlight = "StatusLineGitDelete",
},
})
2021-03-18 07:08:38 +01:00
table.insert(gls.right, {
2021-07-05 03:14:01 +02:00
DiagnosticError = {
provider = "DiagnosticError",
icon = "",
highlight = "StatusLineLspDiagnosticsError",
},
})
2021-07-05 03:14:01 +02:00
table.insert(gls.right, {
DiagnosticWarn = {
provider = "DiagnosticWarn",
icon = "",
2021-07-05 03:14:01 +02:00
highlight = "StatusLineLspDiagnosticsWarning",
},
})
2021-03-18 07:08:38 +01:00
table.insert(gls.right, {
2021-07-05 03:14:01 +02:00
DiagnosticInfo = {
provider = "DiagnosticInfo",
icon = "",
2021-03-18 07:08:38 +01:00
2021-07-05 03:14:01 +02:00
highlight = "StatusLineLspDiagnosticsInformation",
},
})
2021-07-05 03:14:01 +02:00
table.insert(gls.right, {
DiagnosticHint = {
provider = "DiagnosticHint",
icon = "",
2021-07-05 03:14:01 +02:00
highlight = "StatusLineLspDiagnosticsHint",
},
})
2021-03-18 07:08:38 +01:00
table.insert(gls.right, {
2021-07-05 03:14:01 +02:00
TreesitterIcon = {
provider = function()
if next(vim.treesitter.highlighter.active) ~= nil then
return ""
end
return ""
end,
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineTreeSitter",
},
})
2021-07-05 03:14:01 +02:00
local get_lsp_client = function(msg)
msg = msg or "No Active LSP Client"
local buf_ft = vim.api.nvim_buf_get_option(0, "filetype")
local clients = vim.lsp.get_active_clients()
if next(clients) == nil then
return msg
end
local lsps = ""
for _, client in ipairs(clients) do
local filetypes = client.config.filetypes
if filetypes and vim.fn.index(filetypes, buf_ft) ~= 1 then
-- print(client.name)
if lsps == "" then
-- print("first", lsps)
lsps = client.name
else
lsps = lsps .. ", " .. client.name
-- print("more", lsps)
end
end
2021-07-05 03:14:01 +02:00
end
if lsps == "" then
return msg
else
return lsps
end
end
table.insert(gls.right, {
2021-07-05 03:14:01 +02:00
ShowLspClient = {
provider = get_lsp_client,
condition = function()
local tbl = { ["dashboard"] = true, [" "] = true }
if tbl[vim.bo.filetype] then
return false
end
return true
end,
icon = "",
highlight = "StatusLineNC",
},
})
2021-03-18 07:08:38 +01:00
table.insert(gls.right, {
2021-07-05 03:14:01 +02:00
LineInfo = {
provider = "LineColumn",
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineNC",
},
})
2020-10-29 02:59:10 +01:00
table.insert(gls.right, {
2021-07-05 03:14:01 +02:00
PerCent = {
provider = "LinePercent",
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineNC",
},
})
table.insert(gls.right, {
2021-07-05 03:14:01 +02:00
Tabstop = {
provider = function()
return "Spaces: " .. vim.api.nvim_buf_get_option(0, "shiftwidth") .. " "
end,
condition = condition.hide_in_width,
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineNC",
},
})
table.insert(gls.right, {
2021-07-05 03:14:01 +02:00
BufferType = {
provider = "FileTypeName",
condition = condition.hide_in_width,
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineNC",
},
})
table.insert(gls.right, {
2021-07-05 03:14:01 +02:00
FileEncode = {
provider = "FileEncode",
condition = condition.hide_in_width,
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineNC",
},
})
table.insert(gls.right, {
2021-07-05 03:14:01 +02:00
Space = {
provider = function()
return " "
end,
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineNC",
},
})
2020-10-29 02:59:10 +01:00
table.insert(gls.short_line_left, {
2021-07-05 03:14:01 +02:00
BufferType = {
provider = "FileTypeName",
separator = " ",
separator_highlight = "StatusLineSeparator",
highlight = "StatusLineNC",
},
})
2021-03-18 07:08:38 +01:00
table.insert(gls.short_line_left, {
2021-07-05 03:14:01 +02:00
SFileName = {
provider = "SFileName",
condition = condition.buffer_not_empty,
2021-07-05 03:14:01 +02:00
highlight = "StatusLineNC",
},
})
2021-03-18 07:08:38 +01:00
2021-05-27 06:09:35 +02:00
--table.insert(gls.short_line_right[1] = {BufferIcon = {provider = 'BufferIcon', highlight = {colors.grey, colors.bg}}})