From 0ad6468379344fbc20cfbd67e2f9c4bc71d3467c Mon Sep 17 00:00:00 2001 From: Rik van der Kleij Date: Wed, 9 Oct 2019 21:18:10 +0200 Subject: [PATCH] Improve finding module file --- .../intellij/haskell/util/HaskellProjectUtil.scala | 11 +++-------- .../haskell/util/index/HaskellModuleNameIndex.scala | 6 +++--- 2 files changed, 6 insertions(+), 11 deletions(-) diff --git a/src/main/scala/intellij/haskell/util/HaskellProjectUtil.scala b/src/main/scala/intellij/haskell/util/HaskellProjectUtil.scala index 148951f6..d2729f92 100644 --- a/src/main/scala/intellij/haskell/util/HaskellProjectUtil.scala +++ b/src/main/scala/intellij/haskell/util/HaskellProjectUtil.scala @@ -110,17 +110,12 @@ object HaskellProjectUtil { directory.listFiles.find(_.getName == "package.yaml") } - def getProjectAndLibrariesModulesSearchScope(project: Project): GlobalSearchScope = { - val projectModules = findProjectHaskellModules(project).map(m => GlobalSearchScope.moduleWithDependenciesAndLibrariesScope(m, true)) - if (projectModules.isEmpty) { - GlobalSearchScope.EMPTY_SCOPE - } else { - projectModules.reduce(_.uniteWith(_)) - } + def getProjectSearchScope(project: Project): GlobalSearchScope = { + GlobalSearchScope.allScope(project) } def getSearchScope(project: Project, includeNonProjectItems: Boolean): GlobalSearchScope = { - if (includeNonProjectItems) getProjectAndLibrariesModulesSearchScope(project) else GlobalSearchScope.projectScope(project) + if (includeNonProjectItems) getProjectSearchScope(project) else GlobalSearchScope.projectScope(project) } import ScalaUtil._ diff --git a/src/main/scala/intellij/haskell/util/index/HaskellModuleNameIndex.scala b/src/main/scala/intellij/haskell/util/index/HaskellModuleNameIndex.scala index 4b6c2c26..58b579af 100644 --- a/src/main/scala/intellij/haskell/util/index/HaskellModuleNameIndex.scala +++ b/src/main/scala/intellij/haskell/util/index/HaskellModuleNameIndex.scala @@ -76,8 +76,8 @@ object HaskellModuleNameIndex { moduleNames.foreach(mn => { val key = Key(project, mn) find(key, 5.seconds, reschedule = true) match { - case Right(vf) => Cache.put(key, Right(vf)) - case Left(_) => () + case Right(vf) if vf.nonEmpty => Cache.put(key, Right(vf)) + case _ => () } }) } @@ -128,7 +128,7 @@ object HaskellModuleNameIndex { val files = ApplicationUtil.scheduleInReadActionWithWriteActionPriority( project, { try { - Some(FileBasedIndex.getInstance.getContainingFiles(HaskellModuleNameIndex, moduleName, HaskellProjectUtil.getProjectAndLibrariesModulesSearchScope(project)).asScala.toSeq) + Some(FileBasedIndex.getInstance.getContainingFiles(HaskellModuleNameIndex, moduleName, HaskellProjectUtil.getProjectSearchScope(project)).asScala.toSeq) } catch { case _: IndexNotReadyException => None }