move to feline.nvim

This commit is contained in:
siduck76 2021-08-26 10:48:13 +05:30
parent 9635b45404
commit 80d36cca00
4 changed files with 219 additions and 230 deletions

View File

@ -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

View File

@ -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

View File

@ -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,252 +45,242 @@ 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 = {
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,
},
}
components.left.active[3] = {
provider = function()
return ""
end,
highlight = { colors.nord_blue, colors.nord_blue },
},
}
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 },
},
}
gls.left[3] = {
left_arow2 = {
provider = function() end,
separator = right_separator .. " ",
separator_highlight = { colors.one_bg2, colors.lightbg },
},
}
gls.left[4] = {
FileIcon = {
provider = "FileIcon",
condition = condition.buffer_not_empty,
highlight = { colors.white, colors.lightbg },
},
}
gls.left[5] = {
FileName = {
provider = function()
local fileinfo = require "galaxyline.provider_fileinfo"
if vim.api.nvim_buf_get_name(0):len() == 0 then
return ""
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 fileinfo.get_current_file_name("", "")
return icon .. " " .. filename .. " "
end,
highlight = { colors.white, colors.lightbg },
separator = right_separator,
separator_highlight = { colors.lightbg, colors.lightbg2 },
hl = {
fg = colors.white,
bg = colors.lightbg,
},
right_sep = { str = statusline_style.right, hl = { fg = colors.lightbg, bg = colors.lightbg2 } },
}
gls.left[6] = {
current_dir = {
components.left.active[4] = {
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 },
hl = {
fg = colors.grey_fg2,
bg = colors.lightbg2,
},
right_sep = { str = statusline_style.right, hi = {
fg = colors.lightbg2,
bg = colors.statusline_bg,
} },
}
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,
components.left.active[5] = {
provider = "git_diff_added",
hl = {
fg = colors.grey_fg2,
bg = colors.statusline_bg,
},
icon = "",
highlight = { colors.white, colors.statusline_bg },
},
}
gls.left[8] = {
DiffModified = {
provider = "DiffModified",
condition = checkwidth,
-- diffModfified
components.left.active[6] = {
provider = "git_diff_changed",
hl = {
fg = colors.grey_fg2,
bg = colors.statusline_bg,
},
icon = "",
highlight = { colors.grey_fg2, colors.statusline_bg },
},
}
gls.left[9] = {
DiffRemove = {
provider = "DiffRemove",
condition = checkwidth,
-- diffRemove
components.left.active[7] = {
provider = "git_diff_removed",
hl = {
fg = colors.grey_fg2,
bg = colors.statusline_bg,
},
icon = "",
highlight = { colors.grey_fg2, colors.statusline_bg },
},
}
gls.left[10] = {
DiagnosticError = {
provider = "DiagnosticError",
components.left.active[8] = {
provider = "diagnostic_errors",
enabled = function()
return lsp.diagnostics_exist "Error"
end,
hl = { fg = colors.red },
icon = "",
highlight = { colors.red, colors.statusline_bg },
},
}
gls.left[11] = {
DiagnosticWarn = {
provider = "DiagnosticWarn",
components.left.active[9] = {
provider = "diagnostic_warnings",
enabled = function()
return lsp.diagnostics_exist "Warning"
end,
hl = { fg = colors.yellow },
icon = "",
highlight = { colors.yellow, colors.statusline_bg },
},
}
gls.right[1] = {
lsp_status = {
components.left.active[10] = {
provider = "diagnostic_hints",
enabled = function()
return lsp.diagnostics_exist "Hint"
end,
hl = { fg = colors.grey_fg2 },
icon = "",
}
components.left.active[11] = {
provider = "diagnostic_info",
enabled = function()
return lsp.diagnostics_exist "Information"
end,
hl = { fg = colors.green },
icon = "",
}
components.right.active[1] = {
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
if lsp.is_lsp_attached then
return " " .. "" .. " LSP"
end
end
return ""
else
return ""
end
end,
highlight = { colors.grey_fg2, colors.statusline_bg },
},
hl = { fg = colors.grey_fg2, bg = 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 },
components.right.active[2] = {
provider = "git_branch",
hl = {
fg = colors.grey_fg2,
bg = colors.statusline_bg,
},
icon = "",
}
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,
}
gls.right[5] = {
left_round = {
provider = function()
vim.cmd("hi Galaxyleft_round guifg=" .. mode(2))
return left_separator
end,
highlight = { "GalaxyViMode", colors.one_bg2 },
},
}
gls.right[6] = {
viMode_icon = {
provider = function()
vim.cmd("hi GalaxyviMode_icon guibg=" .. mode(2))
return statusline_style.vi_mode_icon
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,
highlight = { colors.statusline_bg, colors.red },
},
}
gls.right[7] = {
ViMode = {
components.right.active[6] = {
provider = function()
vim.cmd("hi GalaxyViMode guifg=" .. mode(2))
return " " .. mode(1) .. " "
return " " .. mode_colors[vim.fn.mode()][1] .. " "
end,
highlight = { "GalaxyViMode", colors.lightbg },
hl = chad_mode_hl,
}
components.right.active[7] = {
provider = statusline_style.left,
hl = {
fg = colors.grey,
bg = colors.one_bg,
},
}
gls.right[8] = {
left_arrow2 = {
provider = function() end,
separator = left_separator,
separator_highlight = { colors.grey, colors.lightbg },
components.right.active[8] = {
provider = statusline_style.left,
hl = {
fg = colors.green,
bg = colors.grey,
},
}
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 },
components.right.active[9] = {
provider = statusline_style.position_icon,
hl = {
fg = colors.black,
bg = colors.green,
},
}
gls.right[10] = {
line_percentage = {
components.right.active[10] = {
provider = function()
local current_line = vim.fn.line "."
local total_line = vim.fn.line "$"
@ -313,6 +293,15 @@ gls.right[10] = {
local result, _ = math.modf((current_line / total_line) * 100)
return " " .. result .. " % "
end,
highlight = { colors.green, colors.lightbg },
hl = {
fg = colors.green,
bg = colors.one_bg,
},
}
require("feline").setup {
default_bg = colors.statusline_bg,
default_fg = colors.fg,
components = components,
}

View File

@ -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,