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"
One paragraph explaining the functionality which is represented by this graph. What the main flow is and what is its purpose.
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
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
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
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
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