[Analysis API Standalone] reuse existing local file system in getPsiFilesFromPaths

^KT-60884
This commit is contained in:
Ilya Kirillov
2023-08-29 20:51:33 +02:00
committed by Space Team
parent e6bd34b671
commit 52e9167675
2 changed files with 5 additions and 8 deletions
@@ -85,11 +85,10 @@ public class StandaloneAnalysisAPISessionBuilder(
public fun buildKtModuleProviderByCompilerConfiguration( public fun buildKtModuleProviderByCompilerConfiguration(
compilerConfiguration: CompilerConfiguration, compilerConfiguration: CompilerConfiguration,
) { ) {
val project = kotlinCoreProjectEnvironment.project
projectStructureProvider = buildKtModuleProviderByCompilerConfiguration( projectStructureProvider = buildKtModuleProviderByCompilerConfiguration(
kotlinCoreProjectEnvironment, kotlinCoreProjectEnvironment,
compilerConfiguration, compilerConfiguration,
getPsiFilesFromPaths(project, getSourceFilePaths(compilerConfiguration)), getPsiFilesFromPaths(kotlinCoreProjectEnvironment, getSourceFilePaths(compilerConfiguration)),
) )
} }
@@ -7,8 +7,6 @@ package org.jetbrains.kotlin.analysis.project.structure.impl
import com.google.common.io.Files.getFileExtension import com.google.common.io.Files.getFileExtension
import com.intellij.ide.highlighter.JavaFileType import com.intellij.ide.highlighter.JavaFileType
import com.intellij.openapi.project.Project
import com.intellij.openapi.vfs.StandardFileSystems
import com.intellij.psi.PsiFileSystemItem import com.intellij.psi.PsiFileSystemItem
import com.intellij.psi.PsiManager import com.intellij.psi.PsiManager
import com.intellij.util.io.URLUtil import com.intellij.util.io.URLUtil
@@ -130,11 +128,11 @@ private fun collectSourceFilePaths(
} }
internal inline fun <reified T : PsiFileSystemItem> getPsiFilesFromPaths( internal inline fun <reified T : PsiFileSystemItem> getPsiFilesFromPaths(
project: Project, kotlinCoreProjectEnvironment: KotlinCoreProjectEnvironment,
paths: Collection<Path>, paths: Collection<Path>,
): List<T> { ): List<T> {
val fs = StandardFileSystems.local() val fs = kotlinCoreProjectEnvironment.environment.localFileSystem
val psiManager = PsiManager.getInstance(project) val psiManager = PsiManager.getInstance(kotlinCoreProjectEnvironment.project)
return buildList { return buildList {
for (path in paths) { for (path in paths) {
val vFile = fs.findFileByPath(path.toString()) ?: continue val vFile = fs.findFileByPath(path.toString()) ?: continue
@@ -202,7 +200,7 @@ internal fun buildKtModuleProviderByCompilerConfiguration(
contentScope = TopDownAnalyzerFacadeForJVM.newModuleSearchScope(kotlinCoreProjectEnvironment.project, ordinaryFiles) contentScope = TopDownAnalyzerFacadeForJVM.newModuleSearchScope(kotlinCoreProjectEnvironment.project, ordinaryFiles)
addSourceRoots( addSourceRoots(
getPsiFilesFromPaths( getPsiFilesFromPaths(
kotlinCoreProjectEnvironment.project, kotlinCoreProjectEnvironment,
getSourceFilePaths(compilerConfig, includeDirectoryRoot = true) getSourceFilePaths(compilerConfig, includeDirectoryRoot = true)
) )
) )