Minor, ProjectRootsUtil: extract a couple of utils and use them

This commit is contained in:
Pavel V. Talanov
2015-12-18 16:33:39 +03:00
parent f20aba63a6
commit a8c5e0cc95
2 changed files with 12 additions and 2 deletions
@@ -74,6 +74,11 @@ public object ProjectRootsUtil {
return isInContent(element, includeProjectSource = true, includeLibrarySource = false, includeLibraryClasses = false)
}
@JvmStatic
public fun isProjectSourceFile(project: Project, file: VirtualFile): Boolean {
return isInContent(project, file, includeProjectSource = true, includeLibrarySource = false, includeLibraryClasses = false)
}
@JvmStatic
public fun isInProjectOrLibSource(element: PsiElement): Boolean {
return isInContent(element, includeProjectSource = true, includeLibrarySource = true, includeLibraryClasses = false)
@@ -94,6 +99,11 @@ public object ProjectRootsUtil {
return isInContent(project, file, includeProjectSource = false, includeLibrarySource = false, includeLibraryClasses = true)
}
@JvmStatic
public fun isLibrarySourceFile(project: Project, file: VirtualFile): Boolean {
return isInContent(project, file, includeProjectSource = false, includeLibrarySource = true, includeLibraryClasses = false)
}
@JvmStatic
public fun isLibraryFile(project: Project, file: VirtualFile): Boolean {
return isInContent(project, file, includeProjectSource = false, includeLibrarySource = true, includeLibraryClasses = true)
@@ -74,7 +74,7 @@ class KotlinExceptionFilter(private val searchScope: GlobalSearchScope) : Filter
private fun virtualFileForInlineCall(jvmName: JvmClassName, file: VirtualFile, lineNumber: Int, project: Project): OpenFileHyperlinkInfo? {
val fqNameWithInners = jvmName.fqNameForClassNameWithoutDollars.tail(jvmName.packageFqName)
if (ProjectRootsUtil.isInContent(project, file, false, true, false)) {
if (ProjectRootsUtil.isLibrarySourceFile(project, file)) {
val classId = ClassId(jvmName.packageFqName, Name.identifier(fqNameWithInners.asString()))
val fileFinder = JvmVirtualFileFinder.SERVICE.getInstance(project)
@@ -82,7 +82,7 @@ class KotlinExceptionFilter(private val searchScope: GlobalSearchScope) : Filter
return readDebugInfoForInlineFun(classFile.contentsToByteArray(), lineNumber, project)
}
if (!ProjectRootsUtil.isInContent(project, file, true, false, false)) return null
if (!ProjectRootsUtil.isProjectSourceFile(project, file)) return null
val linesInFile = file.toPsiFile(project)?.getLineCount() ?: return null
if (lineNumber <= linesInFile) return null