-
Notifications
You must be signed in to change notification settings - Fork 35
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
core: Add connection graph and incremental reference resolution #269
Merged
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This only adds the graph and tweaks Folder.withConfig to avoid full rebuild of the folder (and hence the conn graph) when the config is unchanged. Next up is figuring out how to use conn graph for diagnostics and reference queries.
At this point, incremental Conn seems to work (running for a while with paranoid mode on). It still needs more testing and polish though.
One of the previous commits introduced a bug where the 'from-scratch' state was compared to the previous state rather than the incrementally updated state.
2 tasks
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR on a high-level does 3 things:
Cst
, it introducesAst
andSym
; level of abstraction goes asCst
->Ast
->Sym
; each level having less superfluous details. Right now mostly Cst and Sym are used, with Ast akwardly sitting in the middle, but future work may uncover more use for Ast.Conn
- a connection graph between document symbols that can be incrementally updated whenever symbols change. The crucial parts are incremental updates and that when symbols are not changing (e.g. when just typing text rather than adding links/sections) there's no need to recompute the graph.Refs
andDiag
to use the connection graph rather than doing from scratch recomputing on every keystroke.TODO:
Conn
graph.In later PRs:
Conn
graph.