diff --git a/cli/src/main/java/net/neoforged/jst/cli/intellij/ClasspathSetup.java b/cli/src/main/java/net/neoforged/jst/cli/intellij/ClasspathSetup.java index ad19d4c..662e03f 100644 --- a/cli/src/main/java/net/neoforged/jst/cli/intellij/ClasspathSetup.java +++ b/cli/src/main/java/net/neoforged/jst/cli/intellij/ClasspathSetup.java @@ -104,7 +104,8 @@ public static void addLibrary(Logger logger, Path libraryPath, IntelliJEnvironme if (!Files.exists(libraryPath)) { throw new UncheckedIOException(new NoSuchFileException(libraryPath.toString())); } - ijEnv.addJarToClassPath(libraryPath); + if (Files.isDirectory(libraryPath)) ijEnv.addFolderToClasspath(libraryPath); + else ijEnv.addJarToClassPath(libraryPath); logger.debug("Added %s", libraryPath); } } diff --git a/tests/data/accesstransformer/folder_classpath_entry/accesstransformer.cfg b/tests/data/accesstransformer/folder_classpath_entry/accesstransformer.cfg new file mode 100644 index 0000000..14e8cc6 --- /dev/null +++ b/tests/data/accesstransformer/folder_classpath_entry/accesstransformer.cfg @@ -0,0 +1 @@ +public C1 get()La/b/c/Reference; diff --git a/tests/data/accesstransformer/folder_classpath_entry/deps/a/b/c/Reference.java b/tests/data/accesstransformer/folder_classpath_entry/deps/a/b/c/Reference.java new file mode 100644 index 0000000..3de7dfc --- /dev/null +++ b/tests/data/accesstransformer/folder_classpath_entry/deps/a/b/c/Reference.java @@ -0,0 +1,5 @@ +package a.b.c; + +public record Reference(int a) { + +} \ No newline at end of file diff --git a/tests/data/accesstransformer/folder_classpath_entry/expected/C1.java b/tests/data/accesstransformer/folder_classpath_entry/expected/C1.java new file mode 100644 index 0000000..dd66ac2 --- /dev/null +++ b/tests/data/accesstransformer/folder_classpath_entry/expected/C1.java @@ -0,0 +1,7 @@ +import a.b.c.Reference; + +public class C1 { + public Reference get() { + return new Reference(1); + } +} \ No newline at end of file diff --git a/tests/data/accesstransformer/folder_classpath_entry/source/C1.java b/tests/data/accesstransformer/folder_classpath_entry/source/C1.java new file mode 100644 index 0000000..3fe93a3 --- /dev/null +++ b/tests/data/accesstransformer/folder_classpath_entry/source/C1.java @@ -0,0 +1,7 @@ +import a.b.c.Reference; + +public class C1 { + private Reference get() { + return new Reference(1); + } +} \ No newline at end of file diff --git a/tests/src/test/java/net/neoforged/jst/tests/EmbeddedTest.java b/tests/src/test/java/net/neoforged/jst/tests/EmbeddedTest.java index bc8e05f..f0d5cd8 100644 --- a/tests/src/test/java/net/neoforged/jst/tests/EmbeddedTest.java +++ b/tests/src/test/java/net/neoforged/jst/tests/EmbeddedTest.java @@ -302,6 +302,11 @@ void testMethodsInheritance() throws Exception { void testHiddenPrefixes() throws Exception { runATTest("hidden_prefix", "--hidden-prefix=other"); } + + @Test + void testFolderClasspathEntries() throws Exception { + runATTest("folder_classpath_entry", "--classpath=" + testDataRoot.resolve("accesstransformer/folder_classpath_entry/deps")); + } } @Nested