File tree Expand file tree Collapse file tree 2 files changed +13
-13
lines changed
kotlin-eclipse-core/src/org/jetbrains/kotlin/core/utils
kotlin-eclipse-ui/src/org/jetbrains/kotlin/ui/builder Expand file tree Collapse file tree 2 files changed +13
-13
lines changed Original file line number Diff line number Diff line change @@ -44,20 +44,16 @@ fun addFilesToParse(javaProject: IJavaProject) {
4444 throw IllegalArgumentException (" Project ${javaProject.getElementName()} has no Kotlin Nature" )
4545 }
4646
47- javaProject.getPackageFragmentRoots().forEach {
48- if (it.getKind() == IPackageFragmentRoot .K_SOURCE ) {
49- scanForKotlinFiles(it.getResource())
47+ for (sourceFolder in javaProject.sourceFolders) {
48+ sourceFolder.resource.accept { resource ->
49+ if (resource is IFile && KotlinPsiManager .isKotlinFile(resource)) {
50+ KotlinPsiManager .INSTANCE .updateProjectPsiSources(resource, IResourceDelta .ADDED )
51+ }
52+
53+ true
5054 }
5155 }
5256}
5357
54- private fun scanForKotlinFiles (parentResource : IResource ) {
55- when (parentResource) {
56- is IFile -> {
57- if (KotlinPsiManager .isKotlinFile(parentResource)) {
58- KotlinPsiManager .INSTANCE .updateProjectPsiSources(parentResource, IResourceDelta .ADDED )
59- }
60- }
61- is IFolder -> parentResource.members().forEach { scanForKotlinFiles(it) }
62- }
63- }
58+ val IJavaProject .sourceFolders: List <IPackageFragmentRoot >
59+ get() = packageFragmentRoots.filter { it.kind == IPackageFragmentRoot .K_SOURCE }
Original file line number Diff line number Diff line change @@ -50,6 +50,10 @@ class ProjectChangeListener : IResourceDeltaVisitor {
5050 }
5151 }
5252 is IProject -> {
53+ if (! resource.isAccessible || ! KotlinNature .hasKotlinNature(resource)) {
54+ return false
55+ }
56+
5357 val kind = delta.getKind()
5458 KotlinPsiManager .INSTANCE .updateProjectPsiSources(resource, kind)
5559
You can’t perform that action at this time.
0 commit comments