34 lines
1.3 KiB
TypeScript
34 lines
1.3 KiB
TypeScript
import * as vscode from 'vscode';
|
|
import { RegisterCommand } from "../common/index.js";
|
|
import { getDefaultLanunchSignature, getWorkspacePath, revealOpenMcpWebviewPanel } from './webview.service.js';
|
|
import { getWorkspaceConnectionConfigItemByPath } from '../global.js';
|
|
import path from 'path';
|
|
|
|
export class WebviewController {
|
|
@RegisterCommand('openmcp.showOpenMCP')
|
|
async showOpenMCP(context: vscode.ExtensionContext, uri: vscode.Uri) {
|
|
const connectionItem = getWorkspaceConnectionConfigItemByPath(uri.fsPath);
|
|
|
|
if (!connectionItem) {
|
|
// 项目不存在连接信息
|
|
const cwd = path.dirname(uri.fsPath);
|
|
const signature = getDefaultLanunchSignature(uri.fsPath, cwd);
|
|
|
|
if (!signature) {
|
|
vscode.window.showErrorMessage('OpenMCP: Cannot acquire launch parameters');
|
|
return;
|
|
}
|
|
|
|
revealOpenMcpWebviewPanel(context, 'workspace', uri.fsPath, {
|
|
connectionType: 'STDIO',
|
|
name: 'OpenMCP',
|
|
command: signature.command,
|
|
args: signature.args,
|
|
cwd
|
|
});
|
|
} else {
|
|
revealOpenMcpWebviewPanel(context, 'workspace', uri.fsPath, connectionItem);
|
|
}
|
|
|
|
}
|
|
} |