Skip to content

Latest commit

 

History

History
79 lines (49 loc) · 4.48 KB

File metadata and controls

79 lines (49 loc) · 4.48 KB
graph LR
    LSP_Message_Parser["LSP Message Parser"]
    LSP_Message_Serializer["LSP Message Serializer"]
    LSP_Request_Dispatcher["LSP Request Dispatcher"]
    LSP_Response_Notification_Emitter["LSP Response/Notification Emitter"]
    Feature_Implementations["Feature Implementations"]
    Document_Management["Document Management"]
    Configuration_Management["Configuration Management"]
    Error_and_Diagnostic_Reporting["Error and Diagnostic Reporting"]
    LSP_Message_Parser -- "sends parsed LSP requests/notifications to" --> LSP_Request_Dispatcher
    LSP_Response_Notification_Emitter -- "sends structured LSP responses/notifications to" --> LSP_Message_Serializer
    LSP_Request_Dispatcher -- "dispatches requests to" --> Feature_Implementations
    LSP_Request_Dispatcher -- "sends document change notifications to" --> Document_Management
    LSP_Request_Dispatcher -- "sends configuration updates to" --> Configuration_Management
    Error_and_Diagnostic_Reporting -- "sends formatted diagnostics to" --> LSP_Response_Notification_Emitter
    Feature_Implementations -- "sends processing results to" --> LSP_Response_Notification_Emitter
    click Feature_Implementations href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/zls/Feature_Implementations.md" "Details"
    click Document_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/zls/Document_Management.md" "Details"
    click Configuration_Management href "https://github.com/CodeBoarding/GeneratedOnBoardings/blob/main/zls/Configuration_Management.md" "Details"
Loading

CodeBoardingDemoContact

Details

One paragraph explaining the functionality which is represented by this graph. What the main flow is and what is its purpose.

LSP Message Parser

Responsible for deserializing raw incoming JSON messages from the LSP client into structured internal LSP request and notification objects, validating their format against the LSP specification.

Related Classes/Methods: None

LSP Message Serializer

Responsible for serializing structured internal LSP response and notification objects into raw JSON messages, preparing them for transmission back to the LSP client.

Related Classes/Methods: None

LSP Request Dispatcher

Routes incoming LSP requests and notifications to the appropriate internal handler components based on the LSP method. This component ensures that each request reaches the correct part of the server's logic.

Related Classes/Methods: None

LSP Response/Notification Emitter

Gathers results, diagnostics, and other data from various internal components, formats them into compliant LSP responses or notifications, and prepares them for serialization and sending to the client.

Related Classes/Methods: None

Feature Implementations [Expand]

Contains the core logic for handling specific Language Server Protocol features, such as code completion, go-to-definition, hover information, and refactoring. These implementations process the parsed LSP requests and generate results.

Related Classes/Methods: None

Document Management [Expand]

Manages the state and content of all open documents within the LSP server. It handles document synchronization (e.g., text changes, saves, closes) and provides an up-to-date view of the files to other components.

Related Classes/Methods: None

Configuration Management [Expand]

Responsible for managing and providing access to the server's configuration settings. It processes configuration change notifications from the client and makes updated settings available to other components that require them.

Related Classes/Methods: None

Error and Diagnostic Reporting

Generates, collects, and manages diagnostic information (e.g., errors, warnings, hints) identified during code analysis or feature processing. It formats these diagnostics according to the LSP specification for transmission to the client.

Related Classes/Methods: None