-
Notifications
You must be signed in to change notification settings - Fork 18.3k
Open
Labels
ToolsThis label describes issues relating to any tools in the x/tools repository.This label describes issues relating to any tools in the x/tools repository.goplsIssues related to the Go language server, gopls.Issues related to the Go language server, gopls.
Milestone
Description
Following up on #53275, there are a few more improvements I'd like to make to pull diagnostics so that they are comparable in performance to push diagnostics, at which point we can enable them by default:
- Rewrite the bottom-up graph traversal of analysis nodes: in the common case, all dependency information will be a cache hit (including memoized keys and encoded summaries in the file cache). Therefore, the bottom-up traversal of the full graph is a significant overhead when repeatedly querying diagnostics.
- Rewrite the bottom-up graph traversal to build package handles, for similar reasons.
- Refactor the fact decoder to operate on shallow fact encoding, so that facts in transitive dependencies can be retrieved (and decoded) on demand. (This could have a huge impact on performance).
- Add support for go.mod and go.work diagnostics (requires refactoring the way we diagnose the workspace).
CC @adonovan
adonovan
Metadata
Metadata
Assignees
Labels
ToolsThis label describes issues relating to any tools in the x/tools repository.This label describes issues relating to any tools in the x/tools repository.goplsIssues related to the Go language server, gopls.Issues related to the Go language server, gopls.