bazel-contrib / bazel-contrib/vscode-bazel
Support really large repos better
- Dominant language
- TypeScript
- Stars
- 296
- Forks
- 108
- Avg merge
- 3d 22h
- Merged PRs (30d)
- 5
Description
This has come up in a few other issues, but addressing it seems to be non trivial. The main pain points:
- The treeview starts by doing a query for all packages recursively. It would be nice if there was a way to do this progressively (like it does for targets within a package), but there doesn't seem to be a way to limit the depth of the package query.
- There is no sharing of data between the treeview and quickpicks. If there was some "model" behind the scenes, then the quickpicks wouldn't have to issue queries if the model already had the data. There are a few complications though:
- The treeview can progressively load targets as the tree is expanded, but for the quickpicks, that doesn't work as well, so the quickpicks would need some decisions about how to let the users progressively expand things.
- Once data starts to be cached, how do things "refresh" when BUILD files are edited/added?
Contributor guide
Research direction
Start by tracing the treeview's recursive package query and the quickpick query paths, then compare how targets are loaded as the tree expands. Define a shared model, progressive quickpick behavior, and refresh rules for edited or added BUILD files; done means large repositories avoid redundant loading while staying current.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript, vscode
- Domain
- devtools
- Issue type
- Feature
- Difficulty
- 5/5
- Estimated time
- Over a week
- Activity status
- Stale
- Clarity
- Needs clarification
- Newbie friendliness
- 25/100