Open 5hirish opened 1 year ago
Confirming compatibility with the existing code-editor : https://github.com/akvelon/flutter-code-editor/issues/240
On first attempt of workspace selection LSP server initiation doesn't happen. Only after subsequent ones it initiates. https://github.com/5hirish/quinine/blob/c0c1b9d54881823dc00f3dbb5d04afd2851c150e/lib/provider/project.dart#L28-L32
Came across an issue where the provider was starting two LSP server process. Need a test case to ensure only one process is started.
Pending M2:
initlialize
request. The server can signal the following capabilities.. For example, client requires to know the extent of support provided by the server for workspace/executeCommand
.client/registerCapability
request in order to enable the various features / capabilities on the client (IDE) side as required. Options necessary for the registration. For example when implementing textDocument/didChange
, client needs to register how documents are synced to the server (incremental or full). Hence, it must maintain this request received from the server in order to comply with the server capabilities.Dart LPS document syncKind
with the server is 2. Meaning documents are synced by sending the full content on open. After that only incremental updates to the document are sent.
Language Server Protocol (LSP) support is available in the Dart analysis server from version 2.2.0 of the SDK (which was included in version 1.2.1 of Flutter).
This issue outlines the scope of LSP methods to be implemented in the tagged milestone. Full list of LSP methods integrated in the quinine Dart LSP client. dart-lang/sdk (Following implementations subjected to methods implemented at the Dart LSP server)
Milestones
Running the Server
Start the language server using the
dart language-server
command. Pass the--client-id
and--client-version
flags to identify your editor/plugin and version:Note: In LSP the client makes the first request so there is no obvious confirmation that the server is working correctly until the client sends an
initialize
request. Unlike standard JSON RPC, LSP requires that headers are sent.References: