Refactoring: introduce isKotlinScratch function

This commit is contained in:
Roman Golyshev
2019-08-06 09:31:17 +03:00
committed by Natalia Selezneva
parent f35ce1e9f6
commit b8bdef0005
3 changed files with 10 additions and 7 deletions
@@ -6,8 +6,6 @@
package org.jetbrains.kotlin.idea.scratch.actions
import com.intellij.execution.lineMarker.RunLineMarkerContributor
import com.intellij.ide.scratch.ScratchFileService
import com.intellij.ide.scratch.ScratchRootType
import com.intellij.openapi.editor.EditorFactory
import com.intellij.openapi.fileEditor.TextEditor
import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider
@@ -21,6 +19,7 @@ import org.jetbrains.kotlin.idea.core.util.getLineCount
import org.jetbrains.kotlin.idea.refactoring.getLineNumber
import org.jetbrains.kotlin.idea.scratch.ScratchExpression
import org.jetbrains.kotlin.idea.scratch.getScratchPanel
import org.jetbrains.kotlin.idea.scratch.isKotlinScratch
import org.jetbrains.kotlin.idea.scratch.isKotlinWorksheet
import org.jetbrains.kotlin.psi.*
import org.jetbrains.kotlin.psi.psiUtil.findDescendantOfType
@@ -32,7 +31,7 @@ class ScratchRunLineMarkerContributor : RunLineMarkerContributor() {
val ktFile = element.containingFile as? KtFile
if (ktFile?.isScript() != true) return null
val file = ktFile.virtualFile
if (!(ScratchFileService.getInstance().getRootType(file) is ScratchRootType || file.isKotlinWorksheet)) return null
if (!(file.isKotlinScratch || file.isKotlinWorksheet)) return null
val declaration = element.getStrictParentOfType<KtNamedDeclaration>()
if (declaration != null && declaration !is KtParameter && declaration.nameIdentifier == element) {
@@ -5,6 +5,8 @@
package org.jetbrains.kotlin.idea.scratch
import com.intellij.ide.scratch.ScratchFileService
import com.intellij.ide.scratch.ScratchRootType
import com.intellij.openapi.diagnostic.Logger
import com.intellij.openapi.fileEditor.FileEditorManager
import com.intellij.openapi.fileEditor.TextEditor
@@ -24,7 +26,11 @@ internal fun Logger.printDebugMessage(str: String) {
if (isDebugEnabled) debug("SCRATCH: $str")
}
val VirtualFile.isKotlinWorksheet: Boolean get() = name.endsWith(".$KOTLIN_WORKSHEET_EXTENSION")
val VirtualFile.isKotlinWorksheet: Boolean
get() = name.endsWith(".$KOTLIN_WORKSHEET_EXTENSION")
val VirtualFile.isKotlinScratch: Boolean
get() = ScratchFileService.getInstance().getRootType(this) is ScratchRootType
fun getEditorWithoutScratchPanel(fileManager: FileEditorManager, virtualFile: VirtualFile): TextEditor? {
val editor = fileManager.getSelectedEditor(virtualFile) as? TextEditor
@@ -16,8 +16,6 @@
package org.jetbrains.kotlin.idea.scratch.ui
import com.intellij.ide.scratch.ScratchFileService
import com.intellij.ide.scratch.ScratchRootType
import com.intellij.openapi.components.ProjectComponent
import com.intellij.openapi.fileEditor.FileEditorManager
import com.intellij.openapi.fileEditor.FileEditorManagerListener
@@ -52,7 +50,7 @@ class ScratchFileHook(val project: Project) : ProjectComponent {
private fun isPluggable(file: VirtualFile): Boolean {
if (!file.isValid) return false
if (!(ScratchFileService.getInstance().getRootType(file) is ScratchRootType || file.isKotlinWorksheet)) return false
if (!(file.isKotlinScratch || file.isKotlinWorksheet)) return false
val psiFile = PsiManager.getInstance(project).findFile(file) ?: return false
return ScratchFileLanguageProvider.get(psiFile.fileType) != null
}