diff options
Diffstat (limited to 'lua/lvim/core/builtins/breadcrumbs.lua')
| -rw-r--r-- | lua/lvim/core/builtins/breadcrumbs.lua | 233 | 
1 files changed, 0 insertions, 233 deletions
| diff --git a/lua/lvim/core/builtins/breadcrumbs.lua b/lua/lvim/core/builtins/breadcrumbs.lua deleted file mode 100644 index 2ed0937e..00000000 --- a/lua/lvim/core/builtins/breadcrumbs.lua +++ /dev/null @@ -1,233 +0,0 @@ -local M = {} - --- local Log = require "lvim.core.log" - -local icons = lvim.icons.kind - -M.config = function() -  lvim.builtin.breadcrumbs = { -    active = true, -    winbar_filetype_exclude = { -      "help", -      "startify", -      "dashboard", -      "lazy", -      "neo-tree", -      "neogitstatus", -      "NvimTree", -      "Trouble", -      "alpha", -      "lir", -      "Outline", -      "spectre_panel", -      "toggleterm", -      "DressingSelect", -      "Jaq", -      "harpoon", -      "dap-repl", -      "dap-terminal", -      "dapui_console", -      "dapui_hover", -      "lab", -      "notify", -      "noice", -      "", -    }, -    options = { -      icons = { -        Array = icons.Array .. " ", -        Boolean = icons.Boolean, -        Class = icons.Class .. " ", -        Color = icons.Color .. " ", -        Constant = icons.Constant .. " ", -        Constructor = icons.Constructor .. " ", -        Enum = icons.Enum .. " ", -        EnumMember = icons.EnumMember .. " ", -        Event = icons.Event .. " ", -        Field = icons.Field .. " ", -        File = icons.File .. " ", -        Folder = icons.Folder .. " ", -        Function = icons.Function .. " ", -        Interface = icons.Interface .. " ", -        Key = icons.Key .. " ", -        Keyword = icons.Keyword .. " ", -        Method = icons.Method .. " ", -        Module = icons.Module .. " ", -        Namespace = icons.Namespace .. " ", -        Null = icons.Null .. " ", -        Number = icons.Number .. " ", -        Object = icons.Object .. " ", -        Operator = icons.Operator .. " ", -        Package = icons.Package .. " ", -        Property = icons.Property .. " ", -        Reference = icons.Reference .. " ", -        Snippet = icons.Snippet .. " ", -        String = icons.String .. " ", -        Struct = icons.Struct .. " ", -        Text = icons.Text .. " ", -        TypeParameter = icons.TypeParameter .. " ", -        Unit = icons.Unit .. " ", -        Value = icons.Value .. " ", -        Variable = icons.Variable .. " ", -      }, -      highlight = true, -      separator = " " .. lvim.icons.ui.ChevronRight .. " ", -      depth_limit = 0, -      depth_limit_indicator = "..", -    }, -  } -end - -M.setup = function() -  local status_ok, navic = pcall(require, "nvim-navic") -  if not status_ok then -    return -  end - -  M.create_winbar() -  navic.setup(lvim.builtin.breadcrumbs.options) - -  return navic -end - -M.get_filename = function() -  local filename = vim.fn.expand "%:t" -  local extension = vim.fn.expand "%:e" -  local f = require "lvim.utils.functions" - -  if not f.isempty(filename) then -    local file_icon, hl_group -    local devicons_ok, devicons = pcall(require, "nvim-web-devicons") -    if lvim.use_icons and devicons_ok then -      file_icon, hl_group = devicons.get_icon(filename, extension, { default = true }) - -      if f.isempty(file_icon) then -        file_icon = lvim.icons.kind.File -      end -    else -      file_icon = "" -      hl_group = "Normal" -    end - -    local buf_ft = vim.bo.filetype - -    if buf_ft == "dapui_breakpoints" then -      file_icon = lvim.icons.ui.Bug -    end - -    if buf_ft == "dapui_stacks" then -      file_icon = lvim.icons.ui.Stacks -    end - -    if buf_ft == "dapui_scopes" then -      file_icon = lvim.icons.ui.Scopes -    end - -    if buf_ft == "dapui_watches" then -      file_icon = lvim.icons.ui.Watches -    end - -    -- if buf_ft == "dapui_console" then -    --   file_icon = lvim.icons.ui.DebugConsole -    -- end - -    local navic_text = vim.api.nvim_get_hl_by_name("Normal", true) -    vim.api.nvim_set_hl(0, "Winbar", { fg = navic_text.foreground }) - -    return " " .. "%#" .. hl_group .. "#" .. file_icon .. "%*" .. " " .. "%#Winbar#" .. filename .. "%*" -  end -end - -local get_gps = function() -  local status_gps_ok, gps = pcall(require, "nvim-navic") -  if not status_gps_ok then -    return "" -  end - -  local status_ok, gps_location = pcall(gps.get_location, {}) -  if not status_ok then -    return "" -  end - -  if not gps.is_available() or gps_location == "error" then -    return "" -  end - -  if not require("lvim.utils.functions").isempty(gps_location) then -    return "%#NavicSeparator#" .. lvim.icons.ui.ChevronRight .. "%* " .. gps_location -  else -    return "" -  end -end - -local excludes = function() -  return vim.tbl_contains(lvim.builtin.breadcrumbs.winbar_filetype_exclude or {}, vim.bo.filetype) -end - -M.get_winbar = function() -  if excludes() then -    return -  end -  local f = require "lvim.utils.functions" -  local value = M.get_filename() - -  local gps_added = false -  if not f.isempty(value) then -    local gps_value = get_gps() -    value = value .. " " .. gps_value -    if not f.isempty(gps_value) then -      gps_added = true -    end -  end - -  if not f.isempty(value) and f.get_buf_option "mod" then -    -- TODO: replace with circle -    local mod = "%#LspCodeLens#" .. lvim.icons.ui.Circle .. "%*" -    if gps_added then -      value = value .. " " .. mod -    else -      value = value .. mod -    end -  end - -  local num_tabs = #vim.api.nvim_list_tabpages() - -  if num_tabs > 1 and not f.isempty(value) then -    local tabpage_number = tostring(vim.api.nvim_tabpage_get_number(0)) -    value = value .. "%=" .. tabpage_number .. "/" .. tostring(num_tabs) -  end - -  local status_ok, _ = pcall(vim.api.nvim_set_option_value, "winbar", value, { scope = "local" }) -  if not status_ok then -    return -  end -end - -M.create_winbar = function() -  vim.api.nvim_create_augroup("_winbar", {}) -  if vim.fn.has "nvim-0.8" == 1 then -    vim.api.nvim_create_autocmd({ -      "CursorHoldI", -      "CursorHold", -      "BufWinEnter", -      "BufFilePost", -      "InsertEnter", -      "BufWritePost", -      "TabClosed", -      "TabEnter", -    }, { -      group = "_winbar", -      callback = function() -        if lvim.builtin.breadcrumbs.active then -          local status_ok, _ = pcall(vim.api.nvim_buf_get_var, 0, "lsp_floating_window") -          if not status_ok then -            -- TODO: -            M.get_winbar() -          end -        end -      end, -    }) -  end -end - -return M | 
