mirror of
https://github.com/LunarVim/LunarVim.git
synced 2024-09-21 02:55:09 +02:00
333 lines
7.5 KiB
Lua
333 lines
7.5 KiB
Lua
-- if not package.loaded['galaxyline'] then
|
||
-- return
|
||
-- end
|
||
|
||
local gl = require "galaxyline"
|
||
-- get my theme in galaxyline repo
|
||
-- local colors = require('galaxyline.theme').default
|
||
local colors = {
|
||
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",
|
||
}
|
||
|
||
-- 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'
|
||
-- }
|
||
|
||
local condition = require "galaxyline.condition"
|
||
local gls = gl.section
|
||
gl.short_line_list = { "NvimTree", "vista", "dbui", "packer" }
|
||
|
||
table.insert(gls.left, {
|
||
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,
|
||
highlight = 'StatusLineNC'
|
||
-- highlight = {colors.red, colors.bg}
|
||
},
|
||
})
|
||
-- print(vim.fn.getbufvar(0, 'ts'))
|
||
vim.fn.getbufvar(0, "ts")
|
||
|
||
table.insert(gls.left, {
|
||
GitIcon = {
|
||
provider = function()
|
||
return " "
|
||
end,
|
||
condition = condition.check_git_workspace,
|
||
separator = " ",
|
||
separator_highlight = "StatusLineSeparator",
|
||
highlight = "StatusLineGit",
|
||
},
|
||
})
|
||
|
||
table.insert(gls.left, {
|
||
GitBranch = {
|
||
provider = "GitBranch",
|
||
condition = condition.check_git_workspace,
|
||
separator = " ",
|
||
separator_highlight = "StatusLineSeparator",
|
||
highlight = "StatusLineNC",
|
||
},
|
||
})
|
||
|
||
table.insert(gls.left, {
|
||
DiffAdd = {
|
||
provider = "DiffAdd",
|
||
condition = condition.hide_in_width,
|
||
icon = " ",
|
||
highlight = "StatusLineGitAdd",
|
||
},
|
||
})
|
||
|
||
table.insert(gls.left, {
|
||
DiffModified = {
|
||
provider = "DiffModified",
|
||
condition = condition.hide_in_width,
|
||
icon = " 柳",
|
||
highlight = "StatusLineGitChange",
|
||
},
|
||
})
|
||
|
||
table.insert(gls.left, {
|
||
DiffRemove = {
|
||
provider = "DiffRemove",
|
||
condition = condition.hide_in_width,
|
||
icon = " ",
|
||
highlight = "StatusLineGitDelete",
|
||
},
|
||
})
|
||
|
||
table.insert(gls.right, {
|
||
DiagnosticError = {
|
||
provider = "DiagnosticError",
|
||
icon = " ",
|
||
highlight = "StatusLineLspDiagnosticsError",
|
||
},
|
||
})
|
||
table.insert(gls.right, {
|
||
DiagnosticWarn = {
|
||
provider = "DiagnosticWarn",
|
||
icon = " ",
|
||
|
||
highlight = "StatusLineLspDiagnosticsWarning",
|
||
},
|
||
})
|
||
|
||
table.insert(gls.right, {
|
||
DiagnosticInfo = {
|
||
provider = "DiagnosticInfo",
|
||
icon = " ",
|
||
|
||
highlight = "StatusLineLspDiagnosticsInformation",
|
||
},
|
||
})
|
||
|
||
table.insert(gls.right, {
|
||
DiagnosticHint = {
|
||
provider = "DiagnosticHint",
|
||
icon = " ",
|
||
|
||
highlight = "StatusLineLspDiagnosticsHint",
|
||
},
|
||
})
|
||
|
||
table.insert(gls.right, {
|
||
TreesitterIcon = {
|
||
provider = function()
|
||
if next(vim.treesitter.highlighter.active) ~= nil then
|
||
return " "
|
||
end
|
||
return ""
|
||
end,
|
||
separator = " ",
|
||
separator_highlight = "StatusLineSeparator",
|
||
highlight = "StatusLineTreeSitter",
|
||
},
|
||
})
|
||
|
||
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
|
||
end
|
||
if lsps == "" then
|
||
return msg
|
||
else
|
||
return lsps
|
||
end
|
||
end
|
||
|
||
table.insert(gls.right, {
|
||
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",
|
||
},
|
||
})
|
||
|
||
table.insert(gls.right, {
|
||
LineInfo = {
|
||
provider = "LineColumn",
|
||
separator = " ",
|
||
separator_highlight = "StatusLineSeparator",
|
||
highlight = "StatusLineNC",
|
||
},
|
||
})
|
||
|
||
table.insert(gls.right, {
|
||
PerCent = {
|
||
provider = "LinePercent",
|
||
separator = " ",
|
||
separator_highlight = "StatusLineSeparator",
|
||
highlight = "StatusLineNC",
|
||
},
|
||
})
|
||
|
||
table.insert(gls.right, {
|
||
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, {
|
||
BufferType = {
|
||
provider = "FileTypeName",
|
||
condition = condition.hide_in_width,
|
||
separator = " ",
|
||
separator_highlight = "StatusLineSeparator",
|
||
highlight = "StatusLineNC",
|
||
},
|
||
})
|
||
|
||
table.insert(gls.right, {
|
||
FileEncode = {
|
||
provider = "FileEncode",
|
||
condition = condition.hide_in_width,
|
||
separator = " ",
|
||
separator_highlight = "StatusLineSeparator",
|
||
highlight = "StatusLineNC",
|
||
},
|
||
})
|
||
|
||
table.insert(gls.right, {
|
||
Space = {
|
||
provider = function()
|
||
return " "
|
||
end,
|
||
separator = " ",
|
||
separator_highlight = "StatusLineSeparator",
|
||
highlight = "StatusLineNC",
|
||
},
|
||
})
|
||
|
||
table.insert(gls.short_line_left, {
|
||
BufferType = {
|
||
provider = "FileTypeName",
|
||
separator = " ",
|
||
separator_highlight = "StatusLineSeparator",
|
||
highlight = "StatusLineNC",
|
||
},
|
||
})
|
||
|
||
table.insert(gls.short_line_left, {
|
||
SFileName = {
|
||
provider = "SFileName",
|
||
condition = condition.buffer_not_empty,
|
||
|
||
highlight = "StatusLineNC",
|
||
},
|
||
})
|
||
|
||
--table.insert(gls.short_line_right[1] = {BufferIcon = {provider = 'BufferIcon', highlight = {colors.grey, colors.bg}}})
|