Skip to content

Latest commit

 

History

History
112 lines (63 loc) · 5.58 KB

File metadata and controls

112 lines (63 loc) · 5.58 KB
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
Loading

CodeBoardingDemoContact

Details

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.

XsltSymbolProvider

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:

XsltTokenCompletions

Generates context‑aware completion items by querying the symbol index and filtering suggestions through XsltTokenDiagnostics.

Related Classes/Methods:

XSLTHoverProvider

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:

XsltDefinitionProvider

Implements go‑to‑definition by locating the declaration of a token in the symbol index and validating the request via XsltTokenDiagnostics.

Related Classes/Methods:

XSLTReferenceProvider

Implements find‑all‑references and rename by delegating definition lookup to XsltDefinitionProvider and validating via XsltTokenDiagnostics.

Related Classes/Methods:

XsltTokenDiagnostics

Provides validation, token‑position information, and diagnostics used by other components to filter results and generate quick‑fixes.

Related Classes/Methods:

XMLDocumentFormattingProvider

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:

XsltCodeActions

Offers quick‑fixes and refactorings by consuming diagnostics from XsltTokenDiagnostics and querying the symbol index for safe symbol rewrites.

Related Classes/Methods:

Unclassified

Component for all unclassified files and utility functions (Utility functions/External Libraries/Dependencies)

Related Classes/Methods: None