Lock DSC-0066 on Q1-A and Q2-A. Retire AGD-0048 through AGD-0056 into AGD-0069, DEC-0058, and PLN-0137. Published editor diagnostics use the bound frontend language id as source. For PBS that is pbs. The stable compiler code stays in code and is not copied into source. Related locations, phase, and repair payload stay unpublished.
2.2 KiB
| id | ticket | title | status | created | resolved | decision | tags | ||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| AGD-0052 | pbs-lsp-completion-depth | PBS LSP Completion Depth | abandoned | 2026-07-15 |
|
Pain
Domain owner: studio/lsp
PBS completion works for core cases, but a complete daily-use experience needs ranking, resolve details, snippets, overload handling, context-aware suggestions, and richer documentation.
Context
The current LSP announces completion with trigger character '.' and returns detail/documentation for resolved compiler candidates. It does not use resolveProvider, snippets, broad trigger contexts, or advanced ranking.
Open Questions
- Which completion contexts should be supported first beyond member access?
- Should completion use resolveProvider for expensive documentation/details or return everything eagerly?
- How should overloads, snippets, imports, keywords, and stdlib candidates be ranked?
Options
Option A - Eager rich completion
- Approach: Return labels, details, docs, and snippets directly in every completion response.
- Pro: Simple client behavior and immediate docs.
- Con: Can become expensive for broad/global completion.
- Maintainability: Good while candidate sets remain small.
Option B - Completion resolve provider
- Approach: Return lightweight candidates first and populate expensive docs/details through
completionItem/resolve. - Pro: Scales better for large candidate sets and import-aware suggestions.
- Con: Requires client/server resolve plumbing and stable candidate identities.
- Maintainability: Strong for a full LSP.
Tradeoffs
The current eager model is fine for scoped completions, but global/import-aware completion may need resolve to avoid latency.
Recommendation
Prefer a staged approach: keep eager for current contexts, design resolve before broad workspace/import completion.
Discussion
Define completion contexts and ranking before adding snippets or resolve.
Resolution
Aposentada em 2026-09-22. O tema foi consolidado em AGD-0069 / DSC-0066. Este texto não é normativo.
Next Step
List first-wave completion contexts beyond member access.