wip(vscode-ide-companion): 实现 quick win 功能

- 将 WebView 调整到编辑器右侧
- 添加 ChatHeader 组件,实现会话下拉菜单
- 替换模态框为紧凑型下拉菜单
- 更新会话切换逻辑,显示当前标题
- 清理旧的会话选择器样式
基于 Claude Code v2.0.43 UI 分析实现。
This commit is contained in:
yiliang114
2025-11-19 00:16:45 +08:00
parent 729a3d0ab3
commit 732220e651
52 changed files with 16502 additions and 1420 deletions

View File

@@ -120,6 +120,36 @@ export async function activate(context: vscode.ExtensionContext) {
// Initialize WebView Provider
webViewProvider = new WebViewProvider(context, context.extensionUri);
// Register WebView panel serializer for persistence across reloads
context.subscriptions.push(
vscode.window.registerWebviewPanelSerializer('qwenCode.chat', {
async deserializeWebviewPanel(
webviewPanel: vscode.WebviewPanel,
state: unknown,
) {
console.log(
'[Extension] Deserializing WebView panel with state:',
state,
);
// Restore the WebView provider with the existing panel
webViewProvider.restorePanel(webviewPanel);
// Restore state if available
if (state && typeof state === 'object') {
webViewProvider.restoreState(
state as {
conversationId: string | null;
agentInitialized: boolean;
},
);
}
log('WebView panel restored from serialization');
},
}),
);
context.subscriptions.push(
vscode.workspace.onDidCloseTextDocument((doc) => {
if (doc.uri.scheme === DIFF_SCHEME) {