123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319 |
- -- if not package.loaded['galaxyline'] then
- -- return
- -- end
- local status_ok, gl = pcall(require, "galaxyline")
- if not status_ok then
- return
- end
- -- NOTE: if someone defines colors but doesn't have them then this will break
- local palette_status_ok, colors = pcall(require, lvim.colorscheme .. ".palette")
- if not palette_status_ok then
- colors = lvim.builtin.galaxyline.colors
- end
- 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,
- separator_highlight = { "NONE", colors.alt_bg },
- highlight = { "NONE", colors.alt_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 = { "NONE", colors.alt_bg },
- highlight = { colors.orange, colors.alt_bg },
- },
- })
- table.insert(gls.left, {
- GitBranch = {
- provider = "GitBranch",
- condition = condition.check_git_workspace,
- separator = " ",
- separator_highlight = { "NONE", colors.alt_bg },
- highlight = { colors.grey, colors.alt_bg },
- },
- })
- table.insert(gls.left, {
- DiffAdd = {
- provider = "DiffAdd",
- condition = condition.hide_in_width,
- icon = " ",
- highlight = { colors.green, colors.alt_bg },
- },
- })
- table.insert(gls.left, {
- DiffModified = {
- provider = "DiffModified",
- condition = condition.hide_in_width,
- icon = " 柳",
- highlight = { colors.blue, colors.alt_bg },
- },
- })
- table.insert(gls.left, {
- DiffRemove = {
- provider = "DiffRemove",
- condition = condition.hide_in_width,
- icon = " ",
- highlight = { colors.red, colors.alt_bg },
- },
- })
- table.insert(gls.left, {
- Filler = {
- provider = function()
- return " "
- end,
- highlight = { colors.grey, colors.alt_bg },
- },
- })
- -- get output from shell command
- function os.capture(cmd, raw)
- local f = assert(io.popen(cmd, "r"))
- local s = assert(f:read "*a")
- f:close()
- if raw then
- return s
- end
- s = string.gsub(s, "^%s+", "")
- s = string.gsub(s, "%s+$", "")
- s = string.gsub(s, "[\n\r]+", " ")
- return s
- end
- -- cleanup virtual env
- local function env_cleanup(venv)
- if string.find(venv, "/") then
- local final_venv = venv
- for w in venv:gmatch "([^/]+)" do
- final_venv = w
- end
- venv = final_venv
- end
- return venv
- end
- local PythonEnv = function()
- if vim.bo.filetype == "python" then
- local venv = os.getenv "CONDA_DEFAULT_ENV"
- if venv ~= nil then
- return " (" .. env_cleanup(venv) .. ")"
- end
- venv = os.getenv "VIRTUAL_ENV"
- if venv ~= nil then
- return " (" .. env_cleanup(venv) .. ")"
- end
- return ""
- end
- return ""
- end
- table.insert(gls.left, {
- VirtualEnv = {
- provider = PythonEnv,
- event = "BufEnter",
- highlight = { colors.green, colors.alt_bg },
- },
- })
- table.insert(gls.right, {
- DiagnosticError = {
- provider = "DiagnosticError",
- icon = " ",
- highlight = { colors.red, colors.alt_bg },
- },
- })
- table.insert(gls.right, {
- DiagnosticWarn = {
- provider = "DiagnosticWarn",
- icon = " ",
- highlight = { colors.orange, colors.alt_bg },
- },
- })
- table.insert(gls.right, {
- DiagnosticInfo = {
- provider = "DiagnosticInfo",
- icon = " ",
- highlight = { colors.yellow, colors.alt_bg },
- },
- })
- table.insert(gls.right, {
- DiagnosticHint = {
- provider = "DiagnosticHint",
- icon = " ",
- highlight = { colors.blue, colors.alt_bg },
- },
- })
- table.insert(gls.right, {
- TreesitterIcon = {
- provider = function()
- if next(vim.treesitter.highlighter.active) ~= nil then
- return " "
- end
- return ""
- end,
- separator = " ",
- separator_highlight = { "NONE", colors.alt_bg },
- highlight = { colors.green, colors.alt_bg },
- },
- })
- local function get_attached_provider_name(msg)
- msg = msg or "LSP Inactive"
- local buf_clients = vim.lsp.buf_get_clients()
- local utils = require "utils"
- if next(buf_clients) == nil then
- return msg
- end
- local buf_ft = vim.bo.filetype
- local buf_client_names = {}
- local null_ls_providers = require("lsp.null-ls").get_registered_providers_by_filetype(buf_ft)
- for _, client in pairs(buf_clients) do
- if client.name ~= "null-ls" then
- table.insert(buf_client_names, client.name)
- end
- end
- utils.list_extend_unique(buf_client_names, null_ls_providers)
- return table.concat(buf_client_names, ", ")
- end
- table.insert(gls.right, {
- ShowLspClient = {
- provider = get_attached_provider_name,
- condition = function()
- local tbl = { ["dashboard"] = true, [" "] = true }
- if tbl[vim.bo.filetype] then
- return false
- end
- return true
- end,
- icon = " ",
- highlight = { colors.grey, colors.alt_bg },
- },
- })
- table.insert(gls.right, {
- LineInfo = {
- provider = "LineColumn",
- separator = " ",
- separator_highlight = { "NONE", colors.alt_bg },
- highlight = { colors.grey, colors.alt_bg },
- },
- })
- table.insert(gls.right, {
- PerCent = {
- provider = "LinePercent",
- separator = " ",
- separator_highlight = { "NONE", colors.alt_bg },
- highlight = { colors.grey, colors.alt_bg },
- },
- })
- table.insert(gls.right, {
- Tabstop = {
- provider = function()
- local label = "Spaces: "
- if not vim.api.nvim_buf_get_option(0, "expandtab") then
- label = "Tab size: "
- end
- return label .. vim.api.nvim_buf_get_option(0, "shiftwidth") .. " "
- end,
- condition = condition.hide_in_width,
- separator = " ",
- separator_highlight = { "NONE", colors.alt_bg },
- highlight = { colors.grey, colors.alt_bg },
- },
- })
- table.insert(gls.right, {
- BufferType = {
- provider = "FileTypeName",
- condition = condition.hide_in_width,
- separator = " ",
- separator_highlight = { "NONE", colors.alt_bg },
- highlight = { colors.grey, colors.alt_bg },
- },
- })
- table.insert(gls.right, {
- FileEncode = {
- provider = "FileEncode",
- condition = condition.hide_in_width,
- separator = " ",
- separator_highlight = { "NONE", colors.alt_bg },
- highlight = { colors.grey, colors.alt_bg },
- },
- })
- table.insert(gls.right, {
- Space = {
- provider = function()
- return " "
- end,
- separator = " ",
- separator_highlight = { "NONE", colors.alt_bg },
- highlight = { colors.grey, colors.alt_bg },
- },
- })
- table.insert(gls.short_line_left, {
- BufferType = {
- provider = "FileTypeName",
- separator = " ",
- separator_highlight = { "NONE", colors.alt_bg },
- highlight = { colors.alt_bg, colors.alt_bg },
- },
- })
- table.insert(gls.short_line_left, {
- SFileName = {
- provider = "SFileName",
- condition = condition.buffer_not_empty,
- highlight = { colors.alt_bg, colors.alt_bg },
- },
- })
- --table.insert(gls.short_line_right[1] = {BufferIcon = {provider = 'BufferIcon', highlight = {colors.grey, colors.alt_bg}}})
|