@@ -5,6 +5,8 @@ import { parseJavaClassesFromFile } from './class-parser';
55import { JavaClass } from './types' ;
66import { ExtensionSettings , getExtensionConfiguration } from './vscode-settings' ;
77
8+ const isWindows = process . platform === 'win32' ;
9+
810export async function generateTestClassFileContent (
911 javaFileUri : vscode . Uri ,
1012 javaClassName : string ,
@@ -57,21 +59,22 @@ export function generateEmptyClassContent(packageName: string, className: string
5759
5860export 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
7780function createTestClass ( javaClass : JavaClass , settings : ExtensionSettings ) {
0 commit comments