mirror of
https://github.com/QwenLM/qwen-code.git
synced 2025-12-19 09:33:53 +00:00
[ide-mode] Fix path delimiter for multi-root workspaces on Windows (#6273)
Co-authored-by: Jacob Richman <jacob314@gmail.com>
This commit is contained in:
committed by
GitHub
parent
3c0af3654a
commit
4896c7739f
@@ -5,6 +5,7 @@
|
||||
*/
|
||||
|
||||
import { describe, it, expect } from 'vitest';
|
||||
import * as path from 'path';
|
||||
import { IdeClient } from './ide-client.js';
|
||||
|
||||
describe('IdeClient.validateWorkspacePath', () => {
|
||||
@@ -49,7 +50,7 @@ describe('IdeClient.validateWorkspacePath', () => {
|
||||
|
||||
it('should handle multiple workspace paths and return valid', () => {
|
||||
const result = IdeClient.validateWorkspacePath(
|
||||
'/some/other/path:/Users/person/gemini-cli',
|
||||
['/some/other/path', '/Users/person/gemini-cli'].join(path.delimiter),
|
||||
'VS Code',
|
||||
'/Users/person/gemini-cli/sub-dir',
|
||||
);
|
||||
@@ -58,11 +59,20 @@ describe('IdeClient.validateWorkspacePath', () => {
|
||||
|
||||
it('should return invalid if cwd is not in any of the multiple workspace paths', () => {
|
||||
const result = IdeClient.validateWorkspacePath(
|
||||
'/some/other/path:/another/path',
|
||||
['/some/other/path', '/another/path'].join(path.delimiter),
|
||||
'VS Code',
|
||||
'/Users/person/gemini-cli/sub-dir',
|
||||
);
|
||||
expect(result.isValid).toBe(false);
|
||||
expect(result.error).toContain('Directory mismatch');
|
||||
});
|
||||
|
||||
it.skipIf(process.platform !== 'win32')('should handle windows paths', () => {
|
||||
const result = IdeClient.validateWorkspacePath(
|
||||
'c:/some/other/path;d:/Users/person/gemini-cli',
|
||||
'VS Code',
|
||||
'd:/Users/person/gemini-cli/sub-dir',
|
||||
);
|
||||
expect(result.isValid).toBe(true);
|
||||
});
|
||||
});
|
||||
|
||||
@@ -272,7 +272,7 @@ export class IdeClient {
|
||||
};
|
||||
}
|
||||
|
||||
const ideWorkspacePaths = ideWorkspacePath.split(':');
|
||||
const ideWorkspacePaths = ideWorkspacePath.split(path.delimiter);
|
||||
const realCwd = getRealPath(cwd);
|
||||
const isWithinWorkspace = ideWorkspacePaths.some((workspacePath) => {
|
||||
const idePath = getRealPath(workspacePath);
|
||||
|
||||
Reference in New Issue
Block a user