-
Notifications
You must be signed in to change notification settings - Fork 50
Description
Currently this repository only consists of two creators (createError and createResponse) along with a single verifier (readMessage). The specification obviously has a lot more than this so feel free to implement some.
The general idea of the structure here is simple. Creators simply create a JSON object that corresponds to one of the types in the specification, these are guaranteed to follow the specification for the created type (notice that currently createResponse takes any JsonNode, this should be changed to accept a parameters type variant with one variant for each parameter definition). Verifiers should all be called through the readMessage call and verify the underlying JSON object and classify it by assigning it to the same structure as above (we might want to change to ref JsonNode for this). The goal is to work on the JSON in-place to avoid copying everything to keep this snappy.
Once these creators and verifiers are done (or at least a large enough sub-set), we can start handling the actual messages. If anyone has a good way to automate this process, that would of course also be greatly appreciated (maybe a new macro?)
Data types:
- DocumentUri
- Position
- Range
- Location
- Diagnostic
- DiagnosticRelatedInformation
- Command
- TextEdit
- TextDocumentEdit
- WorkspaceEdit
- TextDocumentIdentifier
- TextDocumentItem
- VersionedTextDocumentIdentifier
- TextDocumentPositionParams
- DocumentFilter
- DocumentSelector
- MarkupContent
Requests:
- Initialize Request
- Shutdown Request
- ShowMessage Request
- Register Capability
- Unregister Capability
- Workspace folders request
- Configuration Request
- Workspace Symbols Request
- Execute command
Notifications:
- Cancel Request
- Initialized Notification
- Exit Notification
- ShowMessage Notification
- LogMessage Notification
- Telemetry Notification
- DidChangeWorkspaceFolders Notification
- DidChangeConfiguration Notification
- DidChangeWatchedFiles Notification
- DidOpenTextDocument Notification
- DidChangeTextDocument Notification
- WillSaveTextDocument Notification
- DidCloseTextDocument Notification
- PublishDiagnostics Notification
Parameters:
- CancelParams
- TextDocumentPositionParams
- InitializeParams
- InitializedParams
- ShowMessageParams
- ShowMessageRequestParams
- LogMessageParams
- RegistrationParams
- UnregistrationParams
- DidChangeWorkspaceFoldersParams
- DidChangeConfigurationParams
- ConfigurationParams
- DidChangeWatchedFilesParams
- WorkspaceSymbolParams
- ExecuteCommandParams
- ApplyWorkspaceEditParams
- DidOpenTextDocumentParams
- DidChangeTextDocumentParams
- WillSaveTextDocumentParams
- DidSaveTextDocumentParams
- DidCloseTextDocumentParams
- PublishDiagnosticsParams
- CompletionParams
- ReferenceParams
- DocumentSymbolParams
- CodeActionParams
- CodeLensParams
- DocumentLinkParams
- DocumentColorParams
- ColorPresentationParams
- DocumentFormattingParams
- DocumentRangeFormattingParams
- DocumentOnTypeFormattingParams
- RenameParams
Responses:
- InitializeResult
- MessageActionItem
- WorkspaceFolder
- SymbolInformation
- ApplyWorkspaceEditResponse
- CompletionList
- CompletionItem
- Hover
- SignatureHelp
- DocumentHighlight
- SymbolInformation
- CodeLens
- DocumentLink
- ColorInformation
- ColorPresentation
Registration Options:
- DidChangeWatchedFilesRegistrationOptions
- ExecuteCommandRegistrationOptions
- TextDocumentRegistrationOptions
- TextDocumentChangeRegistrationOptions
- TextDocumentSaveRegistrationOptions
- CompletionRegistrationOptions
- SignatureHelpRegistrationOptions
- CodeLensRegistrationOptions
- DocumentLinkRegistrationOptions
- DocumentOnTypeFormattingRegistrationOptions