Skip to content

Commit a324d98

Browse files
authored
feat: Add 'create new class/package' into the view context menu (#335)
1 parent 1f5e5eb commit a324d98

File tree

2 files changed

+16
-2
lines changed

2 files changed

+16
-2
lines changed

package.json

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -344,6 +344,11 @@
344344
"when": "view == javaProjectExplorer && viewItem =~ /java:project(?=.*?\\b\\+java\\b)(?=.*?\\b\\+uri\\b)/",
345345
"group": "inline@add_0"
346346
},
347+
{
348+
"command": "java.view.package.newJavaClass",
349+
"when": "view == javaProjectExplorer && viewItem =~ /java:project(?=.*?\\b\\+java\\b)(?=.*?\\b\\+uri\\b)/",
350+
"group": "new@10"
351+
},
347352
{
348353
"command": "java.view.package.newJavaClass",
349354
"when": "view == javaProjectExplorer && viewItem =~ /java:(package|packageRoot)(?=.*?\\b\\+source\\b)(?=.*?\\b\\+uri\\b)/",
@@ -354,6 +359,11 @@
354359
"when": "view == javaProjectExplorer && viewItem =~ /java:(package|packageRoot)(?=.*?\\b\\+source\\b)(?=.*?\\b\\+uri\\b)/",
355360
"group": "new@20"
356361
},
362+
{
363+
"command": "java.view.package.newPackage",
364+
"when": "view == javaProjectExplorer && viewItem =~ /java:project(?=.*?\\b\\+java\\b)(?=.*?\\b\\+uri\\b)/",
365+
"group": "new@20"
366+
},
357367
{
358368
"command": "java.project.addLibraries",
359369
"when": "view == javaProjectExplorer && viewItem =~ /java:container(?=.*?\\b\\+referencedLibrary\\b)/",

src/explorerCommands/new.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -89,10 +89,14 @@ function getNewFilePath(basePath: string, className: string): string {
8989
export async function newPackage(node: DataNode): Promise<void> {
9090
let defaultValue: string;
9191
let packageRootPath: string;
92-
if (node.nodeData.kind === NodeKind.PackageRoot) {
92+
const nodeKind = node.nodeData.kind;
93+
if (nodeKind === NodeKind.Project) {
94+
defaultValue = "";
95+
packageRootPath = await getPackageFsPath(node);
96+
} else if (nodeKind === NodeKind.PackageRoot) {
9397
defaultValue = "";
9498
packageRootPath = Uri.parse(node.uri).fsPath;
95-
} else if (node.nodeData.kind === NodeKind.Package) {
99+
} else if (nodeKind === NodeKind.Package) {
96100
defaultValue = node.nodeData.name + ".";
97101
packageRootPath = getPackageRootPath(Uri.parse(node.uri).fsPath, node.nodeData.name);
98102
} else {

0 commit comments

Comments
 (0)