-
-
Notifications
You must be signed in to change notification settings - Fork 143
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
Overhaul symbols-view
#829
Overhaul symbols-view
#829
Conversation
fdba127
to
ee86a18
Compare
I think this is in a good place for review. Let's try to get it into the 1.113 release! |
@Spiker985, are you sure those were coming from Just making sure we haven't got a bug we need to deal with at this late hour. If you're unsure which provider was supplying symbols, there's a setting to show the provider name in the list. |
I toggled the setting for showing where suggestions come from, let me re-check |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I've given the code a once over, and things seem pretty awesome! Just found one little oversight that I've added a request to change for, otherwise I think on the code only end we are good to go.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
We need to ensure we add symbol-provider-ctags
and symbol-provider-tree-sitter
to the packageDependencies
section of the package.json
here.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does that just need to mirror what's present in dependencies
? That's weird.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yeah it's a little odd. But if memory serves, that section has purposes two fold:
- It is what actually determines what's considered a core package to Pulsar
- Ensures these packages are part of the preload process
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Alright, I'm adding my approval to the code only portion of the PR, thanks for addressing my concerns so quickly.
And with Spikers awesome review of functionality, I think we are good to go, lets get this one merged!
I should've submitted this earlier; I know it's asking a lot to have someone review this so close to 1.112. If it gets done, great; if not, it can wait a month.
Issue or RFC Endorsed by Atom's Maintainers
#814
Description of the Change
Changes
symbols-view
to be a package that follows the provider/consumer model, akin toautocomplete-plus
. Instead of having its own symbol generation strategy, it exposes an interface and allows other packages to act as its data source.The goal here is that an ordinary non-bleeding-edge user — someone who was very happy with their Atom experience and who hasn't enabled experimental Tree-sitter grammars — should not notice that anything is different. A Pulsar user who has enabled experimental Tree-sitter grammars might notice that their symbol list is richer and more accurate. A Pulsar user who's using one of my experimental IDE packages may notice that the symbol list is much richer — and that they can now do project-wide symbol searches and jump to the definition of the token underneath their cursor. In each case, we expect that the symbol navigation experience will be equal to or better than what they had before.
Alternate Designs
Other options for how to bring this into core were mooted in #814. The team had a slight preference for this strategy.
Possible Drawbacks
I’ve written unit tests and I can verify that this architecture works for me locally, but I have not done aggressive integration testing across multiple platforms. I am hoping that team members on Windows and Linux can let me know if anything obvious is broken.
Verification Process
Ensure that you are not subscribed to
symbols-view-redux
,symbol-provider-ctags
, orsymbol-provider-tree-sitter
. Check out this PR and relaunch Pulsar.Here are some things to try in order to determine whether you’re using the new architecture:
package.json
and searching for a key name!).Release Notes
symbols-view
package to accept symbols from a number of sources, including Tree-sitter grammars and IDE packages.