diff --git a/src/main/kotlin/org/domaframework/doma/intellij/common/FileTypeCheck.kt b/src/main/kotlin/org/domaframework/doma/intellij/common/FileTypeCheck.kt index 17d3f2f8..a5831611 100644 --- a/src/main/kotlin/org/domaframework/doma/intellij/common/FileTypeCheck.kt +++ b/src/main/kotlin/org/domaframework/doma/intellij/common/FileTypeCheck.kt @@ -37,6 +37,7 @@ fun getExtension(type: String): String = * Does it match the Dao file type condition? */ fun isJavaOrKotlinFileType(daoFile: PsiFile): Boolean { + if (daoFile.virtualFile == null) return false val fileType = FileTypeManager.getInstance().getFileTypeByFile(daoFile.virtualFile) return when (fileType.name) { "JAVA", "Kotlin" -> true @@ -57,7 +58,7 @@ fun isSupportFileType(file: PsiFile): Boolean { fun isInjectionSqlFile(file: PsiFile): Boolean { val extension = file.fileType.defaultExtension - val filePath = file.virtualFile.path + val filePath = file.virtualFile?.path ?: return false return when (extension) { "sql" -> true else -> false diff --git a/src/main/kotlin/org/domaframework/doma/intellij/common/dao/DaoMethodUtil.kt b/src/main/kotlin/org/domaframework/doma/intellij/common/dao/DaoMethodUtil.kt index 93ba8224..fe968d5b 100644 --- a/src/main/kotlin/org/domaframework/doma/intellij/common/dao/DaoMethodUtil.kt +++ b/src/main/kotlin/org/domaframework/doma/intellij/common/dao/DaoMethodUtil.kt @@ -39,7 +39,8 @@ import org.domaframework.doma.intellij.extension.getModule */ fun findDaoMethod(originalFile: PsiFile): PsiMethod? { val project = originalFile.project - val module = project.getModule(originalFile.virtualFile) ?: return null + val virtualFile = originalFile.virtualFile ?: return null + val module = project.getModule(virtualFile) ?: return null if (isInjectionSqlFile(originalFile)) { originalFile.let { @@ -52,7 +53,7 @@ fun findDaoMethod(originalFile: PsiFile): PsiMethod? { val relativePath = formatDaoPathFromSqlFilePath( originalFile, - project.getContentRoot(originalFile.virtualFile)?.path ?: "", + project.getContentRoot(virtualFile)?.path ?: "", fileTypeName, ) val daoClassName: String = @@ -110,7 +111,7 @@ fun formatDaoPathFromSqlFilePath( if (isInjectionSqlFile(relativeBaseSqlFile)) { return "" } - val sqlPath = relativeBaseSqlFile.virtualFile.path + val sqlPath = relativeBaseSqlFile.virtualFile?.path ?: return "" var relativeFilePath = sqlPath.substring(projectRootPath.length) if (!relativeFilePath.startsWith("/")) { relativeFilePath = "/$relativeFilePath" diff --git a/src/main/kotlin/org/domaframework/doma/intellij/common/psi/PsiDaoMethod.kt b/src/main/kotlin/org/domaframework/doma/intellij/common/psi/PsiDaoMethod.kt index a5cf0fd1..603420fd 100644 --- a/src/main/kotlin/org/domaframework/doma/intellij/common/psi/PsiDaoMethod.kt +++ b/src/main/kotlin/org/domaframework/doma/intellij/common/psi/PsiDaoMethod.kt @@ -166,7 +166,7 @@ class PsiDaoMethod( PsiManager .getInstance(psiProject) .findDirectory(virtualFile) ?: return@runWriteCommandAction - val sqlVirtualFile = sqlOutputDirPath.createFile(sqlFileName).virtualFile + val sqlVirtualFile = sqlOutputDirPath.createFile(sqlFileName).virtualFile ?: return@runWriteCommandAction FileEditorManager .getInstance(psiProject) .openFile(sqlVirtualFile, true) diff --git a/src/main/kotlin/org/domaframework/doma/intellij/refactoring/dao/DaoRenameProcessor.kt b/src/main/kotlin/org/domaframework/doma/intellij/refactoring/dao/DaoRenameProcessor.kt index 2b9e5a2d..02374024 100644 --- a/src/main/kotlin/org/domaframework/doma/intellij/refactoring/dao/DaoRenameProcessor.kt +++ b/src/main/kotlin/org/domaframework/doma/intellij/refactoring/dao/DaoRenameProcessor.kt @@ -42,7 +42,7 @@ class DaoRenameProcessor : RenameJavaClassProcessor() { val daoClass = getDaoClass(element.containingFile) ?: return val project = element.project - val virtualFile = element.containingFile.virtualFile + val virtualFile = element.containingFile.virtualFile ?: return project.getContentRoot(virtualFile)?.let { element.module?.getPackagePathFromDaoPath(virtualFile)?.let { if (it.name == daoClass.name) {