Skip to content

lspeasy / core/src / getDefinitionForNotification

Function: getDefinitionForNotification()

ts
function getDefinitionForNotification<N, M>(namespace, methodKey): {
  General: {
     Cancel: {
        Direction: "both";
        Method: "$/cancelRequest";
     };
     LogTrace: {
        Direction: "serverToClient";
        Method: "$/logTrace";
     };
     Progress: {
        Direction: "both";
        Method: "$/progress";
     };
     SetTrace: {
        Direction: "clientToServer";
        Method: "$/setTrace";
     };
  };
  Lifecycle: {
     Exit: {
        Direction: "clientToServer";
        Method: "exit";
     };
     Initialized: {
        Direction: "clientToServer";
        Method: "initialized";
     };
  };
  NotebookDocument: {
     DidChangeNotebookDocument: {
        Direction: "clientToServer";
        Method: "notebookDocument/didChange";
        RegistrationMethod: "notebookDocument/sync";
     };
     DidCloseNotebookDocument: {
        Direction: "clientToServer";
        Method: "notebookDocument/didClose";
        RegistrationMethod: "notebookDocument/sync";
     };
     DidOpenNotebookDocument: {
        Direction: "clientToServer";
        Method: "notebookDocument/didOpen";
        RegistrationMethod: "notebookDocument/sync";
     };
     DidSaveNotebookDocument: {
        Direction: "clientToServer";
        Method: "notebookDocument/didSave";
        RegistrationMethod: "notebookDocument/sync";
     };
  };
  Telemetry: {
     Event: {
        Direction: "serverToClient";
        Method: "telemetry/event";
     };
  };
  TextDocument: {
     DidChangeTextDocument: {
        ClientCapability: "textDocument.synchronization";
        Direction: "clientToServer";
        Method: "textDocument/didChange";
        ServerCapability: "textDocumentSync";
     };
     DidCloseTextDocument: {
        ClientCapability: "textDocument.synchronization";
        Direction: "clientToServer";
        Method: "textDocument/didClose";
        ServerCapability: "textDocumentSync.openClose";
     };
     DidOpenTextDocument: {
        ClientCapability: "textDocument.synchronization";
        Direction: "clientToServer";
        Method: "textDocument/didOpen";
        ServerCapability: "textDocumentSync.openClose";
     };
     DidSaveTextDocument: {
        ClientCapability: "textDocument.synchronization.didSave";
        Direction: "clientToServer";
        Method: "textDocument/didSave";
        ServerCapability: "textDocumentSync.save";
     };
     PublishDiagnostics: {
        ClientCapability: "textDocument.publishDiagnostics";
        Direction: "serverToClient";
        Method: "textDocument/publishDiagnostics";
     };
     WillSaveTextDocument: {
        ClientCapability: "textDocument.synchronization.willSave";
        Direction: "clientToServer";
        Method: "textDocument/willSave";
        ServerCapability: "textDocumentSync.willSave";
     };
  };
  Window: {
     LogMessage: {
        Direction: "serverToClient";
        Method: "window/logMessage";
     };
     ShowMessage: {
        ClientCapability: "window.showMessage";
        Direction: "serverToClient";
        Method: "window/showMessage";
     };
     WorkDoneProgressCancel: {
        Direction: "clientToServer";
        Method: "window/workDoneProgress/cancel";
     };
  };
  Workspace: {
     DidChangeConfiguration: {
        ClientCapability: "workspace.didChangeConfiguration";
        Direction: "clientToServer";
        Method: "workspace/didChangeConfiguration";
     };
     DidChangeWatchedFiles: {
        ClientCapability: "workspace.didChangeWatchedFiles";
        Direction: "clientToServer";
        Method: "workspace/didChangeWatchedFiles";
     };
     DidChangeWorkspaceFolders: {
        Direction: "clientToServer";
        Method: "workspace/didChangeWorkspaceFolders";
        ServerCapability: "workspace.workspaceFolders.changeNotifications";
     };
     DidCreateFiles: {
        ClientCapability: "workspace.fileOperations.didCreate";
        Direction: "clientToServer";
        Method: "workspace/didCreateFiles";
        ServerCapability: "workspace.fileOperations.didCreate";
     };
     DidDeleteFiles: {
        ClientCapability: "workspace.fileOperations.didDelete";
        Direction: "clientToServer";
        Method: "workspace/didDeleteFiles";
        ServerCapability: "workspace.fileOperations.didDelete";
     };
     DidRenameFiles: {
        ClientCapability: "workspace.fileOperations.didRename";
        Direction: "clientToServer";
        Method: "workspace/didRenameFiles";
        ServerCapability: "workspace.fileOperations.didRename";
     };
  };
}[N][M];

