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

[Comparison] Symbols-Outline Vs Aerial #182

Closed
pidgeon777 opened this issue Nov 9, 2022 · 10 comments
Closed

[Comparison] Symbols-Outline Vs Aerial #182

pidgeon777 opened this issue Nov 9, 2022 · 10 comments
Assignees

Comments

@pidgeon777
Copy link

Here is a difference between Symbols-Outline plugin and Aerial when navigating the same LUA buffer.

Symbols-Outline:

image

Aerial:

image

As you can see, code navigation is much more well-presented in Symbols-Online.

Given that both plugins have access to the LSP output information, I would like to ask if it is planned to improve the symbols panel by providing a complete user interface such as the one offered by Symbols-Outline. Given that Aerial is already a great plugin, but missing some details like that, though.

@pidgeon777
Copy link
Author

My fault, for somewhat reason at first not every LUA symbol was shown with Aerial, but with a symbols filter option properly set to false for LUA, now everything is much better:

image

Still, as a suggestion, I would add an option to Aerial to behave as Symbols-Outline, so that a highlight will be applied also to the parent nodes of the currently focused symbols, and not just only on the symbol itself.

These symbol + parent node highlights could be applied both to the buffer and to the symbols panel, still, as an option.

See Symbols-Outline and its yellow highlight as a reference in the screenshot I posted, a highlight applied to the symbol and to its parent nodes.

@pidgeon777
Copy link
Author

Another thing I noted, is that the guide characters are wrongly displayed in italics.

I wonder how it could be possible given that this is my configuration:

    guides = {
      -- When the child item has a sibling below it
      mid_item = "├─",
      -- When the child item is the last in the list
      last_item = "└─",
      -- When there are nested child guides to the right
      nested_top = "",
      -- Raw indentation
      whitespace = "  ",
    },

@stevearc
Copy link
Owner

By default AerialGuide was linking to the Comment highlight group. If your Comment highlight is italic, then AerialGuide will be too. I've changed it to just extract the colors from the Comment group.

As for highlighting parent symbols when a child is focused, I'll put it on the backlog.

@Bekaboo
Copy link

Bekaboo commented Dec 11, 2022

My fault, for somewhat reason at first not every LUA symbol was shown with Aerial, but with a symbols filter option properly set to false for LUA, now everything is much better

Can you paste your config here? After setting filter_kind to false, aerial still only gives function symbols...

@stevearc
Copy link
Owner

@Bekaboo you're probably using the treesitter backend. I've only added queries for lua functions, so that's all that will show up. If you use the LSP backend it should show everything.

@pidgeon777
Copy link
Author

@stevearc another thing I noticed in the symbols-outline.nvim vs aerial.nvim comparison and which forces me to use the former, is that it is much, much quicker than the latter when loading the symbols from a source file which contains many.

Instead, aerial.nvim freezes for a few seconds (even 10) before showing the symbols in this case.

So I'm pretty sure the issue here lies in the way aerial.nvim is parsing the symbols and/or elaborates the symbols tree.

@stevearc
Copy link
Owner

If you're experiencing performance problems, please open an issue with:

  • The language
  • The size of the file
  • Some example content (doesn't have to be the full file content, just an idea of what sort of structures are used)
  • The aerial backend being used
  • Detailed description of what behavior you see and when it occurs. For example, "aerial.nvim freezes for a few seconds" is ambiguous. I'm looking for something like "Neovim freezes for a few seconds when I run :AerialToggle" or "aerial.nvim shows a loading spinner for a few seconds after :AerialOpen"

@towry
Copy link

towry commented Jul 15, 2023

截屏2023-07-15 23 43 02

aerial(left) vs symbols-outline

@stevearc
Copy link
Owner

@towry if you want to see the same symbols as symbols-outline, use the lsp backend and set filter_kind = false. I agree that the anonymous functions are low value so I'll be removing those from the treesitter backend.

I'm closing this issue because it is not productive. Bugs or feature requests can be filed as new issues.

@samarth-nagar
Copy link

@pidgeon777 I cant see anything inside ant function
image
mine look like this even when theres like 5 symbols inside of the time function

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants