move to feline.nvim
This commit is contained in:
		
							parent
							
								
									9635b45404
								
							
						
					
					
						commit
						80d36cca00
					
				| @ -82,7 +82,7 @@ M.plugin_status = { | ||||
|    comment = true, -- universal commentor | ||||
|    dashboard = true, -- a nice looking dashboard | ||||
|    esc_insertmode = true, -- escape from insert mode using custom keys | ||||
|    galaxyline = true, -- statusline | ||||
|    feline = true, -- statusline | ||||
|    gitsigns = true, -- gitsigns in statusline | ||||
|    lspkind = true, -- lsp enhancements | ||||
|    lspsignature = true, -- lsp enhancements | ||||
|  | ||||
| @ -86,7 +86,7 @@ M.plugin_status = { | ||||
|    comment = true, -- universal commentor | ||||
|    dashboard = true, -- a nice looking dashboard | ||||
|    esc_insertmode = true, -- escape from insert mode using custom keys | ||||
|    galaxyline = true, -- statusline | ||||
|    feline = true, -- statusline | ||||
|    gitsigns = true, -- gitsigns in statusline | ||||
|    lspkind = true, -- lsp enhancements | ||||
|    lspsignature = true, -- lsp enhancements | ||||
|  | ||||
| @ -1,14 +1,5 @@ | ||||
| local colors = require("colors").get() | ||||
| 
 | ||||
| local present1, gl = pcall(require, "galaxyline") | ||||
| local present2, condition = pcall(require, "galaxyline.condition") | ||||
| if not (present1 or present2) then | ||||
|    return | ||||
| end | ||||
| 
 | ||||
| local gls = gl.section | ||||
| 
 | ||||
| gl.short_line_list = { " " } | ||||
| local lsp = require "feline.providers.lsp" | ||||
| 
 | ||||
| local icon_styles = { | ||||
|    default = { | ||||
| @ -18,7 +9,6 @@ local icon_styles = { | ||||
|       vi_mode_icon = " ", | ||||
|       position_icon = " ", | ||||
|    }, | ||||
| 
 | ||||
|    arrow = { | ||||
|       left = "", | ||||
|       right = "", | ||||
| @ -55,264 +45,263 @@ local icon_styles = { | ||||
| local user_statusline_style = require("core.utils").load_config().ui.plugin.statusline.style | ||||
| local statusline_style = icon_styles[user_statusline_style] | ||||
| 
 | ||||
| local left_separator = statusline_style.left | ||||
| local right_separator = statusline_style.right | ||||
| -- Initialize the components table | ||||
| local components = { | ||||
|    left = { active = {}, inactive = {} }, | ||||
|    mid = { active = {}, inactive = {} }, | ||||
|    right = { active = {}, inactive = {} }, | ||||
| } | ||||
| 
 | ||||
| gls.left[1] = { | ||||
|    FirstElement = { | ||||
|       provider = function() | ||||
|          return "▋" | ||||
|       end, | ||||
|       highlight = { colors.nord_blue, colors.nord_blue }, | ||||
| components.left.active[1] = { | ||||
|    provider = statusline_style.main_icon, | ||||
| 
 | ||||
|    hl = { | ||||
|       fg = colors.statusline_bg, | ||||
|       bg = colors.nord_blue, | ||||
|    }, | ||||
| 
 | ||||
|    right_sep = { str = statusline_style.right, hl = { | ||||
|       fg = colors.nord_blue, | ||||
|       bg = colors.one_bg2, | ||||
|    } }, | ||||
| } | ||||
| 
 | ||||
| components.left.active[2] = { | ||||
|    provider = statusline_style.right, | ||||
| 
 | ||||
|    hl = { | ||||
|       fg = colors.one_bg2, | ||||
|       bg = colors.lightbg, | ||||
|    }, | ||||
| } | ||||
| 
 | ||||
| gls.left[2] = { | ||||
|    statusIcon = { | ||||
|       provider = function() | ||||
|          return statusline_style.main_icon | ||||
|       end, | ||||
|       highlight = { colors.statusline_bg, colors.nord_blue }, | ||||
|       separator = right_separator, | ||||
|       separator_highlight = { colors.nord_blue, colors.one_bg2 }, | ||||
| components.left.active[3] = { | ||||
|    provider = function() | ||||
|       local filename = vim.fn.expand "%:t" | ||||
|       local extension = vim.fn.expand "%:e" | ||||
|       local icon = require("nvim-web-devicons").get_icon(filename, extension) | ||||
|       if icon == nil then | ||||
|          icon = "" | ||||
|          return icon | ||||
|       end | ||||
|       return icon .. " " .. filename .. " " | ||||
|    end, | ||||
|    hl = { | ||||
|       fg = colors.white, | ||||
|       bg = colors.lightbg, | ||||
|    }, | ||||
| 
 | ||||
|    right_sep = { str = statusline_style.right, hl = { fg = colors.lightbg, bg = colors.lightbg2 } }, | ||||
| } | ||||
| 
 | ||||
| gls.left[3] = { | ||||
|    left_arow2 = { | ||||
|       provider = function() end, | ||||
|       separator = right_separator .. " ", | ||||
|       separator_highlight = { colors.one_bg2, colors.lightbg }, | ||||
| components.left.active[4] = { | ||||
|    provider = function() | ||||
|       local dir_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":t") | ||||
|       return " " .. dir_name .. " " | ||||
|    end, | ||||
| 
 | ||||
|    hl = { | ||||
|       fg = colors.grey_fg2, | ||||
|       bg = colors.lightbg2, | ||||
|    }, | ||||
|    right_sep = { str = statusline_style.right, hi = { | ||||
|       fg = colors.lightbg2, | ||||
|       bg = colors.statusline_bg, | ||||
|    } }, | ||||
| } | ||||
| 
 | ||||
| gls.left[4] = { | ||||
|    FileIcon = { | ||||
|       provider = "FileIcon", | ||||
|       condition = condition.buffer_not_empty, | ||||
|       highlight = { colors.white, colors.lightbg }, | ||||
| components.left.active[5] = { | ||||
|    provider = "git_diff_added", | ||||
|    hl = { | ||||
|       fg = colors.grey_fg2, | ||||
|       bg = colors.statusline_bg, | ||||
|    }, | ||||
|    icon = " ", | ||||
| } | ||||
| -- diffModfified | ||||
| components.left.active[6] = { | ||||
|    provider = "git_diff_changed", | ||||
|    hl = { | ||||
|       fg = colors.grey_fg2, | ||||
|       bg = colors.statusline_bg, | ||||
|    }, | ||||
|    icon = "   ", | ||||
| } | ||||
| -- diffRemove | ||||
| components.left.active[7] = { | ||||
|    provider = "git_diff_removed", | ||||
|    hl = { | ||||
|       fg = colors.grey_fg2, | ||||
|       bg = colors.statusline_bg, | ||||
|    }, | ||||
|    icon = "  ", | ||||
| } | ||||
| 
 | ||||
| gls.left[5] = { | ||||
|    FileName = { | ||||
|       provider = function() | ||||
|          local fileinfo = require "galaxyline.provider_fileinfo" | ||||
| 
 | ||||
|          if vim.api.nvim_buf_get_name(0):len() == 0 then | ||||
|             return "" | ||||
|          end | ||||
| 
 | ||||
|          return fileinfo.get_current_file_name("", "") | ||||
|       end, | ||||
|       highlight = { colors.white, colors.lightbg }, | ||||
|       separator = right_separator, | ||||
|       separator_highlight = { colors.lightbg, colors.lightbg2 }, | ||||
|    }, | ||||
| components.left.active[8] = { | ||||
|    provider = "diagnostic_errors", | ||||
|    enabled = function() | ||||
|       return lsp.diagnostics_exist "Error" | ||||
|    end, | ||||
|    hl = { fg = colors.red }, | ||||
|    icon = "  ", | ||||
| } | ||||
| 
 | ||||
| gls.left[6] = { | ||||
|    current_dir = { | ||||
|       provider = function() | ||||
|          local dir_name = vim.fn.fnamemodify(vim.fn.getcwd(), ":t") | ||||
|          return "  " .. dir_name .. " " | ||||
|       end, | ||||
|       highlight = { colors.grey_fg2, colors.lightbg2 }, | ||||
|       separator = right_separator, | ||||
|       separator_highlight = { colors.lightbg2, colors.statusline_bg }, | ||||
|    }, | ||||
| components.left.active[9] = { | ||||
|    provider = "diagnostic_warnings", | ||||
|    enabled = function() | ||||
|       return lsp.diagnostics_exist "Warning" | ||||
|    end, | ||||
|    hl = { fg = colors.yellow }, | ||||
|    icon = "  ", | ||||
| } | ||||
| 
 | ||||
| local checkwidth = function() | ||||
|    local squeeze_width = vim.fn.winwidth(0) / 2 | ||||
|    if squeeze_width > 30 then | ||||
|       return true | ||||
|    end | ||||
|    return false | ||||
| end | ||||
| 
 | ||||
| gls.left[7] = { | ||||
|    DiffAdd = { | ||||
|       provider = "DiffAdd", | ||||
|       condition = checkwidth, | ||||
|       icon = "  ", | ||||
|       highlight = { colors.white, colors.statusline_bg }, | ||||
|    }, | ||||
| components.left.active[10] = { | ||||
|    provider = "diagnostic_hints", | ||||
|    enabled = function() | ||||
|       return lsp.diagnostics_exist "Hint" | ||||
|    end, | ||||
|    hl = { fg = colors.grey_fg2 }, | ||||
|    icon = "  ", | ||||
| } | ||||
| 
 | ||||
| gls.left[8] = { | ||||
|    DiffModified = { | ||||
|       provider = "DiffModified", | ||||
|       condition = checkwidth, | ||||
|       icon = "   ", | ||||
|       highlight = { colors.grey_fg2, colors.statusline_bg }, | ||||
|    }, | ||||
| components.left.active[11] = { | ||||
|    provider = "diagnostic_info", | ||||
|    enabled = function() | ||||
|       return lsp.diagnostics_exist "Information" | ||||
|    end, | ||||
|    hl = { fg = colors.green }, | ||||
|    icon = "  ", | ||||
| } | ||||
| 
 | ||||
| gls.left[9] = { | ||||
|    DiffRemove = { | ||||
|       provider = "DiffRemove", | ||||
|       condition = checkwidth, | ||||
|       icon = "  ", | ||||
|       highlight = { colors.grey_fg2, colors.statusline_bg }, | ||||
|    }, | ||||
| components.right.active[1] = { | ||||
|    provider = function() | ||||
|       if lsp.is_lsp_attached then | ||||
|          return " " .. "  " .. " LSP" | ||||
|       end | ||||
|    end, | ||||
|    hl = { fg = colors.grey_fg2, bg = colors.statusline_bg }, | ||||
| } | ||||
| 
 | ||||
| gls.left[10] = { | ||||
|    DiagnosticError = { | ||||
|       provider = "DiagnosticError", | ||||
|       icon = "  ", | ||||
|       highlight = { colors.red, colors.statusline_bg }, | ||||
| components.right.active[2] = { | ||||
|    provider = "git_branch", | ||||
|    hl = { | ||||
|       fg = colors.grey_fg2, | ||||
|       bg = colors.statusline_bg, | ||||
|    }, | ||||
|    icon = "  ", | ||||
| } | ||||
| 
 | ||||
| gls.left[11] = { | ||||
|    DiagnosticWarn = { | ||||
|       provider = "DiagnosticWarn", | ||||
|       icon = "  ", | ||||
|       highlight = { colors.yellow, colors.statusline_bg }, | ||||
|    }, | ||||
| } | ||||
| 
 | ||||
| gls.right[1] = { | ||||
|    lsp_status = { | ||||
|       provider = function() | ||||
|          local clients = vim.lsp.get_active_clients() | ||||
|          if next(clients) ~= nil then | ||||
|             local buf_ft = vim.api.nvim_buf_get_option(0, "filetype") | ||||
|             for _, client in ipairs(clients) do | ||||
|                local filetypes = client.config.filetypes | ||||
|                if filetypes and vim.fn.index(filetypes, buf_ft) ~= -1 then | ||||
|                   return " " .. "  " .. " LSP" | ||||
|                end | ||||
|             end | ||||
|             return "" | ||||
|          else | ||||
|             return "" | ||||
|          end | ||||
|       end, | ||||
|       highlight = { colors.grey_fg2, colors.statusline_bg }, | ||||
|    }, | ||||
| } | ||||
| 
 | ||||
| gls.right[2] = { | ||||
|    GitIcon = { | ||||
|       provider = function() | ||||
|          return " " | ||||
|       end, | ||||
|       condition = require("galaxyline.condition").check_git_workspace, | ||||
|       highlight = { colors.grey_fg2, colors.statusline_bg }, | ||||
|       separator = " ", | ||||
|       separator_highlight = { colors.statusline_bg, colors.statusline_bg }, | ||||
|    }, | ||||
| } | ||||
| 
 | ||||
| gls.right[3] = { | ||||
|    GitBranch = { | ||||
|       provider = "GitBranch", | ||||
|       condition = require("galaxyline.condition").check_git_workspace, | ||||
|       highlight = { colors.grey_fg2, colors.statusline_bg }, | ||||
| components.right.active[3] = { | ||||
|    provider = " " .. statusline_style.left, | ||||
|    hl = { | ||||
|       fg = colors.one_bg2, | ||||
|       bg = colors.statusline_bg, | ||||
|    }, | ||||
| } | ||||
| 
 | ||||
| local mode_colors = { | ||||
|    ['n'] = { "NORMAL", colors.red }, | ||||
|    ['no'] = { "N-PENDING", colors.red }, | ||||
|    ['i'] = { "INSERT", colors.dark_purple }, | ||||
|    ['ic'] = { "INSERT", colors.dark_purple }, | ||||
|    ['t'] = { "TERMINAL", colors.green }, | ||||
|    ['v'] = { "VISUAL", colors.cyan }, | ||||
|    ['V'] = { "V-LINE", colors.cyan }, | ||||
|    [''] = { "V-BLOCK", colors.cyan }, | ||||
|    ['R'] = { "REPLACE", colors.orange }, | ||||
|    ['Rv'] = { "V-REPLACE", colors.orange }, | ||||
|    ['s'] = { "SELECT", colors.nord_blue }, | ||||
|    ['S'] = { "S-LINE", colors.nord_blue }, | ||||
|    [''] = { "S-BLOCK", colors.nord_blue }, | ||||
|    ['c'] = { "COMMAND", colors.pink }, | ||||
|    ['cv'] = { "COMMAND", colors.pink }, | ||||
|    ['ce'] = { "COMMAND", colors.pink }, | ||||
|    ['r'] = { "PROMPT", colors.teal }, | ||||
|    ['rm'] = { "MORE", colors.teal }, | ||||
|    ['r?'] = { "CONFIRM", colors.teal }, | ||||
|    ['!'] = { "SHELL", colors.green }, | ||||
|    ["n"] = { "NORMAL", colors.red }, | ||||
|    ["no"] = { "N-PENDING", colors.red }, | ||||
|    ["i"] = { "INSERT", colors.dark_purple }, | ||||
|    ["ic"] = { "INSERT", colors.dark_purple }, | ||||
|    ["t"] = { "TERMINAL", colors.green }, | ||||
|    ["v"] = { "VISUAL", colors.cyan }, | ||||
|    ["V"] = { "V-LINE", colors.cyan }, | ||||
|    [""] = { "V-BLOCK", colors.cyan }, | ||||
|    ["R"] = { "REPLACE", colors.orange }, | ||||
|    ["Rv"] = { "V-REPLACE", colors.orange }, | ||||
|    ["s"] = { "SELECT", colors.nord_blue }, | ||||
|    ["S"] = { "S-LINE", colors.nord_blue }, | ||||
|    [""] = { "S-BLOCK", colors.nord_blue }, | ||||
|    ["c"] = { "COMMAND", colors.pink }, | ||||
|    ["cv"] = { "COMMAND", colors.pink }, | ||||
|    ["ce"] = { "COMMAND", colors.pink }, | ||||
|    ["r"] = { "PROMPT", colors.teal }, | ||||
|    ["rm"] = { "MORE", colors.teal }, | ||||
|    ["r?"] = { "CONFIRM", colors.teal }, | ||||
|    ["!"] = { "SHELL", colors.green }, | ||||
| } | ||||
| 
 | ||||
| local mode = function(n) | ||||
|    return mode_colors[vim.fn.mode()][n] | ||||
| local chad_mode_hl = function() | ||||
|    return { | ||||
|       fg = mode_colors[vim.fn.mode()][2], | ||||
|       bg = colors.one_bg, | ||||
|    } | ||||
| end | ||||
| 
 | ||||
| gls.right[4] = { | ||||
|    left_arrow = { | ||||
|       provider = function() end, | ||||
|       separator = " " .. left_separator, | ||||
|       separator_highlight = { colors.one_bg2, colors.statusline_bg }, | ||||
| components.right.active[4] = { | ||||
|    provider = statusline_style.left, | ||||
|    hl = function() | ||||
|       return { | ||||
|          fg = mode_colors[vim.fn.mode()][2], | ||||
|          bg = colors.one_bg2, | ||||
|       } | ||||
|    end, | ||||
| } | ||||
| 
 | ||||
| components.right.active[5] = { | ||||
|    provider = statusline_style.vi_mode_icon, | ||||
|    hl = function() | ||||
|       return { | ||||
|          fg = colors.statusline_bg, | ||||
|          bg = mode_colors[vim.fn.mode()][2], | ||||
|       } | ||||
|    end, | ||||
| } | ||||
| 
 | ||||
| components.right.active[6] = { | ||||
|    provider = function() | ||||
|       return " " .. mode_colors[vim.fn.mode()][1] .. " " | ||||
|    end, | ||||
|    hl = chad_mode_hl, | ||||
| } | ||||
| 
 | ||||
| components.right.active[7] = { | ||||
|    provider = statusline_style.left, | ||||
|    hl = { | ||||
|       fg = colors.grey, | ||||
|       bg = colors.one_bg, | ||||
|    }, | ||||
| } | ||||
| 
 | ||||
| gls.right[5] = { | ||||
|    left_round = { | ||||
|       provider = function() | ||||
|          vim.cmd("hi Galaxyleft_round guifg=" .. mode(2)) | ||||
|          return left_separator | ||||
|       end, | ||||
|       highlight = { "GalaxyViMode", colors.one_bg2 }, | ||||
| components.right.active[8] = { | ||||
|    provider = statusline_style.left, | ||||
|    hl = { | ||||
|       fg = colors.green, | ||||
|       bg = colors.grey, | ||||
|    }, | ||||
| } | ||||
| 
 | ||||
| gls.right[6] = { | ||||
|    viMode_icon = { | ||||
|       provider = function() | ||||
|          vim.cmd("hi GalaxyviMode_icon guibg=" .. mode(2)) | ||||
|          return statusline_style.vi_mode_icon | ||||
|       end, | ||||
|       highlight = { colors.statusline_bg, colors.red }, | ||||
| components.right.active[9] = { | ||||
|    provider = statusline_style.position_icon, | ||||
|    hl = { | ||||
|       fg = colors.black, | ||||
|       bg = colors.green, | ||||
|    }, | ||||
| } | ||||
| 
 | ||||
| gls.right[7] = { | ||||
|    ViMode = { | ||||
|       provider = function() | ||||
|          vim.cmd("hi GalaxyViMode guifg=" .. mode(2)) | ||||
|          return "  " .. mode(1) .. " " | ||||
|       end, | ||||
|       highlight = { "GalaxyViMode", colors.lightbg }, | ||||
| components.right.active[10] = { | ||||
|    provider = function() | ||||
|       local current_line = vim.fn.line "." | ||||
|       local total_line = vim.fn.line "$" | ||||
| 
 | ||||
|       if current_line == 1 then | ||||
|          return " Top " | ||||
|       elseif current_line == vim.fn.line "$" then | ||||
|          return " Bot " | ||||
|       end | ||||
|       local result, _ = math.modf((current_line / total_line) * 100) | ||||
|       return " " .. result .. " % " | ||||
|    end, | ||||
| 
 | ||||
|    hl = { | ||||
|       fg = colors.green, | ||||
|       bg = colors.one_bg, | ||||
|    }, | ||||
| } | ||||
| 
 | ||||
| gls.right[8] = { | ||||
|    left_arrow2 = { | ||||
|       provider = function() end, | ||||
|       separator = left_separator, | ||||
|       separator_highlight = { colors.grey, colors.lightbg }, | ||||
|    }, | ||||
| } | ||||
| 
 | ||||
| gls.right[9] = { | ||||
|    some_RoundIcon = { | ||||
|       provider = function() | ||||
|          return statusline_style.position_icon | ||||
|       end, | ||||
|       separator = left_separator, | ||||
|       separator_highlight = { colors.green, colors.grey }, | ||||
|       highlight = { colors.lightbg, colors.green }, | ||||
|    }, | ||||
| } | ||||
| 
 | ||||
| gls.right[10] = { | ||||
|    line_percentage = { | ||||
|       provider = function() | ||||
|          local current_line = vim.fn.line "." | ||||
|          local total_line = vim.fn.line "$" | ||||
| 
 | ||||
|          if current_line == 1 then | ||||
|             return "  Top " | ||||
|          elseif current_line == vim.fn.line "$" then | ||||
|             return "  Bot " | ||||
|          end | ||||
|          local result, _ = math.modf((current_line / total_line) * 100) | ||||
|          return "  " .. result .. "% " | ||||
|       end, | ||||
|       highlight = { colors.green, colors.lightbg }, | ||||
|    }, | ||||
| require("feline").setup { | ||||
|    default_bg = colors.statusline_bg, | ||||
|    default_fg = colors.fg, | ||||
|    components = components, | ||||
| } | ||||
|  | ||||
| @ -38,8 +38,8 @@ return packer.startup(function() | ||||
|    } | ||||
| 
 | ||||
|    use { | ||||
|       "glepnir/galaxyline.nvim", | ||||
|       disable = not plugin_status.galaxyline, | ||||
|       "famiu/feline.nvim", | ||||
|       disable = not plugin_status.feline, | ||||
|       after = "nvim-web-devicons", | ||||
|       config = function() | ||||
|          require "plugins.configs.statusline" | ||||
| @ -49,7 +49,7 @@ return packer.startup(function() | ||||
|    use { | ||||
|       "akinsho/bufferline.nvim", | ||||
|       disable = not plugin_status.bufferline, | ||||
|       after = "galaxyline.nvim", | ||||
|       after = "feline.nvim", | ||||
|       config = function() | ||||
|          require "plugins.configs.bufferline" | ||||
|       end, | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user