diff --git a/package.json b/package.json index c3700dd3..3aef9b4f 100644 --- a/package.json +++ b/package.json @@ -344,6 +344,11 @@ "when": "view == javaProjectExplorer && viewItem =~ /java:project(?=.*?\\b\\+java\\b)(?=.*?\\b\\+uri\\b)/", "group": "inline@add_0" }, + { + "command": "java.view.package.newJavaClass", + "when": "view == javaProjectExplorer && viewItem =~ /java:project(?=.*?\\b\\+java\\b)(?=.*?\\b\\+uri\\b)/", + "group": "new@10" + }, { "command": "java.view.package.newJavaClass", "when": "view == javaProjectExplorer && viewItem =~ /java:(package|packageRoot)(?=.*?\\b\\+source\\b)(?=.*?\\b\\+uri\\b)/", @@ -354,6 +359,11 @@ "when": "view == javaProjectExplorer && viewItem =~ /java:(package|packageRoot)(?=.*?\\b\\+source\\b)(?=.*?\\b\\+uri\\b)/", "group": "new@20" }, + { + "command": "java.view.package.newPackage", + "when": "view == javaProjectExplorer && viewItem =~ /java:project(?=.*?\\b\\+java\\b)(?=.*?\\b\\+uri\\b)/", + "group": "new@20" + }, { "command": "java.project.addLibraries", "when": "view == javaProjectExplorer && viewItem =~ /java:container(?=.*?\\b\\+referencedLibrary\\b)/", diff --git a/src/explorerCommands/new.ts b/src/explorerCommands/new.ts index 7032b21a..bfa9fe7e 100644 --- a/src/explorerCommands/new.ts +++ b/src/explorerCommands/new.ts @@ -89,10 +89,14 @@ function getNewFilePath(basePath: string, className: string): string { export async function newPackage(node: DataNode): Promise { let defaultValue: string; let packageRootPath: string; - if (node.nodeData.kind === NodeKind.PackageRoot) { + const nodeKind = node.nodeData.kind; + if (nodeKind === NodeKind.Project) { + defaultValue = ""; + packageRootPath = await getPackageFsPath(node); + } else if (nodeKind === NodeKind.PackageRoot) { defaultValue = ""; packageRootPath = Uri.parse(node.uri).fsPath; - } else if (node.nodeData.kind === NodeKind.Package) { + } else if (nodeKind === NodeKind.Package) { defaultValue = node.nodeData.name + "."; packageRootPath = getPackageRootPath(Uri.parse(node.uri).fsPath, node.nodeData.name); } else {