Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

bug: error when autojump = true and no symbols are present in buffer #295

Closed
zemzelett opened this issue Sep 22, 2023 · 1 comment
Closed
Labels
bug Something isn't working

Comments

@zemzelett
Copy link

Neovim version (nvim -v)

0.9.2

Operating system/version

MacOS 13.5.1

Output of :AerialInfo

Show symbols: Class, Constructor, Enum, Function, Interface, Module, Method, Struct

Describe the bug

If the option autojump is set to true and there are no symbols present in the current buffer that Aerial can display it errors as follows:

Error executing Lua callback: ....local/share/nvim/lazy/aerial.nvim/lua/aerial/window.lua:326: nvim_exec2()..CursorMoved Autocommands for "<buffer=438>": Vim(append):Error executing lua callback: ...al/share/nvim/lazy/aerial.nvim/lua/aeri
al/navigation.lua:197: Symbol 1 is outside the bounds
stack traceback:
    [C]: in function 'error'
    ...al/share/nvim/lazy/aerial.nvim/lua/aerial/navigation.lua:197: in function 'select'
    ....local/share/nvim/lazy/aerial.nvim/lua/aerial/window.lua:37: in function <....local/share/nvim/lazy/aerial.nvim/lua/aerial/window.lua:32>
    [C]: in function 'nvim_set_current_win'
    ....local/share/nvim/lazy/aerial.nvim/lua/aerial/window.lua:326: in function 'open'
    ...n/.local/share/nvim/lazy/aerial.nvim/lua/aerial/init.lua:246: in function 'open'
    ...local/share/nvim/lazy/aerial.nvim/lua/aerial/command.lua:19: in function <...local/share/nvim/lazy/aerial.nvim/lua/aerial/command.lua:14>
    [C]: in function 'nvim_exec2'
    vim/_editor.lua: in function <vim/_editor.lua:0>
    [C]: in function 'pcall'
    ...re/nvim/lazy/fine-cmdline.nvim/lua/fine-cmdline/init.lua:98: in function <...re/nvim/lazy/fine-cmdline.nvim/lua/fine-cmdline/init.lua:94>
    [C]: in function 'pcall'
    ...re/nvim/lazy/fine-cmdline.nvim/lua/fine-cmdline/init.lua:65: in function 'on_submit'
    ...n/.local/share/nvim/lazy/nui.nvim/lua/nui/input/init.lua:152: in function <...n/.local/share/nvim/lazy/nui.nvim/lua/nui/input/init.lua:139>
stack traceback:
    [C]: in function 'nvim_set_current_win'
    ....local/share/nvim/lazy/aerial.nvim/lua/aerial/window.lua:326: in function 'open'
    ...n/.local/share/nvim/lazy/aerial.nvim/lua/aerial/init.lua:246: in function 'open'
    ...local/share/nvim/lazy/aerial.nvim/lua/aerial/command.lua:19: in function <...local/share/nvim/lazy/aerial.nvim/lua/aerial/command.lua:14>
    [C]: in function 'nvim_exec2'
    vim/_editor.lua: in function <vim/_editor.lua:0>
    [C]: in function 'pcall'
    ...re/nvim/lazy/fine-cmdline.nvim/lua/fine-cmdline/init.lua:98: in function <...re/nvim/lazy/fine-cmdline.nvim/lua/fine-cmdline/init.lua:94>
    [C]: in function 'pcall'
    ...re/nvim/lazy/fine-cmdline.nvim/lua/fine-cmdline/init.lua:65: in function 'on_submit'
    ...n/.local/share/nvim/lazy/nui.nvim/lua/nui/input/init.lua:152: in function <...n/.local/share/nvim/lazy/nui.nvim/lua/nui/input/init.lua:139>
Press ENTER or type command to continue
Error detected while processing CursorMoved Autocommands for "<buffer=438>":
Error executing lua callback: ...al/share/nvim/lazy/aerial.nvim/lua/aerial/navigation.lua:197: Symbol 1 is outside the bounds
stack traceback:
        [C]: in function 'error'
        ...al/share/nvim/lazy/aerial.nvim/lua/aerial/navigation.lua:197: in function 'select'
        ....local/share/nvim/lazy/aerial.nvim/lua/aerial/window.lua:37: in function <....local/share/nvim/lazy/aerial.nvim/lua/aerial/window.lua:32>
Press ENTER or type command to continue

After pressing Enter twice the Aerial windows opens and shows the expected "No symbols" placeholder.

Steps To Reproduce

  1. Open the Aerial config below in Neovim with Aerial installed and configured with this config (autojump = true).
  2. Run the :AerialOpen command.

Expected Behavior

It should open empty, displaying the placeholder "No symbols" without causing an error to be displayed by Neovim.

Minimal example file

require("aerial").setup({
        layout = {
                max_width = { 40, 0.2 },
                min_width = 10,

                -- Enum: prefer_right, prefer_left, right, left, float
                default_direction = "prefer_left",

                placement = "window",
        },

        attach_mode = "window",

        -- List of enum values that configure when to auto-close the aerial window
        --   unfocus       - close aerial when you leave the original source window
        --   switch_buffer - close aerial when you change buffers in the source window
        --   unsupported   - close aerial when attaching to a buffer that has no symbol source
        close_automatic_events = { "unfocus", "switch-buffer", "unsupported" },


        -- A list of all symbols to display. Set to false to display all symbols.
        -- This can be a filetype map (see :help aerial-filetype-map)
        -- To see all available values, see :help SymbolKind
        filter_kind = {
                "Class",
                "Constructor",
                "Enum",
                "Function",
                "Interface",
                "Module",
                "Method",
                "Struct",
        },

        highlight_on_jump = 2000,
        autojump = true,
        close_on_select = true,
        show_guides = true,
})

Minimal init.lua

-- DO NOT change the paths and don't remove the colorscheme
local root = vim.fn.fnamemodify("./.repro", ":p")

-- set stdpaths to use .repro
for _, name in ipairs({ "config", "data", "state", "cache" }) do
  vim.env[("XDG_%s_HOME"):format(name:upper())] = root .. "/" .. name
end

-- bootstrap lazy
local lazypath = root .. "/plugins/lazy.nvim"
if not vim.loop.fs_stat(lazypath) then
  vim.fn.system({
    "git",
    "clone",
    "--filter=blob:none",
    "--single-branch",
    "https://github.com/folke/lazy.nvim.git",
    lazypath,
  })
end
vim.opt.runtimepath:prepend(lazypath)

-- install plugins
local plugins = {
  "folke/tokyonight.nvim",
  {
    "stevearc/aerial.nvim",
    config = function()
      require("aerial").setup({
        -- add your aerial config here
      })
    end,
  },
  {
    "nvim-treesitter/nvim-treesitter",
    build = ":TSUpdate",
    config = function()
      require("nvim-treesitter.configs").setup({
        ensure_installed = { "c", "lua" },
        auto_install = true,
        highlight = { enable = true },
      })
    end,
  },
  -- add any other plugins here
}
require("lazy").setup(plugins, {
  root = root .. "/plugins",
})

vim.cmd.colorscheme("tokyonight")
-- add anything else here

Additional context

No response

@zemzelett zemzelett added the bug Something isn't working label Sep 22, 2023
@stevearc
Copy link
Owner

Fixed! Thanks for the report

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants