Skip to content

Commit d41da48

Browse files
Merge pull request #3 from baincd/fix-package-name-on-windows
Normalize file path when generating package name
2 parents 05ee01c + 08a6929 commit d41da48

File tree

1 file changed

+9
-6
lines changed

1 file changed

+9
-6
lines changed

src/file-content-generator.ts

Lines changed: 9 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ import { parseJavaClassesFromFile } from './class-parser';
55
import { JavaClass } from './types';
66
import { ExtensionSettings, getExtensionConfiguration } from './vscode-settings';
77

8+
const isWindows = process.platform === 'win32';
9+
810
export async function generateTestClassFileContent(
911
javaFileUri: vscode.Uri,
1012
javaClassName: string,
@@ -57,21 +59,22 @@ export function generateEmptyClassContent(packageName: string, className: string
5759

5860
export function createPackageNameFromUri(uri: vscode.Uri, filename: string | null = null, isTest: boolean = false): string {
5961
const pathPrefix = isTest ? '/src/test/java' : '/src/main/java';
60-
const startIndex = uri.fsPath.indexOf(pathPrefix) + 15; // '/src/test/java/'.length
61-
let endIndex = uri.path.length;
62+
const posixPath = isWindows ? uri.path.replace(/\\/g,'/') : uri.path;
63+
const startIndex = posixPath.indexOf(pathPrefix) + 15; // '/src/test/java/'.length
64+
let endIndex = posixPath.length;
6265

63-
const extension = posix.extname(uri.path);
66+
const extension = posix.extname(posixPath);
6467
if (extension && extension.length > 0) {
6568
if (!filename || !filename.length) {
66-
filename = posix.basename(uri.path);
69+
filename = posix.basename(posixPath);
6770
}
68-
endIndex = uri.fsPath.indexOf(filename) - 1;
71+
endIndex = posixPath.indexOf(filename) - 1;
6972
if (startIndex >= endIndex) {
7073
return '';
7174
}
7275
}
7376

74-
return uri.fsPath.substring(startIndex, endIndex).replace(/\//g, '.');
77+
return posixPath.substring(startIndex, endIndex).replace(/\//g, '.');
7578
}
7679

7780
function createTestClass(javaClass: JavaClass, settings: ExtensionSettings) {

0 commit comments

Comments
 (0)