Merge branch 'main' of https://github.com/QwenLM/qwen-code into feat/vscode-ide-companion-borading

This commit is contained in:
yiliang114
2025-12-13 17:40:16 +08:00

View File

@@ -16,6 +16,7 @@ import {
} from '@qwen-code/qwen-code-core/src/ide/detect-ide.js';
import { WebViewProvider } from './webview/WebViewProvider.js';
import { registerNewCommands } from './commands/index.js';
import { CliVersionChecker } from './cli/cliVersionChecker.js';
const CLI_IDE_COMPANION_IDENTIFIER = 'qwenlm.qwen-code-vscode-ide-companion';
const INFO_MESSAGE_SHOWN_KEY = 'qwenCodeInfoMessageShown';
@@ -103,6 +104,33 @@ async function checkForUpdates(
}
}
/**
* Update status bar item with CLI version information
*/
async function updateStatusBarItem(
statusBarItem: vscode.StatusBarItem,
context: vscode.ExtensionContext,
) {
try {
// Initialize the version checker
const versionChecker = CliVersionChecker.getInstance(context);
// Get version status for display
const versionStatus = await versionChecker.getVersionStatus();
// Update status bar item
statusBarItem.text = versionStatus;
statusBarItem.tooltip = 'Qwen Code CLI Version Information';
statusBarItem.show();
} catch (error) {
const message = error instanceof Error ? error.message : String(error);
log(`Error updating status bar: ${message}`);
statusBarItem.text = 'CLI: Error';
statusBarItem.tooltip = 'Failed to get CLI version information';
statusBarItem.show();
}
}
export async function activate(context: vscode.ExtensionContext) {
logger = vscode.window.createOutputChannel('Qwen Code Companion');
log = createLogger(context, logger);
@@ -110,6 +138,17 @@ export async function activate(context: vscode.ExtensionContext) {
checkForUpdates(context, log);
// Create status bar item for CLI version info
const versionStatusBarItem = vscode.window.createStatusBarItem(
vscode.StatusBarAlignment.Right,
100,
);
versionStatusBarItem.command = 'qwen-code.showCliVersionInfo';
context.subscriptions.push(versionStatusBarItem);
// Update status bar with CLI version info
updateStatusBarItem(versionStatusBarItem, context);
const diffContentProvider = new DiffContentProvider();
const diffManager = new DiffManager(
log,
@@ -267,6 +306,26 @@ export async function activate(context: vscode.ExtensionContext) {
vscode.workspace.onDidGrantWorkspaceTrust(() => {
ideServer.syncEnvVars();
}),
vscode.commands.registerCommand(
'qwen-code.showCliVersionInfo',
async () => {
try {
const versionChecker = CliVersionChecker.getInstance(context);
const versionStatus = await versionChecker.getVersionStatus();
// Show information message with version details
vscode.window.showInformationMessage(
`Qwen Code CLI Version: ${versionStatus}`,
);
} catch (error) {
const message =
error instanceof Error ? error.message : String(error);
vscode.window.showErrorMessage(
`Failed to get CLI version info: ${message}`,
);
}
},
),
vscode.commands.registerCommand(
'qwen-code.runQwenCode',
async (