alibaba/structure-view

What distinguishes this from symbols-tree-view and its derivatives?

cucumbur opened this issue · 3 comments

Compared to the (seemingly original) symbols-tree-view package, I'm not sure if I can see any obvious differences in functioonality, besides the fact that the other package might take another package that fixes some issues with it. (I don't eve know if these are necessary anymore)

So why structure-view over the alternatives? Even if it's just the code owners personal opinion.
Don't want to come off entitled, I like both packages and just am obsessed with details when things are forked or accomplish the same goal #

@cucumbur Hi. Not only the main functionality is same between these two packages, you can also find the similar package in other IDEs like Eclipse, WebStorm. The most important thing of these packages is the parsing quality, which means package can recognize the type of language, know its grammar and display the structure meaningfully and beautifully. symbols-tree-view is the original one as well as the abandoned one, you can evaluate its parsing quality by yourself.

The alternatives mostly use ctags to parse source code, which recognize popular languages by .ctags config file, but it's hard to parse the tags or symbols of language completely, and it's also hard to tell the relationship between the tags.

strcuture-view learns from symbols-tree-view, it uses ctags for unsupported languages. At same time, structure-view uses specified language parser to achieve good quality goal, where are the supported languages from.

As you can see, using different parsers to support different languages is a huge project, contributors are the key to this project, I hope people can use it and enhance it! So I designed structure-view for good extensibility, just add AST parser for the language under lib/tag-generators/ folder and this language is supported.

Ah, I see. I happen to be a frontend compiler nerd outside of my professional interests so maybe I can be a contributor soon, once I get familiar with the Atom extension API and the many many parsers out there

@cucumbur Cool~ just do it. Atom extension APIs are all about UI stuffs, so it's unnecessary for parser or parser wrapper.