Skip to content

Commit cf63859

Browse files
🐛 CodeEdit - Fix ArgumentOutOfRangeException on multiline removal (#72)
1 parent fbb823a commit cf63859

File tree

1 file changed

+8
-1
lines changed

1 file changed

+8
-1
lines changed

src/SharpIDE.Godot/Features/CodeEditor/SharpIdeCodeEdit.cs

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -151,8 +151,15 @@ private void OnLinesEditedFrom(long fromLine, long toLine)
151151
if (_settingWholeDocumentTextSuppressLineEditsEvent) return;
152152
var fromLineText = GetLine((int)fromLine);
153153
var caretPosition = this.GetCaretPosition();
154-
var textFrom0ToCaret = fromLineText[..caretPosition.col];
155154
var caretPositionEnum = LineEditOrigin.Unknown;
155+
156+
if (caretPosition.line != (int)fromLine || caretPosition.col < 0 || caretPosition.col > fromLineText.Length)
157+
{
158+
_syntaxHighlighter.LinesChanged(fromLine, toLine, caretPositionEnum);
159+
return;
160+
}
161+
162+
var textFrom0ToCaret = fromLineText[..caretPosition.col];
156163
if (string.IsNullOrWhiteSpace(textFrom0ToCaret))
157164
{
158165
caretPositionEnum = LineEditOrigin.StartOfLine;

0 commit comments

Comments
 (0)