mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-03-22 15:19:59 +07:00
[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
This commit is contained in:
committed by
intellij-monorepo-bot
parent
49894bdce7
commit
0809096b0f
@@ -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<RangeHighlighterEx>().forEach {
|
||||
val lineMarkerRenderer = it.getLineMarkerRenderer()
|
||||
it.setLineMarkerRenderer(null)
|
||||
it.setLineMarkerRenderer(lineMarkerRenderer) // to fireChange
|
||||
}
|
||||
(editor.markupModel as MarkupModelEx).apply {
|
||||
allHighlighters.filterIsInstance<RangeHighlighterEx>().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 -> {
|
||||
|
||||
Reference in New Issue
Block a user