mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 14:23:28 +07:00
[PyCharm] Jupyter (fix): Fixed wrong RangeHighlighter recreation on cell bounds change. #PY-77353 Fixed
(cherry picked from commit 4e2cb72b483757933def97f4f7975622f2bf45b8) GitOrigin-RevId: a45fabafdf312651051693a882aab3b38fd88156
This commit is contained in:
committed by
intellij-monorepo-bot
parent
5f371fb815
commit
a9ce4d15f3
@@ -77,8 +77,8 @@ class EditorCellView(
|
|||||||
|
|
||||||
private var mouseOver = false
|
private var mouseOver = false
|
||||||
|
|
||||||
// We are storing last offsets for highlighters to prevent highlighters unnecessary recreation on same values.
|
// We are storing last lines range for highlighters to prevent highlighters unnecessary recreation on same lines.
|
||||||
private var lastHighLightersOffsets: IntRange? = null
|
private var lastHighLightersLines: IntRange? = null
|
||||||
|
|
||||||
var disableActions: Boolean = false
|
var disableActions: Boolean = false
|
||||||
set(value) {
|
set(value) {
|
||||||
@@ -144,8 +144,8 @@ class EditorCellView(
|
|||||||
DataManager.removeDataProvider(component)
|
DataManager.removeDataProvider(component)
|
||||||
DataManager.registerDataProvider(component, NotebookCellDataProvider(editor, component) { interval })
|
DataManager.registerDataProvider(component, NotebookCellDataProvider(editor, component) { interval })
|
||||||
}
|
}
|
||||||
|
controller.createGutterRendererLineMarker(editor, interval, cellView = this)
|
||||||
}
|
}
|
||||||
updateCellHighlight()
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun recreateControllers() {
|
private fun recreateControllers() {
|
||||||
@@ -176,8 +176,8 @@ class EditorCellView(
|
|||||||
|
|
||||||
private fun isInlaysBroken(): Boolean {
|
private fun isInlaysBroken(): Boolean {
|
||||||
val inlaysOffsets = buildSet {
|
val inlaysOffsets = buildSet {
|
||||||
add(editor.document.getLineStartOffset(interval.lines.first))
|
add(editor.document.getLineStartOffset(interval.lines.first))
|
||||||
add(editor.document.getLineEndOffset(interval.lines.last))
|
add(editor.document.getLineEndOffset(interval.lines.last))
|
||||||
}
|
}
|
||||||
for (inlay in getInlays()) {
|
for (inlay in getInlays()) {
|
||||||
if (!inlay.isValid || inlay.offset !in inlaysOffsets) {
|
if (!inlay.isValid || inlay.offset !in inlaysOffsets) {
|
||||||
@@ -280,11 +280,10 @@ class EditorCellView(
|
|||||||
val startOffset = editor.document.getLineStartOffset(interval.lines.first)
|
val startOffset = editor.document.getLineStartOffset(interval.lines.first)
|
||||||
val endOffset = editor.document.getLineEndOffset(interval.lines.last)
|
val endOffset = editor.document.getLineEndOffset(interval.lines.last)
|
||||||
|
|
||||||
val range = IntRange(startOffset, endOffset)
|
if (interval.lines == lastHighLightersLines) {
|
||||||
if (interval.lines == lastHighLightersOffsets) {
|
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
lastHighLightersOffsets = range
|
lastHighLightersLines = IntRange(interval.lines.first, interval.lines.last)
|
||||||
|
|
||||||
removeCellHighlight()
|
removeCellHighlight()
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user