From c57ba4e4a0e4b77d958f20464f3d6c23f056b32e Mon Sep 17 00:00:00 2001 From: Oksana Volodkevych Date: Wed, 21 May 2025 19:50:33 +0200 Subject: [PATCH 1/2] feat: protocol for save doc --- runtimes/protocol/workspace.ts | 14 ++++++++++++++ runtimes/runtimes/base-runtime.ts | 3 +++ runtimes/runtimes/standalone.ts | 3 +++ runtimes/server-interface/lsp.ts | 2 ++ 4 files changed, 22 insertions(+) diff --git a/runtimes/protocol/workspace.ts b/runtimes/protocol/workspace.ts index 81e56755..2024f0e1 100644 --- a/runtimes/protocol/workspace.ts +++ b/runtimes/protocol/workspace.ts @@ -10,9 +10,11 @@ import { OpenFileDiffParams, ProtocolNotificationType, ProtocolRequestType, + ResponseError, SELECT_WORKSPACE_ITEM_REQUEST_METHOD, SelectWorkspaceItemParams, SelectWorkspaceItemResult, + URI, } from './lsp' export const selectWorkspaceItemRequestType = new ProtocolRequestType< @@ -46,3 +48,15 @@ export const didAppendFileNotificationType = new ProtocolNotificationType( DID_CREATE_DIRECTORY_NOTIFICATION_METHOD ) + +export interface SaveWorkspaceDocumentParams { + uri: string +} + +export const saveWorkspaceDocumentRequestType = new ProtocolRequestType< + SaveWorkspaceDocumentParams, + boolean, + never, + ResponseError, + void +>('aws/saveWorkspaceDocument') diff --git a/runtimes/runtimes/base-runtime.ts b/runtimes/runtimes/base-runtime.ts index 064a5789..7d040526 100644 --- a/runtimes/runtimes/base-runtime.ts +++ b/runtimes/runtimes/base-runtime.ts @@ -51,6 +51,7 @@ import { buttonClickRequestType, listMcpServersRequestType, mcpServerClickRequestType, + saveWorkspaceDocumentRequestType, } from '../protocol' import { createConnection } from 'vscode-languageserver/browser' import { @@ -239,6 +240,8 @@ export const baseRuntime = (connections: { reader: MessageReader; writer: Messag onUpdateConfiguration: lspServer.setUpdateConfigurationHandler, selectWorkspaceItem: params => lspConnection.sendRequest(selectWorkspaceItemRequestType.method, params), openFileDiff: params => lspConnection.sendNotification(openFileDiffNotificationType.method, params), + saveWorkspaceDocument: params => + lspConnection.sendRequest(saveWorkspaceDocumentRequestType.method, params), }, window: { showMessage: params => lspConnection.sendNotification(ShowMessageNotification.method, params), diff --git a/runtimes/runtimes/standalone.ts b/runtimes/runtimes/standalone.ts index ad2f3cbf..187fe287 100644 --- a/runtimes/runtimes/standalone.ts +++ b/runtimes/runtimes/standalone.ts @@ -28,6 +28,7 @@ import { didWriteFileNotificationType, didAppendFileNotificationType, didCreateDirectoryNotificationType, + saveWorkspaceDocumentRequestType, } from '../protocol' import { ProposedFeatures, createConnection } from 'vscode-languageserver/node' import { @@ -386,6 +387,8 @@ export const standalone = (props: RuntimeProps) => { selectWorkspaceItem: params => lspConnection.sendRequest(selectWorkspaceItemRequestType.method, params), openFileDiff: params => lspConnection.sendNotification(openFileDiffNotificationType.method, params), + saveWorkspaceDocument: params => + lspConnection.sendRequest(saveWorkspaceDocumentRequestType.method, params), }, window: { showMessage: params => lspConnection.sendNotification(ShowMessageNotification.method, params), diff --git a/runtimes/server-interface/lsp.ts b/runtimes/server-interface/lsp.ts index 90960787..f31d7f1d 100644 --- a/runtimes/server-interface/lsp.ts +++ b/runtimes/server-interface/lsp.ts @@ -59,6 +59,7 @@ import { SelectWorkspaceItemResult, ShowSaveFileDialogParams, ShowSaveFileDialogResult, + SaveWorkspaceDocumentParams, } from '../protocol' // Re-export whole surface of LSP protocol used in Runtimes. @@ -145,6 +146,7 @@ export type Lsp = { handler: RequestHandler ) => void openFileDiff: (params: OpenFileDiffParams) => void + saveWorkspaceDocument: (params: SaveWorkspaceDocumentParams) => Promise } window: { showMessage: (params: ShowMessageParams) => Promise From b52af66d947ca76dc662b1490f3146c93e8ca6f5 Mon Sep 17 00:00:00 2001 From: Oksana Volodkevych Date: Wed, 21 May 2025 19:55:16 +0200 Subject: [PATCH 2/2] feat: protocol for save doc --- runtimes/protocol/workspace.ts | 2 +- runtimes/server-interface/lsp.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/runtimes/protocol/workspace.ts b/runtimes/protocol/workspace.ts index 2024f0e1..1210b564 100644 --- a/runtimes/protocol/workspace.ts +++ b/runtimes/protocol/workspace.ts @@ -55,7 +55,7 @@ export interface SaveWorkspaceDocumentParams { export const saveWorkspaceDocumentRequestType = new ProtocolRequestType< SaveWorkspaceDocumentParams, - boolean, + null, never, ResponseError, void diff --git a/runtimes/server-interface/lsp.ts b/runtimes/server-interface/lsp.ts index f31d7f1d..efc8aa77 100644 --- a/runtimes/server-interface/lsp.ts +++ b/runtimes/server-interface/lsp.ts @@ -146,7 +146,7 @@ export type Lsp = { handler: RequestHandler ) => void openFileDiff: (params: OpenFileDiffParams) => void - saveWorkspaceDocument: (params: SaveWorkspaceDocumentParams) => Promise + saveWorkspaceDocument: (params: SaveWorkspaceDocumentParams) => Promise } window: { showMessage: (params: ShowMessageParams) => Promise