liuchengxu / vista.vim

:cactus: Viewer & Finder for LSP symbols and tags
https://liuchengxu.github.io/vista.vim
MIT License
1.88k stars 89 forks source link

list the inherited attributes #396

Closed roberbnd closed 3 years ago

roberbnd commented 3 years ago

I would like to see when I open a class file a section with the methods or a window (because the list is big) showing the inherited attributes/methods with PHP I am using nvim-lua/completion-nvim then if I write $this-> shows all the values but I would like to see it with this plugin.

liuchengxu commented 3 years ago

I don't follow, can you rephrase that?

roberbnd commented 3 years ago

Intellij IDE has these options on 'structure' section

Screen Shot 2021-04-10 at 10 10 56

it's possible to see the inherited attributes and filter other things, I want that, of course it's your time, if you don't want it or you don't have time, Could you guide me to implement?

liuchengxu commented 3 years ago

First of all, you have to use LSP or tree-sitter(https://github.com/liuchengxu/vista.vim/issues/395, not yet supported) to understand the semantics as ctags is only regexp based and has a big flaw in tree view rendering(#320), it's not reliable to obtain the info of inherited attributes from ctags. You can see the currently supported executives in https://github.com/liuchengxu/vista.vim/tree/master/autoload/vista/executive. Except ctags, all the other executives are LSP client for retrieving the LSP info, but only the coc executive supports the tree view now.

The basic idea of this plugin is to request the original symbols info from these executives/backends, process this info, and render them in tree view if possible. The tree renderer is in https://github.com/liuchengxu/vista.vim/tree/master/autoload/vista/renderer/hir. You can first take a look how vista.vim records the symbols and then you can filter out the symbols you want.