File tree Expand file tree Collapse file tree 2 files changed +18
-6
lines changed
kotlin-eclipse-core/src/org/jetbrains/kotlin/core/utils
kotlin-eclipse-test-framework/src/org/jetbrains/kotlin/testframework/utils Expand file tree Collapse file tree 2 files changed +18
-6
lines changed Original file line number Diff line number Diff line change @@ -77,9 +77,22 @@ object ProjectUtils {
7777 }
7878
7979 @JvmStatic
80- fun getOutputFolder (javaProject : IJavaProject ): IFolder ? =
80+ fun getDefaultOutputFolder (javaProject : IJavaProject ): IFolder ? =
8181 ResourcesPlugin .getWorkspace().root.findMember(javaProject.outputLocation) as ? IFolder
8282
83+ @JvmStatic
84+ fun getAllOutputFolders (javaProject : IJavaProject ): List <IFolder > =
85+ javaProject.getResolvedClasspath(true )
86+ .asSequence()
87+ .filter { it.entryKind == IClasspathEntry .CPE_SOURCE }
88+ .map { it.outputLocation }
89+ .let { it + javaProject.outputLocation }
90+ .filterNotNull()
91+ .distinct()
92+ .mapNotNull { ResourcesPlugin .getWorkspace().root.findMember(it) as ? IFolder }
93+ .filter { it.exists() }
94+ .toList()
95+
8396 fun getSourceFiles (project : IProject ): List <KtFile > =
8497 KotlinPsiManager .getFilesByProject(project)
8598 .map { KotlinPsiManager .getParsedFile(it) }
@@ -164,10 +177,9 @@ object ProjectUtils {
164177 }
165178
166179 if (includeBinFolders) {
167- val outputFolder = ProjectUtils .getOutputFolder(javaProject)
168- if (outputFolder != null && outputFolder.exists()) {
169- orderedFiles.add(outputFolder.location.toFile())
170- }
180+ getAllOutputFolders(javaProject)
181+ .map { it.location.toFile() }
182+ .toCollection(orderedFiles)
171183 }
172184
173185 return orderedFiles.toList()
Original file line number Diff line number Diff line change @@ -234,7 +234,7 @@ public void clean() {
234234 try {
235235 cleanSourceFolder ();
236236
237- IFolder outputFolder = ProjectUtils .getOutputFolder (getJavaProject ());
237+ IFolder outputFolder = ProjectUtils .getDefaultOutputFolder (getJavaProject ());
238238 ProjectUtils .cleanFolder (outputFolder );
239239 ProjectUtils .cleanFolder (KotlinJavaManager .INSTANCE .getKotlinBinFolderFor (project ));
240240 } catch (JavaModelException e ) {
You can’t perform that action at this time.
0 commit comments