From 303b6999f48c00bbd13f5aa86ada61cd1112e950 Mon Sep 17 00:00:00 2001 From: tanzhenxin Date: Tue, 19 Aug 2025 18:20:40 +0800 Subject: [PATCH] fix: qwen vscode extension --- docs/extension.md | 26 ++++---- packages/cli/src/config/config.test.ts | 2 +- packages/cli/src/config/extension.ts | 18 ++++-- packages/cli/src/utils/sandbox.ts | 4 +- packages/core/src/ide/ide-client.ts | 8 +-- packages/core/src/ide/ide-installer.test.ts | 2 +- packages/core/src/ide/ide-installer.ts | 2 +- packages/vscode-ide-companion/README.md | 4 +- packages/vscode-ide-companion/assets/icon.png | Bin 46696 -> 53565 bytes packages/vscode-ide-companion/package.json | 2 +- .../vscode-ide-companion/src/diff-manager.ts | 6 +- .../src/extension.test.ts | 10 ++-- .../vscode-ide-companion/src/extension.ts | 56 ++++++++---------- .../vscode-ide-companion/src/ide-server.ts | 2 +- 14 files changed, 72 insertions(+), 70 deletions(-) diff --git a/docs/extension.md b/docs/extension.md index bb009e55..37336b15 100644 --- a/docs/extension.md +++ b/docs/extension.md @@ -1,23 +1,23 @@ -# Gemini CLI Extensions +# Qwen Code Extensions -Gemini CLI supports extensions that can be used to configure and extend its functionality. +Qwen Code supports extensions that can be used to configure and extend its functionality. ## How it works -On startup, Gemini CLI looks for extensions in two locations: +On startup, Qwen Code looks for extensions in two locations: -1. `/.gemini/extensions` -2. `/.gemini/extensions` +1. `/.qwen/extensions` +2. `/.qwen/extensions` -Gemini CLI loads all extensions from both locations. If an extension with the same name exists in both locations, the extension in the workspace directory takes precedence. +Qwen Code loads all extensions from both locations. If an extension with the same name exists in both locations, the extension in the workspace directory takes precedence. -Within each location, individual extensions exist as a directory that contains a `gemini-extension.json` file. For example: +Within each location, individual extensions exist as a directory that contains a `qwen-extension.json` file. For example: -`/.gemini/extensions/my-extension/gemini-extension.json` +`/.qwen/extensions/my-extension/qwen-extension.json` -### `gemini-extension.json` +### `qwen-extension.json` -The `gemini-extension.json` file contains the configuration for the extension. The file has the following structure: +The `qwen-extension.json` file contains the configuration for the extension. The file has the following structure: ```json { @@ -39,7 +39,7 @@ The `gemini-extension.json` file contains the configuration for the extension. T - `contextFileName`: The name of the file that contains the context for the extension. This will be used to load the context from the workspace. If this property is not used but a `QWEN.md` file is present in your extension directory, then that file will be loaded. - `excludeTools`: An array of tool names to exclude from the model. You can also specify command-specific restrictions for tools that support it, like the `run_shell_command` tool. For example, `"excludeTools": ["run_shell_command(rm -rf)"]` will block the `rm -rf` command. -When Gemini CLI starts, it loads all the extensions and merges their configurations. If there are any conflicts, the workspace configuration takes precedence. +When Qwen Code starts, it loads all the extensions and merges their configurations. If there are any conflicts, the workspace configuration takes precedence. ## Extension Commands @@ -50,8 +50,8 @@ Extensions can provide [custom commands](./cli/commands.md#custom-commands) by p An extension named `gcp` with the following structure: ``` -.gemini/extensions/gcp/ -├── gemini-extension.json +.qwen/extensions/gcp/ +├── qwen-extension.json └── commands/ ├── deploy.toml └── gcs/ diff --git a/packages/cli/src/config/config.test.ts b/packages/cli/src/config/config.test.ts index 27f37073..6d41e0c4 100644 --- a/packages/cli/src/config/config.test.ts +++ b/packages/cli/src/config/config.test.ts @@ -1093,7 +1093,7 @@ describe('loadCliConfig ideModeFeature', () => { vi.mocked(os.homedir).mockReturnValue('/mock/home/user'); process.env.GEMINI_API_KEY = 'test-api-key'; delete process.env.SANDBOX; - delete process.env.GEMINI_CLI_IDE_SERVER_PORT; + delete process.env.QWEN_CODE_IDE_SERVER_PORT; }); afterEach(() => { diff --git a/packages/cli/src/config/extension.ts b/packages/cli/src/config/extension.ts index cdd9bdd7..73ae9979 100644 --- a/packages/cli/src/config/extension.ts +++ b/packages/cli/src/config/extension.ts @@ -10,7 +10,8 @@ import * as path from 'path'; import * as os from 'os'; export const EXTENSIONS_DIRECTORY_NAME = path.join('.qwen', 'extensions'); -export const EXTENSIONS_CONFIG_FILENAME = 'gemini-extension.json'; +export const EXTENSIONS_CONFIG_FILENAME = 'qwen-extension.json'; +export const EXTENSIONS_CONFIG_FILENAME_OLD = 'gemini-extension.json'; export interface Extension { path: string; @@ -68,12 +69,19 @@ function loadExtension(extensionDir: string): Extension | null { return null; } - const configFilePath = path.join(extensionDir, EXTENSIONS_CONFIG_FILENAME); + let configFilePath = path.join(extensionDir, EXTENSIONS_CONFIG_FILENAME); if (!fs.existsSync(configFilePath)) { - console.error( - `Warning: extension directory ${extensionDir} does not contain a config file ${configFilePath}.`, + const oldConfigFilePath = path.join( + extensionDir, + EXTENSIONS_CONFIG_FILENAME_OLD, ); - return null; + if (!fs.existsSync(oldConfigFilePath)) { + console.error( + `Warning: extension directory ${extensionDir} does not contain a config file ${configFilePath}.`, + ); + return null; + } + configFilePath = oldConfigFilePath; } try { diff --git a/packages/cli/src/utils/sandbox.ts b/packages/cli/src/utils/sandbox.ts index 386ef5e5..f96725df 100644 --- a/packages/cli/src/utils/sandbox.ts +++ b/packages/cli/src/utils/sandbox.ts @@ -631,8 +631,8 @@ export async function start_sandbox( // Pass through IDE mode environment variables for (const envVar of [ - 'GEMINI_CLI_IDE_SERVER_PORT', - 'GEMINI_CLI_IDE_WORKSPACE_PATH', + 'QWEN_CODE_IDE_SERVER_PORT', + 'QWEN_CODE_IDE_WORKSPACE_PATH', 'TERM_PROGRAM', ]) { if (process.env[envVar]) { diff --git a/packages/core/src/ide/ide-client.ts b/packages/core/src/ide/ide-client.ts index b64ee98a..1d369385 100644 --- a/packages/core/src/ide/ide-client.ts +++ b/packages/core/src/ide/ide-client.ts @@ -83,7 +83,7 @@ export class IdeClient { if (!this.currentIde || !this.currentIdeDisplayName) { this.setState( IDEConnectionStatus.Disconnected, - `IDE integration is not supported in your current environment. To use this feature, run Gemini CLI in one of these supported IDEs: ${Object.values( + `IDE integration is not supported in your current environment. To use this feature, run Qwen Code in one of these supported IDEs: ${Object.values( DetectedIde, ) .map((ide) => getIdeDisplayName(ide)) @@ -233,7 +233,7 @@ export class IdeClient { } private validateWorkspacePath(): boolean { - const ideWorkspacePath = process.env['GEMINI_CLI_IDE_WORKSPACE_PATH']; + const ideWorkspacePath = process.env['QWEN_CODE_IDE_WORKSPACE_PATH']; if (ideWorkspacePath === undefined) { this.setState( IDEConnectionStatus.Disconnected, @@ -257,7 +257,7 @@ export class IdeClient { if (rel.startsWith('..') || path.isAbsolute(rel)) { this.setState( IDEConnectionStatus.Disconnected, - `Directory mismatch. Gemini CLI is running in a different location than the open workspace in ${this.currentIdeDisplayName}. Please run the CLI from the same directory as your project's root folder.`, + `Directory mismatch. Qwen Code is running in a different location than the open workspace in ${this.currentIdeDisplayName}. Please run the CLI from the same directory as your project's root folder.`, true, ); return false; @@ -266,7 +266,7 @@ export class IdeClient { } private getPortFromEnv(): string | undefined { - const port = process.env['GEMINI_CLI_IDE_SERVER_PORT']; + const port = process.env['QWEN_CODE_IDE_SERVER_PORT']; if (!port) { this.setState( IDEConnectionStatus.Disconnected, diff --git a/packages/core/src/ide/ide-installer.test.ts b/packages/core/src/ide/ide-installer.test.ts index 1afd7a36..b2a33715 100644 --- a/packages/core/src/ide/ide-installer.test.ts +++ b/packages/core/src/ide/ide-installer.test.ts @@ -86,7 +86,7 @@ describe('ide-installer', () => { .mockImplementation(() => ''); const result = await installer.install(); expect(execSyncSpy).toHaveBeenCalledWith( - 'npx ovsx get google.gemini-cli-vscode-ide-companion', + 'npx ovsx get qwenlm.qwen-code-vscode-ide-companion', { stdio: 'pipe' }, ); expect(result.success).toBe(true); diff --git a/packages/core/src/ide/ide-installer.ts b/packages/core/src/ide/ide-installer.ts index e6192bfa..bbd91f5d 100644 --- a/packages/core/src/ide/ide-installer.ts +++ b/packages/core/src/ide/ide-installer.ts @@ -150,7 +150,7 @@ class VsCodeInstaller implements IdeInstaller { class OpenVSXInstaller implements IdeInstaller { async install(): Promise { // TODO: Use the correct extension path. - const command = `npx ovsx get google.gemini-cli-vscode-ide-companion`; + const command = `npx ovsx get qwenlm.qwen-code-vscode-ide-companion`; try { child_process.execSync(command, { stdio: 'pipe' }); return { diff --git a/packages/vscode-ide-companion/README.md b/packages/vscode-ide-companion/README.md index 6145d684..13df2a93 100644 --- a/packages/vscode-ide-companion/README.md +++ b/packages/vscode-ide-companion/README.md @@ -8,9 +8,9 @@ The Qwen Code Companion extension seamlessly integrates [Qwen Code](https://gith - Selection Context: Qwen Code can easily access your cursor's position and selected text within the editor, giving it valuable context directly from your current work. -- Native Diffing: Seamlessly view, modify, and accept code changes suggested by Gemini CLI directly within the editor. +- Native Diffing: Seamlessly view, modify, and accept code changes suggested by Qwen Code directly within the editor. -- Launch Gemini CLI: Quickly start a new Gemini CLI session from the Command Palette (Cmd+Shift+P or Ctrl+Shift+P) by running the "Gemini CLI: Run" command. +- Launch Qwen Code: Quickly start a new Qwen Code session from the Command Palette (Cmd+Shift+P or Ctrl+Shift+P) by running the "Qwen Code: Run" command. # Requirements diff --git a/packages/vscode-ide-companion/assets/icon.png b/packages/vscode-ide-companion/assets/icon.png index 2f26055b035fa07d54b1959115720466371e9048..d773698ae28c64059947080b6ee849c38cefc6b0 100644 GIT binary patch literal 53565 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 F_#fbx+id^< literal 46696 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�gN)!E-q~ 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 { vi.mocked(context.globalState.get).mockReturnValue(undefined); await activate(context); expect(showInformationMessageMock).toHaveBeenCalledWith( - 'Gemini CLI Companion extension successfully installed. Please restart your terminal to enable full IDE integration.', - 'Re-launch Gemini CLI', + 'Qwen Code Companion extension successfully installed. Please restart your terminal to enable full IDE integration.', + 'Run Qwen Code', ); }); @@ -91,16 +91,16 @@ describe('activate', () => { expect(vscode.window.showInformationMessage).not.toHaveBeenCalled(); }); - it('should launch the Gemini CLI when the user clicks the button', async () => { + it('should launch Qwen Code when the user clicks the button', async () => { const showInformationMessageMock = vi .mocked(vscode.window.showInformationMessage) - .mockResolvedValue('Re-launch Gemini CLI' as never); + .mockResolvedValue('Run Qwen Code' as never); vi.mocked(context.globalState.get).mockReturnValue(undefined); await activate(context); expect(showInformationMessageMock).toHaveBeenCalled(); await new Promise(process.nextTick); // Wait for the promise to resolve expect(vscode.commands.executeCommand).toHaveBeenCalledWith( - 'gemini-cli.runGeminiCLI', + 'qwen-code.runQwenCode', ); }); }); diff --git a/packages/vscode-ide-companion/src/extension.ts b/packages/vscode-ide-companion/src/extension.ts index 18217140..634cb208 100644 --- a/packages/vscode-ide-companion/src/extension.ts +++ b/packages/vscode-ide-companion/src/extension.ts @@ -9,9 +9,9 @@ import { IDEServer } from './ide-server.js'; import { DiffContentProvider, DiffManager } from './diff-manager.js'; import { createLogger } from './utils/logger.js'; -const INFO_MESSAGE_SHOWN_KEY = 'geminiCliInfoMessageShown'; -const IDE_WORKSPACE_PATH_ENV_VAR = 'GEMINI_CLI_IDE_WORKSPACE_PATH'; -export const DIFF_SCHEME = 'gemini-diff'; +const INFO_MESSAGE_SHOWN_KEY = 'qwenCodeInfoMessageShown'; +const IDE_WORKSPACE_PATH_ENV_VAR = 'QWEN_CODE_IDE_WORKSPACE_PATH'; +export const DIFF_SCHEME = 'qwen-diff'; let ideServer: IDEServer; let logger: vscode.OutputChannel; @@ -35,7 +35,7 @@ function updateWorkspacePath(context: vscode.ExtensionContext) { } export async function activate(context: vscode.ExtensionContext) { - logger = vscode.window.createOutputChannel('Gemini CLI IDE Companion'); + logger = vscode.window.createOutputChannel('Qwen Code Companion'); log = createLogger(context, logger); log('Extension activated'); @@ -54,24 +54,18 @@ export async function activate(context: vscode.ExtensionContext) { DIFF_SCHEME, diffContentProvider, ), - vscode.commands.registerCommand( - 'gemini.diff.accept', - (uri?: vscode.Uri) => { - const docUri = uri ?? vscode.window.activeTextEditor?.document.uri; - if (docUri && docUri.scheme === DIFF_SCHEME) { - diffManager.acceptDiff(docUri); - } - }, - ), - vscode.commands.registerCommand( - 'gemini.diff.cancel', - (uri?: vscode.Uri) => { - const docUri = uri ?? vscode.window.activeTextEditor?.document.uri; - if (docUri && docUri.scheme === DIFF_SCHEME) { - diffManager.cancelDiff(docUri); - } - }, - ), + vscode.commands.registerCommand('qwen.diff.accept', (uri?: vscode.Uri) => { + const docUri = uri ?? vscode.window.activeTextEditor?.document.uri; + if (docUri && docUri.scheme === DIFF_SCHEME) { + diffManager.acceptDiff(docUri); + } + }), + vscode.commands.registerCommand('qwen.diff.cancel', (uri?: vscode.Uri) => { + const docUri = uri ?? vscode.window.activeTextEditor?.document.uri; + if (docUri && docUri.scheme === DIFF_SCHEME) { + diffManager.cancelDiff(docUri); + } + }), ); ideServer = new IDEServer(log, diffManager); @@ -85,13 +79,13 @@ export async function activate(context: vscode.ExtensionContext) { if (!context.globalState.get(INFO_MESSAGE_SHOWN_KEY)) { void vscode.window .showInformationMessage( - 'Gemini CLI Companion extension successfully installed. Please restart your terminal to enable full IDE integration.', - 'Re-launch Gemini CLI', + 'Qwen Code Companion extension successfully installed. Please restart your terminal to enable full IDE integration.', + 'Run Qwen Code', ) .then( (selection) => { - if (selection === 'Re-launch Gemini CLI') { - void vscode.commands.executeCommand('gemini-cli.runGeminiCLI'); + if (selection === 'Run Qwen Code') { + void vscode.commands.executeCommand('qwen-code.runQwenCode'); } }, (err) => { @@ -105,13 +99,13 @@ export async function activate(context: vscode.ExtensionContext) { vscode.workspace.onDidChangeWorkspaceFolders(() => { updateWorkspacePath(context); }), - vscode.commands.registerCommand('gemini-cli.runGeminiCLI', () => { - const geminiCmd = 'gemini'; - const terminal = vscode.window.createTerminal(`Gemini CLI`); + vscode.commands.registerCommand('qwen-code.runQwenCode', () => { + const qwenCmd = 'qwen'; + const terminal = vscode.window.createTerminal(`Qwen Code`); terminal.show(); - terminal.sendText(geminiCmd); + terminal.sendText(qwenCmd); }), - vscode.commands.registerCommand('gemini-cli.showNotices', async () => { + vscode.commands.registerCommand('qwen-code.showNotices', async () => { const noticePath = vscode.Uri.joinPath( context.extensionUri, 'NOTICES.txt', diff --git a/packages/vscode-ide-companion/src/ide-server.ts b/packages/vscode-ide-companion/src/ide-server.ts index 3aac3247..1b049be7 100644 --- a/packages/vscode-ide-companion/src/ide-server.ts +++ b/packages/vscode-ide-companion/src/ide-server.ts @@ -17,7 +17,7 @@ import { DiffManager } from './diff-manager.js'; import { OpenFilesManager } from './open-files-manager.js'; const MCP_SESSION_ID_HEADER = 'mcp-session-id'; -const IDE_SERVER_PORT_ENV_VAR = 'GEMINI_CLI_IDE_SERVER_PORT'; +const IDE_SERVER_PORT_ENV_VAR = 'QWEN_CODE_IDE_SERVER_PORT'; function sendIdeContextUpdateNotification( transport: StreamableHTTPServerTransport,