diff --git a/lsp/kotlin/src/main/java/com/itsaky/androidide/lsp/kotlin/compiler/index/KtSymbolIndex.kt b/lsp/kotlin/src/main/java/com/itsaky/androidide/lsp/kotlin/compiler/index/KtSymbolIndex.kt index 7f0c9118ca..5449efcd76 100644 --- a/lsp/kotlin/src/main/java/com/itsaky/androidide/lsp/kotlin/compiler/index/KtSymbolIndex.kt +++ b/lsp/kotlin/src/main/java/com/itsaky/androidide/lsp/kotlin/compiler/index/KtSymbolIndex.kt @@ -5,6 +5,7 @@ import com.itsaky.androidide.lsp.kotlin.compiler.CompilationKind import com.itsaky.androidide.lsp.kotlin.compiler.modules.KtModule import com.itsaky.androidide.lsp.kotlin.compiler.read import com.itsaky.androidide.lsp.kotlin.utils.toVirtualFileOrNull +import com.itsaky.androidide.utils.DocumentUtils import kotlinx.coroutines.CoroutineName import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.Dispatchers @@ -172,8 +173,9 @@ internal class KtSymbolIndex( fun getOpenedKtFile(path: Path) = openedFiles[path] - fun getKtFile(vf: VirtualFile): KtFile { + fun getKtFile(vf: VirtualFile): KtFile? { val path = vf.toNioPath() + if (!DocumentUtils.isKotlinFile(path)) return null openedFiles[path]?.also { return it } ktFileCache.getIfPresent(path)?.also { return it } diff --git a/lsp/kotlin/src/main/java/com/itsaky/androidide/lsp/kotlin/compiler/services/DeclarationsProvider.kt b/lsp/kotlin/src/main/java/com/itsaky/androidide/lsp/kotlin/compiler/services/DeclarationsProvider.kt index c3973b394d..f7c0e271e6 100644 --- a/lsp/kotlin/src/main/java/com/itsaky/androidide/lsp/kotlin/compiler/services/DeclarationsProvider.kt +++ b/lsp/kotlin/src/main/java/com/itsaky/androidide/lsp/kotlin/compiler/services/DeclarationsProvider.kt @@ -180,6 +180,6 @@ internal class DeclarationProvider( return index.filesForPackage(fqName.asString()) .mapNotNull { VirtualFileManager.getInstance().findFileByNioPath(Paths.get(it.filePath)) } .filter { it in scope } - .map { index.getKtFile(it) } + .mapNotNull { index.getKtFile(it) } } } diff --git a/lsp/kotlin/src/main/java/com/itsaky/androidide/lsp/kotlin/compiler/services/DirectInheritorsProvider.kt b/lsp/kotlin/src/main/java/com/itsaky/androidide/lsp/kotlin/compiler/services/DirectInheritorsProvider.kt index 7036744413..df24ee2918 100644 --- a/lsp/kotlin/src/main/java/com/itsaky/androidide/lsp/kotlin/compiler/services/DirectInheritorsProvider.kt +++ b/lsp/kotlin/src/main/java/com/itsaky/androidide/lsp/kotlin/compiler/services/DirectInheritorsProvider.kt @@ -82,7 +82,7 @@ internal class DirectInheritorsProvider: KtLspService, KotlinDirectInheritorsPro modules .asFlatSequence() .filter { it.isSourceModule }.flatMap { it.computeFiles(extended = true) } - .map { index.getKtFile(it) } + .mapNotNull { index.getKtFile(it) } .forEach { ktFile -> ktFile.accept(object : KtTreeVisitorVoid() { override fun visitClassOrObject(classOrObject: KtClassOrObject) {