2021-07-04 18:40:40 +02:00
|
|
|
|
-- if not package.loaded['galaxyline'] then
|
|
|
|
|
-- return
|
|
|
|
|
-- end
|
2021-07-07 02:42:29 +02:00
|
|
|
|
local status_ok, gl = pcall(require, "galaxyline")
|
|
|
|
|
if not status_ok then
|
|
|
|
|
return
|
|
|
|
|
end
|
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
|
|
|
|
}
|
2021-06-28 15:04:44 +02:00
|
|
|
|
|
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
|
|
|
|
|
2021-05-27 06:05:23 +02: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-06 18:12:24 +02:00
|
|
|
|
separator_highlight = "StatusLineSeparator",
|
2021-07-06 17:30:01 +02:00
|
|
|
|
highlight = "StatusLineNC",
|
2021-07-05 03:14:01 +02:00
|
|
|
|
},
|
2021-05-27 06:05:23 +02:00
|
|
|
|
})
|
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
|
|
|
|
|
2021-05-27 06:05:23 +02: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",
|
|
|
|
|
},
|
2021-05-27 06:05:23 +02:00
|
|
|
|
})
|
2020-10-29 02:59:10 +01:00
|
|
|
|
|
2021-05-27 06:05:23 +02: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-05-27 06:05:23 +02:00
|
|
|
|
})
|
2021-03-18 07:08:38 +01:00
|
|
|
|
|
2021-05-27 06:05:23 +02:00
|
|
|
|
table.insert(gls.left, {
|
2021-07-05 03:14:01 +02:00
|
|
|
|
DiffAdd = {
|
|
|
|
|
provider = "DiffAdd",
|
|
|
|
|
condition = condition.hide_in_width,
|
|
|
|
|
icon = " ",
|
|
|
|
|
highlight = "StatusLineGitAdd",
|
|
|
|
|
},
|
2021-05-27 06:05:23 +02:00
|
|
|
|
})
|
2021-06-26 19:48:06 +02:00
|
|
|
|
|
2021-05-27 06:05:23 +02:00
|
|
|
|
table.insert(gls.left, {
|
2021-07-05 03:14:01 +02:00
|
|
|
|
DiffModified = {
|
|
|
|
|
provider = "DiffModified",
|
|
|
|
|
condition = condition.hide_in_width,
|
|
|
|
|
icon = " 柳",
|
|
|
|
|
highlight = "StatusLineGitChange",
|
|
|
|
|
},
|
2021-05-27 06:05:23 +02:00
|
|
|
|
})
|
2021-06-26 19:48:06 +02:00
|
|
|
|
|
2021-05-27 06:05:23 +02:00
|
|
|
|
table.insert(gls.left, {
|
2021-07-05 03:14:01 +02:00
|
|
|
|
DiffRemove = {
|
|
|
|
|
provider = "DiffRemove",
|
|
|
|
|
condition = condition.hide_in_width,
|
|
|
|
|
icon = " ",
|
|
|
|
|
highlight = "StatusLineGitDelete",
|
|
|
|
|
},
|
2021-05-27 06:05:23 +02:00
|
|
|
|
})
|
2021-03-18 07:08:38 +01:00
|
|
|
|
|
2021-07-06 18:12:24 +02:00
|
|
|
|
table.insert(gls.left, {
|
|
|
|
|
Filler = {
|
|
|
|
|
provider = function()
|
|
|
|
|
return " "
|
|
|
|
|
end,
|
|
|
|
|
highlight = "StatusLineGitDelete",
|
|
|
|
|
},
|
|
|
|
|
})
|
|
|
|
|
|
2021-05-27 06:05:23 +02:00
|
|
|
|
table.insert(gls.right, {
|
2021-07-05 03:14:01 +02:00
|
|
|
|
DiagnosticError = {
|
|
|
|
|
provider = "DiagnosticError",
|
|
|
|
|
icon = " ",
|
|
|
|
|
highlight = "StatusLineLspDiagnosticsError",
|
|
|
|
|
},
|
2021-05-27 06:05:23 +02:00
|
|
|
|
})
|
2021-07-05 03:14:01 +02:00
|
|
|
|
table.insert(gls.right, {
|
|
|
|
|
DiagnosticWarn = {
|
|
|
|
|
provider = "DiagnosticWarn",
|
|
|
|
|
icon = " ",
|
2021-07-04 21:01:09 +02:00
|
|
|
|
|
2021-07-05 03:14:01 +02:00
|
|
|
|
highlight = "StatusLineLspDiagnosticsWarning",
|
|
|
|
|
},
|
|
|
|
|
})
|
2021-03-18 07:08:38 +01:00
|
|
|
|
|
2021-05-27 06:05:23 +02: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-04 21:01:09 +02:00
|
|
|
|
|
2021-07-05 03:14:01 +02:00
|
|
|
|
table.insert(gls.right, {
|
|
|
|
|
DiagnosticHint = {
|
|
|
|
|
provider = "DiagnosticHint",
|
|
|
|
|
icon = " ",
|
2021-07-04 21:01:09 +02:00
|
|
|
|
|
2021-07-05 03:14:01 +02:00
|
|
|
|
highlight = "StatusLineLspDiagnosticsHint",
|
|
|
|
|
},
|
2021-07-04 21:01:09 +02:00
|
|
|
|
})
|
2021-03-18 07:08:38 +01:00
|
|
|
|
|
2021-05-27 06:05:23 +02: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-05-27 06:05:23 +02:00
|
|
|
|
})
|
2021-05-26 01:09:32 +02:00
|
|
|
|
|
2021-07-05 03:14:01 +02:00
|
|
|
|
local get_lsp_client = function(msg)
|
2021-07-06 18:12:24 +02:00
|
|
|
|
msg = msg or "LSP Inactive"
|
2021-07-05 03:14:01 +02:00
|
|
|
|
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
|
2021-07-03 17:27:00 +02:00
|
|
|
|
end
|
2021-07-05 03:14:01 +02:00
|
|
|
|
end
|
|
|
|
|
if lsps == "" then
|
|
|
|
|
return msg
|
|
|
|
|
else
|
|
|
|
|
return lsps
|
|
|
|
|
end
|
2021-07-03 17:27:00 +02:00
|
|
|
|
end
|
|
|
|
|
|
2021-05-27 06:05:23 +02:00
|
|
|
|
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-05-27 06:05:23 +02:00
|
|
|
|
})
|
2021-03-18 07:08:38 +01:00
|
|
|
|
|
2021-05-27 06:05:23 +02:00
|
|
|
|
table.insert(gls.right, {
|
2021-07-05 03:14:01 +02:00
|
|
|
|
LineInfo = {
|
|
|
|
|
provider = "LineColumn",
|
|
|
|
|
separator = " ",
|
|
|
|
|
separator_highlight = "StatusLineSeparator",
|
|
|
|
|
highlight = "StatusLineNC",
|
|
|
|
|
},
|
2021-05-27 06:05:23 +02:00
|
|
|
|
})
|
2020-10-29 02:59:10 +01:00
|
|
|
|
|
2021-05-27 06:05:23 +02:00
|
|
|
|
table.insert(gls.right, {
|
2021-07-05 03:14:01 +02:00
|
|
|
|
PerCent = {
|
|
|
|
|
provider = "LinePercent",
|
|
|
|
|
separator = " ",
|
|
|
|
|
separator_highlight = "StatusLineSeparator",
|
|
|
|
|
highlight = "StatusLineNC",
|
|
|
|
|
},
|
2021-05-27 06:05:23 +02:00
|
|
|
|
})
|
2021-03-22 01:02:49 +01:00
|
|
|
|
|
2021-05-27 06:05:23 +02:00
|
|
|
|
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",
|
|
|
|
|
},
|
2021-05-27 06:05:23 +02:00
|
|
|
|
})
|
2021-03-22 01:02:49 +01:00
|
|
|
|
|
2021-05-27 06:05:23 +02:00
|
|
|
|
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",
|
|
|
|
|
},
|
2021-05-27 06:05:23 +02:00
|
|
|
|
})
|
2021-03-22 01:02:49 +01:00
|
|
|
|
|
2021-05-27 06:05:23 +02:00
|
|
|
|
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",
|
|
|
|
|
},
|
2021-05-27 06:05:23 +02:00
|
|
|
|
})
|
2021-03-22 01:02:49 +01:00
|
|
|
|
|
2021-05-27 06:05:23 +02:00
|
|
|
|
table.insert(gls.right, {
|
2021-07-05 03:14:01 +02:00
|
|
|
|
Space = {
|
|
|
|
|
provider = function()
|
|
|
|
|
return " "
|
|
|
|
|
end,
|
|
|
|
|
separator = " ",
|
|
|
|
|
separator_highlight = "StatusLineSeparator",
|
|
|
|
|
highlight = "StatusLineNC",
|
|
|
|
|
},
|
2021-05-27 06:05:23 +02:00
|
|
|
|
})
|
2020-10-29 02:59:10 +01:00
|
|
|
|
|
2021-05-27 06:05:23 +02: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-05-27 06:05:23 +02:00
|
|
|
|
})
|
2021-03-18 07:08:38 +01:00
|
|
|
|
|
2021-05-27 06:05:23 +02: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-04 21:01:09 +02:00
|
|
|
|
|
2021-07-05 03:14:01 +02:00
|
|
|
|
highlight = "StatusLineNC",
|
|
|
|
|
},
|
2021-05-27 06:05:23 +02:00
|
|
|
|
})
|
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}}})
|