Refactoring: introduce isKotlinScratch function
This commit is contained in:
committed by
Natalia Selezneva
parent
f35ce1e9f6
commit
b8bdef0005
+2
-3
@@ -6,8 +6,6 @@
|
|||||||
package org.jetbrains.kotlin.idea.scratch.actions
|
package org.jetbrains.kotlin.idea.scratch.actions
|
||||||
|
|
||||||
import com.intellij.execution.lineMarker.RunLineMarkerContributor
|
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.editor.EditorFactory
|
||||||
import com.intellij.openapi.fileEditor.TextEditor
|
import com.intellij.openapi.fileEditor.TextEditor
|
||||||
import com.intellij.openapi.fileEditor.impl.text.TextEditorProvider
|
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.refactoring.getLineNumber
|
||||||
import org.jetbrains.kotlin.idea.scratch.ScratchExpression
|
import org.jetbrains.kotlin.idea.scratch.ScratchExpression
|
||||||
import org.jetbrains.kotlin.idea.scratch.getScratchPanel
|
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.idea.scratch.isKotlinWorksheet
|
||||||
import org.jetbrains.kotlin.psi.*
|
import org.jetbrains.kotlin.psi.*
|
||||||
import org.jetbrains.kotlin.psi.psiUtil.findDescendantOfType
|
import org.jetbrains.kotlin.psi.psiUtil.findDescendantOfType
|
||||||
@@ -32,7 +31,7 @@ class ScratchRunLineMarkerContributor : RunLineMarkerContributor() {
|
|||||||
val ktFile = element.containingFile as? KtFile
|
val ktFile = element.containingFile as? KtFile
|
||||||
if (ktFile?.isScript() != true) return null
|
if (ktFile?.isScript() != true) return null
|
||||||
val file = ktFile.virtualFile
|
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>()
|
val declaration = element.getStrictParentOfType<KtNamedDeclaration>()
|
||||||
if (declaration != null && declaration !is KtParameter && declaration.nameIdentifier == element) {
|
if (declaration != null && declaration !is KtParameter && declaration.nameIdentifier == element) {
|
||||||
|
|||||||
@@ -5,6 +5,8 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.scratch
|
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.diagnostic.Logger
|
||||||
import com.intellij.openapi.fileEditor.FileEditorManager
|
import com.intellij.openapi.fileEditor.FileEditorManager
|
||||||
import com.intellij.openapi.fileEditor.TextEditor
|
import com.intellij.openapi.fileEditor.TextEditor
|
||||||
@@ -24,7 +26,11 @@ internal fun Logger.printDebugMessage(str: String) {
|
|||||||
if (isDebugEnabled) debug("SCRATCH: $str")
|
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? {
|
fun getEditorWithoutScratchPanel(fileManager: FileEditorManager, virtualFile: VirtualFile): TextEditor? {
|
||||||
val editor = fileManager.getSelectedEditor(virtualFile) as? TextEditor
|
val editor = fileManager.getSelectedEditor(virtualFile) as? TextEditor
|
||||||
|
|||||||
@@ -16,8 +16,6 @@
|
|||||||
|
|
||||||
package org.jetbrains.kotlin.idea.scratch.ui
|
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.components.ProjectComponent
|
||||||
import com.intellij.openapi.fileEditor.FileEditorManager
|
import com.intellij.openapi.fileEditor.FileEditorManager
|
||||||
import com.intellij.openapi.fileEditor.FileEditorManagerListener
|
import com.intellij.openapi.fileEditor.FileEditorManagerListener
|
||||||
@@ -52,7 +50,7 @@ class ScratchFileHook(val project: Project) : ProjectComponent {
|
|||||||
|
|
||||||
private fun isPluggable(file: VirtualFile): Boolean {
|
private fun isPluggable(file: VirtualFile): Boolean {
|
||||||
if (!file.isValid) return false
|
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
|
val psiFile = PsiManager.getInstance(project).findFile(file) ?: return false
|
||||||
return ScratchFileLanguageProvider.get(psiFile.fileType) != null
|
return ScratchFileLanguageProvider.get(psiFile.fileType) != null
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user