summaryrefslogtreecommitdiff
path: root/pkgs/custom-neovim/config/lua/plugins/heirline.lua
diff options
context:
space:
mode:
Diffstat (limited to 'pkgs/custom-neovim/config/lua/plugins/heirline.lua')
-rw-r--r--pkgs/custom-neovim/config/lua/plugins/heirline.lua327
1 files changed, 0 insertions, 327 deletions
diff --git a/pkgs/custom-neovim/config/lua/plugins/heirline.lua b/pkgs/custom-neovim/config/lua/plugins/heirline.lua
deleted file mode 100644
index 6160c94..0000000
--- a/pkgs/custom-neovim/config/lua/plugins/heirline.lua
+++ /dev/null
@@ -1,327 +0,0 @@
-return {
- "heirline.nvim",
- enabled = false,
- lazy = false,
- after = function ()
- -- Extra stuff from heirline.
- local conditions = require("heirline.conditions")
- local utils = require("heirline.utils")
-
- local using_icons = true
-
- -- Define Colors
- local colors = {
- bright_bg = utils.get_highlight("Folded").bg,
- bright_fg = utils.get_highlight("Folded").fg,
- red = utils.get_highlight("DiagnosticError").fg,
- dark_red = utils.get_highlight("DiffDelete").bg,
- green = utils.get_highlight("String").fg,
- blue = utils.get_highlight("Function").fg,
- gray = utils.get_highlight("NonText").fg,
- light_gray = utils.get_highlight("Visual").bg,
- orange = utils.get_highlight("Constant").fg,
- purple = utils.get_highlight("Statement").fg,
- cyan = utils.get_highlight("Special").fg,
- diag_warn = utils.get_highlight("DiagnosticWarn").fg,
- diag_error = utils.get_highlight("DiagnosticError").fg,
- diag_hint = utils.get_highlight("DiagnosticHint").fg,
- diag_info = utils.get_highlight("DiagnosticInfo").fg,
- git_del = utils.get_highlight("diffDeleted").fg,
- git_add = utils.get_highlight("diffAdded").fg,
- git_change = utils.get_highlight("diffChanged").fg,
- }
-
- -- Define components table.
- local components = {}
-
- -- Mode Component
- components.mode = {
- init = function (self)
- self.mode = vim.fn.mode(1)
- end,
- static = {
- mode_names = { -- change the strings if you like it vvvvverbose!
- n = "N",
- no = "N?",
- nov = "N?",
- noV = "N?",
- ["no\22"] = "N?",
- niI = "Ni",
- niR = "Nr",
- niV = "Nv",
- nt = "Nt",
- v = "V",
- vs = "Vs",
- V = "V_",
- Vs = "Vs",
- ["\22"] = "^V",
- ["\22s"] = "^V",
- s = "S",
- S = "S_",
- ["\19"] = "^S",
- i = "I",
- ic = "Ic",
- ix = "Ix",
- R = "R",
- Rc = "Rc",
- Rx = "Rx",
- Rv = "Rv",
- Rvc = "Rv",
- Rvx = "Rv",
- c = "C",
- cv = "Ex",
- r = "...",
- rm = "M",
- ["r?"] = "?",
- ["!"] = "!",
- t = "T",
- },
- mode_colors = {
- n = "red" ,
- i = "green",
- v = "cyan",
- V = "cyan",
- ["\22"] = "cyan",
- c = "orange",
- s = "purple",
- S = "purple",
- ["\19"] = "purple",
- R = "orange",
- r = "orange",
- ["!"] = "red",
- t = "red",
- },
- },
- provider = function (self)
- return "%2("..self.mode_names[self.mode].."%)"
- end,
- hl = function(self)
- local mode = self.mode:sub(1, 1) -- get only the first mode character
- return { fg = self.mode_colors[mode], bold = true, }
- end,
- update = {
- "ModeChanged",
- pattern = "*:*",
- callback = vim.schedule_wrap(function ()
- vim.cmd.redrawstatus()
- end)
- },
- }
-
- -- Location Component
- components.location = {
- -- %l = current line number
- -- %L = number of lines in the buffer
- -- %c = column number
- -- %P = percentage through file of displayed window
- provider = "%7(%l/%L%): %c",
- }
-
- -- Progress component.
- components.progress ={
- static = {
- sbar = { '▁', '▂', '▃', '▄', '▅', '▆', '▇', '█' }
- -- Another variant, because the more choice the better.
- -- sbar = { '🭶', '🭷', '🭸', '🭹', '🭺', '🭻' }
- },
- provider = function(self)
- local curr_line = vim.api.nvim_win_get_cursor(0)[1]
- local lines = vim.api.nvim_buf_line_count(0)
- local i = math.floor((curr_line - 1) / lines * #self.sbar) + 1
- return string.rep(self.sbar[i], 2)
- end,
- hl = { fg = "blue", bg = "light_gray" },
- }
-
- -- Diagnostics component
- vim.diagnostic.config({
- signs = {
- text = {
- [vim.diagnostic.severity.ERROR] = using_icons and ' ' or "E",
- [vim.diagnostic.severity.WARN] = using_icons and ' ' or "W",
- [vim.diagnostic.severity.INFO] = using_icons and ' ' or "I",
- [vim.diagnostic.severity.HINT] = using_icons and ' ' or "H",
- },
- },
- })
-
- components.diagnostics = {
- condition = conditions.has_diagnostics,
- -- Example of defining custom LSP diagnostic icons, you can copypaste in your config:
-
- init = function(self)
- self.errors = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.ERROR })
- self.warnings = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.WARN })
- self.hints = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.HINT })
- self.info = #vim.diagnostic.get(0, { severity = vim.diagnostic.severity.INFO })
- end,
-
- update = { "DiagnosticChanged", "BufEnter" },
-
- {
- provider = function(self)
- -- 0 is just another output, we can decide to print it or not!
- -- local error_icon = using_icons and ' ' or "E"
- local error_icon = (vim.diagnostic.config()['signs']['text'][vim.diagnostic.severity.ERROR]) or ""
- return self.errors > 0 and (error_icon .. self.errors .. " ")
- end,
- hl = { fg = "diag_error" },
- },
- {
- provider = function(self)
- -- local warn_icon = using_icons and ' ' or "W"
- local warn_icon = (vim.diagnostic.config()['signs']['text'][vim.diagnostic.severity.WARN]) or ""
- return self.warnings > 0 and (warn_icon .. self.warnings .. " ")
- end,
- hl = { fg = "diag_warn" },
- },
- {
- provider = function(self)
- -- local info_icon = using_icons and ' ' or "I"
- local info_icon = (vim.diagnostic.config()['signs']['text'][vim.diagnostic.severity.INFO]) or ""
- return self.info > 0 and (info_icon .. self.info .. " ")
- end,
- hl = { fg = "diag_info" },
- },
- {
- provider = function(self)
- -- local hint_icon = using_icons and ' ' or "H"
- local hint_icon = (vim.diagnostic.config()['signs']['text'][vim.diagnostic.severity.HINT]) or ""
- return self.hints > 0 and (hint_icon .. self.hints)
- end,
- hl = { fg = "diag_hint" },
- },
- }
-
- -- Working directory component
- components.cwd = {
- provider = function()
- local cwd = vim.fn.getcwd(0)
- cwd = vim.fn.fnamemodify(cwd, ":~")
- if not conditions.width_percent_below(#cwd, 0.25) then
- cwd = vim.fn.pathshorten(cwd)
- end
- local trail = cwd:sub(-1) == '/' and '' or "/"
- return cwd .. trail
- end,
- hl = { fg = "blue", bold = true },
- }
-
- -- Git branch component.
- components.git_branch = {
- -- condition = conditions.is_git_repo,
- --
- -- init = function (self)
- -- self.branch = vim.b.minigit_summary.head_name or nil
- -- end,
-
- provider = function (self)
- local branch = vim.b.minigit_summary.head_name or nil
- if branch then
- local icon = using_icons and " " or "branch: "
- return icon .. branch
- else
- return "none"
- end
- end
- }
-
- -- Git status component.
- components.git_status = {
- condition = conditions.is_git_repo,
-
- init = function (self)
- self.summary = vim.b.minigit_summary and vim.b.minigit_summary.head_name or nil
- end,
-
- {
- provider = function (self)
- -- Get git summary.
- if self.summary == nil then return '' end
-
-
- end,
- },
- }
-
- components.git = {
- condition = conditions.is_git_repo,
-
- init = function(self)
- self.status_dict = vim.b.minidiff_summary
- print (self.status_dict)
- self.head = vim.b.minigit_summary and vim.b.minigit_summary.head_name or ""
- self.has_changes = self.status_dict.add ~= 0 or self.status_dict.delete ~= 0 or self.status_dict.change ~= 0
- end,
-
- hl = { fg = "orange" },
-
- { -- git branch name
- provider = function(self)
- return " " .. self.head
- end,
- hl = { bold = true }
- },
- -- You could handle delimiters, icons and counts similar to Diagnostics
- {
- condition = function(self)
- return self.has_changes
- end,
- provider = "("
- },
- {
- provider = function(self)
- local count = self.status_dict.add or 0
- print (count)
- return count > 0 and ("+" .. count)
- end,
- hl = { fg = "git_add" },
- },
- {
- provider = function(self)
- local count = self.status_dict.delete or 0
- return count > 0 and ("-" .. count)
- end,
- hl = { fg = "git_del" },
- },
- {
- provider = function(self)
- local count = self.status_dict.change or 0
- return count > 0 and ("~" .. count)
- end,
- hl = { fg = "git_change" },
- },
- {
- condition = function(self)
- return self.has_changes
- end,
- provider = ")",
- },
- }
-
- -- Spacers
- local space = {provider = " "}
- local dynamic_space = {provider = "%="}
-
- -- Assemble statusline.
- local statusline = {
- components.mode, space,
- components.git_branch, space,
- components.cwd, space,
- components.diagnostics,
-
- dynamic_space,
-
- components.location, space,
- components.progress,
- }
-
- -- Setup heirline.
- require("heirline").setup {
- opts = {
- colors = colors,
- },
- statusline = statusline,
- }
- end
-}