hedyhli / outline.nvim

Code outline sidebar powered by LSP. Significantly enhanced & refactored fork of symbols-outline.nvim.
https://sr.ht/~hedy/outline.nvim
MIT License
543 stars 15 forks source link

Error on closing outline when computer is running slow #65

Open m-abubakar opened 3 months ago

m-abubakar commented 3 months ago

Hi, I have been facing following issue when my PC is running bit slow and I quickly open and close outline.

Error executing lua callback: ...ite/pack/lazy/opt/outline.nvim/lua/outline/highlight.lua:12: Invalid 'buffer': Expected Lua number
stack traceback:
    [C]: in function 'nvim_buf_clear_namespace'
    ...ite/pack/lazy/opt/outline.nvim/lua/outline/highlight.lua:12: in function 'clear_all_ns'
    ...vim/site/pack/lazy/opt/outline.nvim/lua/outline/view.lua:96: in function 'clear_all_ns'
    .../site/pack/lazy/opt/outline.nvim/lua/outline/sidebar.lua:875: in function 'build_outline'
    .../site/pack/lazy/opt/outline.nvim/lua/outline/sidebar.lua:293: in function '_update_lines'
    .../site/pack/lazy/opt/outline.nvim/lua/outline/sidebar.lua:707: in function '_highlight_current_item'
    .../site/pack/lazy/opt/outline.nvim/lua/outline/sidebar.lua:237: in function <.../site/pack/lazy/opt/outline.nvim/lua/outline/sidebar.lua:236>

my configuration is as follows: ( I have been using it for a long time and ported it from symbols.nvim)

{
  "hedyhli/outline.nvim",
  config = function()
    require("outline").setup {
      highlight_hovered_item = true,
      show_guides = true,
      auto_preview = false,
      position = 'right',
      relative_width = true,
      width = 34,
      auto_close = false,
      show_numbers = false,
      show_relative_numbers = true,
      show_symbol_details = false,
      preview_bg_highlight = 'Pmenu',
      autofold_depth = nil,
      auto_unfold_hover = true,
      fold_markers = { '', '' },
      wrap = false,
      symbol_folding = {
        autofold_depth = 1,
        auto_unfold = {
          hovered = true,
        },
      },
      outline_window = {
        show_cursorline = true,
        hide_cursor = true,
        jump_highlight_duration = 1,
      },
      --outline_items = {
      --  show_symbol_lineno = true,
      --},
      keymaps = { -- These keymaps can be a string or a table for multiple keys
        close = { "<Esc>", "q" },
        goto_location = "<Cr>",
        focus_location = "o",
        hover_symbol = "<C-space>",
        toggle_preview = "K",
        rename_symbol = "r",
        code_actions = "a",
        fold = "h",
        unfold = "l",
        fold_all = "W",
        unfold_all = "E",
        fold_reset = "R",
      },

      lsp_blacklist = {},
      symbol_blacklist = {},
      symbols = {
        File = { icon = "", hl = "@text.uri" },
        Module = { icon = "󰕳", hl = "@namespace" },
        Namespace = { icon = "", hl = "@namespace" },
        Package = { icon = "󰏓", hl = "@namespace" },
        Class = { icon = "𝓒", hl = "@type" },
        Method = { icon = "ƒ", hl = "@method" },
        Property = { icon = "", hl = "@method" },
        Field = { icon = "󰘤", hl = "@field" },
        Constructor = { icon = "", hl = "@constructor" },
        Enum = { icon = "ℰ", hl = "@type" },
        Interface = { icon = "", hl = "@type" },
        Function = { icon = "", hl = "@function" },
        Variable = { icon = "", hl = "@constant" },
        Constant = { icon = "", hl = "@constant" },
        String = { icon = "𝓐", hl = "@string" },
        Number = { icon = "#", hl = "@number" },
        Boolean = { icon = "⊨", hl = "@boolean" },
        Array = { icon = "", hl = "@constant" },
        Object = { icon = "⦿", hl = "@type" },
        Key = { icon = "🔐", hl = "@type" },
        Null = { icon = "NULL", hl = "@type" },
        EnumMember = { icon = "", hl = "@field" },
        Struct = { icon = "𝓢", hl = "@type" },
        Event = { icon = "🗲", hl = "@type" },
        Operator = { icon = "+", hl = "@operator" },
        TypeParameter = { icon = "𝙏", hl = "@parameter" },
        Component = { icon = "󰹫", hl = "@function" },
        Fragment = { icon = "󱀤", hl = "@constant" },
      }
    }
  end,
}

I have a patch as well which apparently fixes this issue. I will create the PR along with this issue. So:

Thank you.