addMultiCursor method
Adds a secondary cursor at the given line and character position.
The position is clamped to valid bounds. Duplicate positions (including the primary cursor) are ignored.
Implementation
void addMultiCursor(int line, int character) {
final clampedLine = line.clamp(0, lineCount - 1);
final lineText = getLineText(clampedLine);
final clampedChar = character.clamp(0, lineText.length);
for (final c in _multiCursors) {
if (c.line == clampedLine && c.character == clampedChar) return;
}
final primaryLine = getLineAtOffset(selection.extentOffset);
final primaryChar =
selection.extentOffset - getLineStartOffset(primaryLine);
if (clampedLine == primaryLine && clampedChar == primaryChar) return;
_multiCursors.add((line: clampedLine, character: clampedChar));
multiCursorsChanged = true;
notifyListeners();
}