summaryrefslogtreecommitdiff
path: root/.config/nvim/lua/cfg/galaxyline/init.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/cfg/galaxyline/init.lua')
-rw-r--r--.config/nvim/lua/cfg/galaxyline/init.lua279
1 files changed, 279 insertions, 0 deletions
diff --git a/.config/nvim/lua/cfg/galaxyline/init.lua b/.config/nvim/lua/cfg/galaxyline/init.lua
new file mode 100644
index 0000000..058846a
--- /dev/null
+++ b/.config/nvim/lua/cfg/galaxyline/init.lua
@@ -0,0 +1,279 @@
+local gl = require('galaxyline')
+-- get my theme in galaxyline repo
+local colors = {
+ bg = '#080808',
+ 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'
+}
+
+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",
+ },
+})
+-- 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",
+ },
+})