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
|
package org.jetbrains.kotlin.idea.actions
|
||||||
|
|
||||||
import com.intellij.codeInsight.navigation.NavigationUtil
|
import com.intellij.codeInsight.navigation.NavigationUtil
|
||||||
|
import com.intellij.ide.highlighter.ArchiveFileType
|
||||||
import com.intellij.ide.highlighter.JavaFileType
|
import com.intellij.ide.highlighter.JavaFileType
|
||||||
import com.intellij.ide.scratch.ScratchFileService
|
import com.intellij.ide.scratch.ScratchFileService
|
||||||
import com.intellij.ide.scratch.ScratchRootType
|
import com.intellij.ide.scratch.ScratchRootType
|
||||||
@@ -220,11 +221,14 @@ class JavaToKotlinAction : AnAction() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun isAnyJavaFileSelected(project: Project, files: Array<VirtualFile>): Boolean {
|
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)
|
val manager = PsiManager.getInstance(project)
|
||||||
return files.any { it.extension == JavaFileType.DEFAULT_EXTENSION && manager.findFile(it) is PsiJavaFile && it.isWritable }
|
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> {
|
private fun selectedJavaFiles(e: AnActionEvent): Sequence<PsiJavaFile> {
|
||||||
val virtualFiles = e.getData(CommonDataKeys.VIRTUAL_FILE_ARRAY) ?: return sequenceOf()
|
val virtualFiles = e.getData(CommonDataKeys.VIRTUAL_FILE_ARRAY) ?: return sequenceOf()
|
||||||
val project = e.project ?: return sequenceOf()
|
val project = e.project ?: return sequenceOf()
|
||||||
|
|||||||
Reference in New Issue
Block a user