register webview

This commit is contained in:
锦恢 2025-03-22 23:34:21 +08:00
parent c56847a2b2
commit 104ab8a93c
3 changed files with 4790 additions and 4813 deletions

View File

@ -10,49 +10,27 @@
"Other"
],
"activationEvents": [
"*"
],
"main": "./dist/extension.js",
"contributes": {
"commands": [
"viewsContainers": {
"activitybar": [
{
"command": "openmcp.helloWorld",
"title": "Hello World"
"id": "openmcp-sidebar",
"title": "OpenMCP",
"icon": "./icons/protocol.svg"
}
],
]
},
"views": {
"explorer": [
"openmcp-sidebar": [
{
"id": "webview-sidebar.view",
"icon": "./icons/protocol.svg",
"name": "WebView"
"name": "chatbot",
"type": "webview"
}
]
}
},
"scripts": {
"vscode:prepublish": "npm run package",
"compile": "webpack",
"watch": "webpack --watch",
"package": "webpack --mode production --devtool hidden-source-map",
"compile-tests": "tsc -p . --outDir out",
"watch-tests": "tsc -p . -w --outDir out",
"pretest": "npm run compile-tests && npm run compile && npm run lint",
"lint": "eslint src",
"test": "vscode-test"
},
"devDependencies": {
"@types/vscode": "^1.98.0",
"@types/mocha": "^10.0.10",
"@types/node": "20.x",
"@typescript-eslint/eslint-plugin": "^8.25.0",
"@typescript-eslint/parser": "^8.25.0",
"eslint": "^9.21.0",
"typescript": "^5.7.3",
"ts-loader": "^9.5.2",
"webpack": "^5.98.0",
"webpack-cli": "^6.0.1",
"@vscode/test-cli": "^0.0.10",
"@vscode/test-electron": "^2.4.1"
}
}

View File

@ -1,17 +1,10 @@
import * as vscode from 'vscode';
export function activate(context: vscode.ExtensionContext) {
// 注册 WebView 视图
console.log('activate');
console.log('activate openmcp'); // 确保插件已激活
const provider = new WebviewViewProvider(context.extensionUri);
context.subscriptions.push(
vscode.commands.registerCommand('openmcp.helloWorld', () => {
vscode.window.showInformationMessage('Hello World!');
})
)
context.subscriptions.push(
vscode.window.registerWebviewViewProvider('webview-sidebar.view', provider)
);
@ -20,13 +13,19 @@ export function activate(context: vscode.ExtensionContext) {
class WebviewViewProvider implements vscode.WebviewViewProvider {
constructor(private readonly _extensionUri: vscode.Uri) {}
public resolveWebviewView(webviewView: vscode.WebviewView) {
public resolveWebviewView(
webviewView: vscode.WebviewView,
_context: vscode.WebviewViewResolveContext,
_token: vscode.CancellationToken,
) {
console.log('resolveWebviewView called'); // 确保方法被调用
webviewView.webview.options = {
enableScripts: true, // 启用 JavaScript
enableScripts: true,
};
// 设置 WebView 的 HTML 内容
webviewView.webview.html = getWebviewContent();
const html = getWebviewContent();
console.log('WebView HTML:', html); // 检查 HTML 内容
webviewView.webview.html = html;
}
}