Improve collaborator cursor positioning (#14145)

GitOrigin-RevId: c43f0877700381279c2f79699ea3963c3e9c12b3
This commit is contained in:
Alf Eaton 2023-08-04 08:36:08 +01:00 committed by Copybot
parent c37b87e254
commit 1f173010c7

View file

@ -1,8 +1,10 @@
import {
MapMode,
RangeSet,
RangeValue,
StateEffect,
StateField,
Transaction,
TransactionSpec,
} from '@codemirror/state'
import {
@ -67,9 +69,15 @@ export const cursorHighlights = () => {
}
class HighlightRangeValue extends RangeValue {
mapMode = MapMode.Simple
constructor(public highlight: Highlight) {
super()
}
eq(other: HighlightRangeValue) {
return other.highlight === this.highlight
}
}
const cursorHighlightsState = StateField.define<RangeSet<HighlightRangeValue>>({
@ -101,7 +109,7 @@ const cursorHighlightsState = StateField.define<RangeSet<HighlightRangeValue>>({
}
}
if (tr.docChanged) {
if (tr.docChanged && !tr.annotation(Transaction.remote)) {
value = value.map(tr.changes)
}