Defined in: packages/core/src/protocol/infer.ts:305

Retrieves the full definition object for a given LSP notification method by namespace and method key.

Type Parameters

Type Parameter
N extends | "Lifecycle" | "TextDocument" | "Window" | "Workspace" | "General" | "NotebookDocument" | "Telemetry"
M extends string | number | symbol

Parameters

ParameterTypeDescription
namespaceNA top-level key of LSPNotification (e.g. 'TextDocument').
methodKeyMA method key within that namespace (e.g. 'DidOpen').

Returns

{ General: { Cancel: { Direction: "both"; Method: "$/cancelRequest"; }; LogTrace: { Direction: "serverToClient"; Method: "$/logTrace"; }; Progress: { Direction: "both"; Method: "$/progress"; }; SetTrace: { Direction: "clientToServer"; Method: "$/setTrace"; }; }; Lifecycle: { Exit: { Direction: "clientToServer"; Method: "exit"; }; Initialized: { Direction: "clientToServer"; Method: "initialized"; }; }; NotebookDocument: { DidChangeNotebookDocument: { Direction: "clientToServer"; Method: "notebookDocument/didChange"; RegistrationMethod: "notebookDocument/sync"; }; DidCloseNotebookDocument: { Direction: "clientToServer"; Method: "notebookDocument/didClose"; RegistrationMethod: "notebookDocument/sync"; }; DidOpenNotebookDocument: { Direction: "clientToServer"; Method: "notebookDocument/didOpen"; RegistrationMethod: "notebookDocument/sync"; }; DidSaveNotebookDocument: { Direction: "clientToServer"; Method: "notebookDocument/didSave"; RegistrationMethod: "notebookDocument/sync"; }; }; Telemetry: { Event: { Direction: "serverToClient"; Method: "telemetry/event"; }; }; TextDocument: { DidChangeTextDocument: { ClientCapability: "textDocument.synchronization"; Direction: "clientToServer"; Method: "textDocument/didChange"; ServerCapability: "textDocumentSync"; }; DidCloseTextDocument: { ClientCapability: "textDocument.synchronization"; Direction: "clientToServer"; Method: "textDocument/didClose"; ServerCapability: "textDocumentSync.openClose"; }; DidOpenTextDocument: { ClientCapability: "textDocument.synchronization"; Direction: "clientToServer"; Method: "textDocument/didOpen"; ServerCapability: "textDocumentSync.openClose"; }; DidSaveTextDocument: { ClientCapability: "textDocument.synchronization.didSave"; Direction: "clientToServer"; Method: "textDocument/didSave"; ServerCapability: "textDocumentSync.save"; }; PublishDiagnostics: { ClientCapability: "textDocument.publishDiagnostics"; Direction: "serverToClient"; Method: "textDocument/publishDiagnostics"; }; WillSaveTextDocument: { ClientCapability: "textDocument.synchronization.willSave"; Direction: "clientToServer"; Method: "textDocument/willSave"; ServerCapability: "textDocumentSync.willSave"; }; }; Window: { LogMessage: { Direction: "serverToClient"; Method: "window/logMessage"; }; ShowMessage: { ClientCapability: "window.showMessage"; Direction: "serverToClient"; Method: "window/showMessage"; }; WorkDoneProgressCancel: { Direction: "clientToServer"; Method: "window/workDoneProgress/cancel"; }; }; Workspace: { DidChangeConfiguration: { ClientCapability: "workspace.didChangeConfiguration"; Direction: "clientToServer"; Method: "workspace/didChangeConfiguration"; }; DidChangeWatchedFiles: { ClientCapability: "workspace.didChangeWatchedFiles"; Direction: "clientToServer"; Method: "workspace/didChangeWatchedFiles"; }; DidChangeWorkspaceFolders: { Direction: "clientToServer"; Method: "workspace/didChangeWorkspaceFolders"; ServerCapability: "workspace.workspaceFolders.changeNotifications"; }; DidCreateFiles: { ClientCapability: "workspace.fileOperations.didCreate"; Direction: "clientToServer"; Method: "workspace/didCreateFiles"; ServerCapability: "workspace.fileOperations.didCreate"; }; DidDeleteFiles: { ClientCapability: "workspace.fileOperations.didDelete"; Direction: "clientToServer"; Method: "workspace/didDeleteFiles"; ServerCapability: "workspace.fileOperations.didDelete"; }; DidRenameFiles: { ClientCapability: "workspace.fileOperations.didRename"; Direction: "clientToServer"; Method: "workspace/didRenameFiles"; ServerCapability: "workspace.fileOperations.didRename"; }; }; }[N][M]

The definition object containing Method, Params, Direction, and optional capability keys.

Released under the MIT License.