KT-26550: do not show "Convert Java File to Kotlin File" action for external libraries
#KT-26550 fixed
This commit is contained in:
committed by
Ilya Kirillov
parent
8723ad4f46
commit
c4a238cca4
@@ -17,6 +17,7 @@
|
||||
package org.jetbrains.kotlin.idea.actions
|
||||
|
||||
import com.intellij.codeInsight.navigation.NavigationUtil
|
||||
import com.intellij.ide.highlighter.ArchiveFileType
|
||||
import com.intellij.ide.highlighter.JavaFileType
|
||||
import com.intellij.ide.scratch.ScratchFileService
|
||||
import com.intellij.ide.scratch.ScratchRootType
|
||||
@@ -220,11 +221,14 @@ class JavaToKotlinAction : AnAction() {
|
||||
}
|
||||
|
||||
private fun isAnyJavaFileSelected(project: Project, files: Array<VirtualFile>): Boolean {
|
||||
if (files.any { it.isDirectory }) return true // Giving up on directories
|
||||
if (files.any { it.isSuitableDirectory() }) return true // Giving up on directories
|
||||
val manager = PsiManager.getInstance(project)
|
||||
return files.any { it.extension == JavaFileType.DEFAULT_EXTENSION && manager.findFile(it) is PsiJavaFile && it.isWritable }
|
||||
}
|
||||
|
||||
private fun VirtualFile.isSuitableDirectory(): Boolean =
|
||||
isDirectory && fileType !is ArchiveFileType && isWritable
|
||||
|
||||
private fun selectedJavaFiles(e: AnActionEvent): Sequence<PsiJavaFile> {
|
||||
val virtualFiles = e.getData(CommonDataKeys.VIRTUAL_FILE_ARRAY) ?: return sequenceOf()
|
||||
val project = e.project ?: return sequenceOf()
|
||||
|
||||
Reference in New Issue
Block a user