From 0809096b0f10f3bcacb1f2165c3c0e526a9a2b03 Mon Sep 17 00:00:00 2001 From: Nikita Pavlenko Date: Tue, 19 Nov 2024 16:13:41 +0100 Subject: [PATCH] [PyCharm] Jupyter (feat): Fixed Markdown cell mode switch on entering command mode and on cell conversion. #PY-77183 Fixed (cherry picked from commit 1c4a35dc577363afe2744a904e91e92a15630184) IJ-CR-151924 GitOrigin-RevId: f7e0e1e3e0b4d22be2f294e7ab14eb5c71e022b1 --- .../mode/NotebookEditorModeListenerAdapter.kt | 56 +++++++++---------- 1 file changed, 27 insertions(+), 29 deletions(-) diff --git a/notebooks/notebook-ui/src/com/intellij/notebooks/ui/editor/actions/command/mode/NotebookEditorModeListenerAdapter.kt b/notebooks/notebook-ui/src/com/intellij/notebooks/ui/editor/actions/command/mode/NotebookEditorModeListenerAdapter.kt index 82a92c60e214..057cd9ebfd41 100644 --- a/notebooks/notebook-ui/src/com/intellij/notebooks/ui/editor/actions/command/mode/NotebookEditorModeListenerAdapter.kt +++ b/notebooks/notebook-ui/src/com/intellij/notebooks/ui/editor/actions/command/mode/NotebookEditorModeListenerAdapter.kt @@ -15,7 +15,6 @@ import com.intellij.openapi.editor.ex.util.EditorUtil class NotebookEditorModeListenerAdapter private constructor(private val editor: Editor) : NotebookEditorModeListener, CaretListener, Disposable.Default { private var currentEditorMode: NotebookEditorMode? = null - override fun onModeChange(editor: Editor, mode: NotebookEditorMode) { val modeWasChanged = currentEditorMode != mode @@ -26,33 +25,32 @@ class NotebookEditorModeListenerAdapter private constructor(private val editor: return } - editor.apply { - (markupModel as MarkupModelEx).apply { - allHighlighters.filterIsInstance().forEach { - val lineMarkerRenderer = it.getLineMarkerRenderer() - it.setLineMarkerRenderer(null) - it.setLineMarkerRenderer(lineMarkerRenderer) // to fireChange - } + (editor.markupModel as MarkupModelEx).apply { + allHighlighters.filterIsInstance().forEach { + val lineMarkerRenderer = it.getLineMarkerRenderer() + it.setLineMarkerRenderer(null) + it.setLineMarkerRenderer(lineMarkerRenderer) // to fireChange } - - if (modeWasChanged) { - handleCarets(mode) - editor.settings.isCaretRowShown = isCaretRowShown(mode) - } - - caretModel.allCarets.forEach { caret -> - caret.visualAttributes = getCaretAttributes(mode) - } - - editor.contentComponent.putClientProperty(ActionUtil.ALLOW_PlAIN_LETTER_SHORTCUTS, when (mode) { - NotebookEditorMode.EDIT -> false - NotebookEditorMode.COMMAND -> true - }) - editor.contentComponent.enableInputMethods(when (mode) { - NotebookEditorMode.EDIT -> true - NotebookEditorMode.COMMAND -> false - }) } + + if (modeWasChanged) { + handleCarets(mode) + editor.settings.isCaretRowShown = isCaretRowShown(mode) + } + + editor.caretModel.allCarets.forEach { caret -> + caret.visualAttributes = getCaretAttributes(mode) + } + + editor.contentComponent.putClientProperty(ActionUtil.ALLOW_PlAIN_LETTER_SHORTCUTS, when (mode) { + NotebookEditorMode.EDIT -> false + NotebookEditorMode.COMMAND -> true + }) + + editor.contentComponent.enableInputMethods(when (mode) { + NotebookEditorMode.EDIT -> true + NotebookEditorMode.COMMAND -> false + }) } override fun caretAdded(event: CaretEvent) { @@ -71,9 +69,9 @@ class NotebookEditorModeListenerAdapter private constructor(private val editor: } private fun isCaretRowShown(mode: NotebookEditorMode): Boolean = when (mode) { - NotebookEditorMode.EDIT -> true - NotebookEditorMode.COMMAND -> false - } + NotebookEditorMode.EDIT -> true + NotebookEditorMode.COMMAND -> false + } private fun handleCarets(mode: NotebookEditorMode) = when (mode) { NotebookEditorMode.EDIT -> {