[Analysis API Standalone] do not add non-supported file types to KtSourceModule
^KT-60884
This commit is contained in:
committed by
Space Team
parent
c76f365efb
commit
f7352585f4
+5
-4
@@ -11,6 +11,7 @@ import com.intellij.psi.search.GlobalSearchScope
|
||||
import org.jetbrains.kotlin.analysis.project.structure.KtSourceModule
|
||||
import org.jetbrains.kotlin.analysis.project.structure.impl.KtSourceModuleImpl
|
||||
import org.jetbrains.kotlin.analysis.project.structure.impl.collectSourceFilePaths
|
||||
import org.jetbrains.kotlin.analysis.project.structure.impl.hasSuitableExtensionToAnalyse
|
||||
import org.jetbrains.kotlin.cli.jvm.compiler.KotlinCoreProjectEnvironment
|
||||
import org.jetbrains.kotlin.config.ApiVersion
|
||||
import org.jetbrains.kotlin.config.LanguageVersion
|
||||
@@ -62,10 +63,10 @@ public class KtSourceModuleBuilder(
|
||||
val localFileSystem = kotlinCoreProjectEnvironment.environment.localFileSystem
|
||||
return buildList {
|
||||
for (root in sourceRoots) {
|
||||
val files = if (root.isDirectory()) {
|
||||
collectSourceFilePaths(root)
|
||||
} else {
|
||||
listOf(root)
|
||||
val files = when {
|
||||
root.isDirectory() -> collectSourceFilePaths(root)
|
||||
root.hasSuitableExtensionToAnalyse() -> listOf(root)
|
||||
else -> emptyList()
|
||||
}
|
||||
for (file in files) {
|
||||
val virtualFile = localFileSystem.findFileByIoFile(file.toFile()) ?: continue
|
||||
|
||||
+10
-6
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.jetbrains.kotlin.analysis.project.structure.impl
|
||||
|
||||
import com.google.common.io.Files.getFileExtension
|
||||
import com.intellij.ide.highlighter.JavaFileType
|
||||
import com.intellij.psi.PsiFileSystemItem
|
||||
import com.intellij.psi.PsiManager
|
||||
@@ -37,6 +36,7 @@ import org.jetbrains.kotlin.wasm.resolve.WasmJsPlatformAnalyzerServices
|
||||
import java.io.IOException
|
||||
import java.nio.file.*
|
||||
import java.nio.file.attribute.BasicFileAttributes
|
||||
import kotlin.io.path.extension
|
||||
|
||||
internal fun TargetPlatform.getAnalyzerServices(): PlatformDependentAnalyzerServices {
|
||||
return when {
|
||||
@@ -101,11 +101,7 @@ internal fun collectSourceFilePaths(root: Path): List<Path> {
|
||||
override fun visitFile(file: Path, attrs: BasicFileAttributes): FileVisitResult {
|
||||
if (!Files.isRegularFile(file) || !Files.isReadable(file))
|
||||
return FileVisitResult.CONTINUE
|
||||
val ext = getFileExtension(file.fileName.toString())
|
||||
if (ext == KotlinFileType.EXTENSION ||
|
||||
ext == KotlinParserDefinition.STD_SCRIPT_SUFFIX ||
|
||||
ext == JavaFileType.DEFAULT_EXTENSION
|
||||
) {
|
||||
if (file.hasSuitableExtensionToAnalyse()) {
|
||||
result.add(file)
|
||||
}
|
||||
return FileVisitResult.CONTINUE
|
||||
@@ -123,6 +119,14 @@ internal fun collectSourceFilePaths(root: Path): List<Path> {
|
||||
return result
|
||||
}
|
||||
|
||||
internal fun Path.hasSuitableExtensionToAnalyse(): Boolean {
|
||||
val extension = extension
|
||||
|
||||
return extension == KotlinFileType.EXTENSION ||
|
||||
extension == KotlinParserDefinition.STD_SCRIPT_SUFFIX ||
|
||||
extension == JavaFileType.DEFAULT_EXTENSION
|
||||
}
|
||||
|
||||
internal inline fun <reified T : PsiFileSystemItem> getPsiFilesFromPaths(
|
||||
kotlinCoreProjectEnvironment: KotlinCoreProjectEnvironment,
|
||||
paths: Collection<Path>,
|
||||
|
||||
Reference in New Issue
Block a user