graph LR
XsltSymbolProvider["XsltSymbolProvider"]
XsltTokenCompletions["XsltTokenCompletions"]
XSLTHoverProvider["XSLTHoverProvider"]
XsltDefinitionProvider["XsltDefinitionProvider"]
XSLTReferenceProvider["XSLTReferenceProvider"]
XsltTokenDiagnostics["XsltTokenDiagnostics"]
XMLDocumentFormattingProvider["XMLDocumentFormattingProvider"]
XsltCodeActions["XsltCodeActions"]
Unclassified["Unclassified"]
XsltSymbolProvider -- "uses" --> XsltTokenCompletions
XsltSymbolProvider -- "uses" --> XSLTHoverProvider
XsltSymbolProvider -- "uses" --> XsltDefinitionProvider
XsltSymbolProvider -- "uses" --> XsltTokenDiagnostics
XsltSymbolProvider -- "uses" --> XsltCodeActions
XsltTokenCompletions -- "filters via" --> XsltTokenDiagnostics
XsltDefinitionProvider -- "validates via" --> XsltTokenDiagnostics
XSLTReferenceProvider -- "delegates definition lookup to" --> XsltDefinitionProvider
XSLTReferenceProvider -- "validates via" --> XsltTokenDiagnostics
XMLDocumentFormattingProvider -- "uses" --> XsltTokenDiagnostics
XsltCodeActions -- "consumes diagnostics for quick‑fixes" --> XsltTokenDiagnostics
XsltCodeActions -- "queries symbols for safe refactoring" --> XsltSymbolProvider
The XSLT language service centers on a single source‑of‑truth symbol index provided by XsltSymbolProvider, which parses XSLT/XPath documents via XslLexer and builds a hierarchical set of DocumentSymbols for all language constructs. All higher‑level features—completion, hover, definition, reference, code actions, and formatting—query this index for contextual information, while XsltTokenDiagnostics supplies validation and token‑position data to filter results and generate diagnostics. This layered architecture ensures consistent symbol data across features and isolates validation logic, enabling efficient, maintainable language‑service capabilities for XSLT editing.
Parses XSLT/XPath files using XslLexer and builds a hierarchical symbol index (DocumentSymbols) that serves as the single source of truth for all language‑service features.
Related Classes/Methods:
Generates context‑aware completion items by querying the symbol index and filtering suggestions through XsltTokenDiagnostics.
Related Classes/Methods:
Provides hover documentation and type information by looking up the hovered token in the symbol index and re‑using data prepared by the completion engine.
Related Classes/Methods:
Implements go‑to‑definition by locating the declaration of a token in the symbol index and validating the request via XsltTokenDiagnostics.
Related Classes/Methods:
Implements find‑all‑references and rename by delegating definition lookup to XsltDefinitionProvider and validating via XsltTokenDiagnostics.
Related Classes/Methods:
Provides validation, token‑position information, and diagnostics used by other components to filter results and generate quick‑fixes.
Related Classes/Methods:
Formats XSLT‑aware XML by walking the token stream from XslLexer and consulting XsltTokenDiagnostics for token positions; uses the symbol index for hierarchical layout when needed.
Related Classes/Methods:
Offers quick‑fixes and refactorings by consuming diagnostics from XsltTokenDiagnostics and querying the symbol index for safe symbol rewrites.
Related Classes/Methods:
Component for all unclassified files and utility functions (Utility functions/External Libraries/Dependencies)
Related Classes/Methods: None