Advertise folding and selection only when the frontend supports them.
Folding uses recovered spans for the listed declarations, their bodies,
parameter lists, and Doc text blocks. A brace, parenthesis, or text
block the tree does not cover still folds, including an unmatched
opener through the end of the text. Selection grows outward from the
identifier to the argument or parameter list, the block, and the
declaration.
Advertise document links only when the frontend supports them.
A link covers the ModuleRef span when module assembly already
bound that module to a regular file. Virtual stdlib and unresolved
modules produce no link.
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.
Add PBS quick fixes as frontend-owned repairs transported by the LSP.
Duplicate reserved attributes are deleted at the extra span. Interface
InitAllowed attributes with arguments become [InitAllowed]. The server
matches Diagnostic.code plus range, does not parse messages, and returns
an empty list when the capability or the fix is absent.
Housekeep DSC-0044 with LSN-0073.
Add PBS rename as a validated WorkspaceEdit of physical identifier
sites on FrontendLanguageService. Identity is definition; locals and
params rename from their name span. Refuse aliases, virtual stdlib,
builtins, error labels, keywords, and collisions. Advertise
renameProvider with prepareProvider; refused cursors are LSP errors,
not empty success.
Housekeep DSC-0043 with LSN-0072.
Add PBS workspace symbols as a physical flatten of the outline
named-declaration set on FrontendLanguageService. Regular files
only; virtual stdlib, barrels, imports, locals, and compile-only
frontends stay empty. Advertise workspaceSymbolProvider with flat
SymbolInformation. workspace/symbol does not require an open
document.
Housekeep DSC-0042 with LSN-0071.
Add PBS document symbols as an AST-backed hierarchical outline of
the open .pbs file on FrontendLanguageService. Recovered syntax is
enough; unnamed InvalidDecl is omitted; barrels, imports, locals,
and compile-only frontends stay empty. Advertise documentSymbolProvider
with hierarchical DocumentSymbol.
Housekeep DSC-0041 with LSN-0070.
Add PBS find-references as the request-local inverse of definition
identity on FrontendLanguageService. Usage sites are identifier
tokens whose definition locations intersect the cursor set.
Empty results stay honest when definition is empty, including
virtual stdlib paths. Honor includeDeclaration in the LSP bridge.
Housekeep DSC-0040 with LSN-0069.
Add PBS go-to-definition as hover editorial lookup plus physical
declaration locations on FrontendLanguageService. Empty results stay
honest when the target is not a regular file, including virtual stdlib
paths.
Housekeep DSC-0039 with LSN-0068.
Add ArchUnit guards for Java multi-frontend boundaries in a test-only
module. Identify PBS by frontend-module origin, allow only the registry
as composition root, and lock the wording in specs 19, 20, and 22.
Housekeep DSC-0064 with LSN-0066.