Compare commits

...

5 Commits

Author SHA1 Message Date
kvyb dc953cc50a Merge branch 'main' into simplified-fileopen-hostbridge 2025-07-26 15:05:27 +08:00
kvyb 53f680dc86 fix proto merge conflict 2025-07-26 15:03:28 +08:00
kvyb 23ac74d95e fix: remove create wrapper from openFile call 2025-07-26 14:04:01 +08:00
kvyb cca2d06b63 fix: simplify openFile hostbridge to follow gRPC best practices:
- Remove success boolean field from OpenFileResponse proto
- Use gRPC exceptions for error handling instead of success/failure booleans
- Simplify hostbridge implementation to just move existing vscode.open code
2025-07-26 13:13:25 +08:00
kvyb 597901ba7a feat: add openFile host bridge for vscode.open command 2025-07-24 07:01:18 +08:00
3 changed files with 20 additions and 1 deletions
+10
View File
@@ -14,6 +14,7 @@ service WindowService {
rpc showMessage(ShowMessageRequest) returns (SelectedResponse);
rpc showInputBox(ShowInputBoxRequest) returns (ShowInputBoxResponse);
rpc showSaveDialog(ShowSaveDialogRequest) returns (ShowSaveDialogResponse);
rpc openFile(OpenFileRequest) returns (OpenFileResponse);
rpc getOpenTabs(GetOpenTabsRequest) returns (GetOpenTabsResponse);
rpc getVisibleTabs(GetVisibleTabsRequest) returns (GetVisibleTabsResponse);
}
@@ -105,6 +106,15 @@ message ShowInputBoxResponse {
optional string response = 1;
}
message OpenFileRequest {
cline.Metadata metadata = 1;
string file_path = 2;
}
message OpenFileResponse {
// empty
}
message GetOpenTabsRequest {
// empty
}
@@ -0,0 +1,7 @@
import * as vscode from "vscode"
import { OpenFileRequest, OpenFileResponse } from "@/shared/proto/host/window"
export async function openFile(request: OpenFileRequest): Promise<OpenFileResponse> {
await vscode.commands.executeCommand("vscode.open", vscode.Uri.file(request.filePath))
return OpenFileResponse.create({})
}
+3 -1
View File
@@ -20,7 +20,9 @@ export async function openImage(dataUri: string) {
const tempFilePath = path.join(os.tmpdir(), `temp_image_${Date.now()}.${format}`)
try {
await writeFile(tempFilePath, new Uint8Array(imageBuffer))
await vscode.commands.executeCommand("vscode.open", vscode.Uri.file(tempFilePath))
await HostProvider.window.openFile({
filePath: tempFilePath,
})
} catch (error) {
HostProvider.window.showMessage({
type: ShowMessageType.ERROR,