diff options
Diffstat (limited to '.config/nvim/lua/cfg/galaxyline')
| -rw-r--r-- | .config/nvim/lua/cfg/galaxyline/init.lua | 279 | 
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", +  }, +})  |