From a1cb792375ac4218963cf82594f653b541149efa Mon Sep 17 00:00:00 2001 From: Matt Parker <61717342+MattParkerDev@users.noreply.github.com> Date: Thu, 18 Dec 2025 11:24:13 +1000 Subject: [PATCH] display caret position on caret change --- .../Features/CodeEditor/SharpIdeCodeEdit.cs | 21 ++++++++----------- 1 file changed, 9 insertions(+), 12 deletions(-) diff --git a/src/SharpIDE.Godot/Features/CodeEditor/SharpIdeCodeEdit.cs b/src/SharpIDE.Godot/Features/CodeEditor/SharpIdeCodeEdit.cs index 2c62cf7..3bfe031 100644 --- a/src/SharpIDE.Godot/Features/CodeEditor/SharpIdeCodeEdit.cs +++ b/src/SharpIDE.Godot/Features/CodeEditor/SharpIdeCodeEdit.cs @@ -31,11 +31,6 @@ public partial class SharpIdeCodeEdit : CodeEdit { [Signal] public delegate void CodeFixesRequestedEventHandler(); - - private int _currentLine; - private int _currentCol; - private int _selectionStartCol; - private int _selectionEndCol; public SharpIdeSolutionModel? Solution { get; set; } public SharpIdeFile SharpIdeFile => _currentFile; @@ -183,7 +178,7 @@ public partial class SharpIdeCodeEdit : CodeEdit private void OnFocusEntered() { // The selected tab changed, report the caret position - _editorCaretPositionService.CaretPosition = GetCaretPosition(); + _editorCaretPositionService.CaretPosition = GetCaretPosition(startAt1: true); } private async void OnBreakpointToggled(long line) @@ -214,11 +209,8 @@ public partial class SharpIdeCodeEdit : CodeEdit private void OnCaretChanged() { - _selectionStartCol = GetSelectionFromColumn(); - _selectionEndCol = GetSelectionToColumn(); - _currentLine = GetCaretLine(); - _currentCol = GetCaretColumn(); - // GD.Print($"Selection changed to line {_currentLine}, start {_selectionStartCol}, end {_selectionEndCol}"); + var caretPosition = GetCaretPosition(startAt1: true); + _editorCaretPositionService.CaretPosition = caretPosition; } private void OnTextChanged() @@ -612,10 +604,15 @@ public partial class SharpIdeCodeEdit : CodeEdit }); } - private (int line, int col) GetCaretPosition() + private (int line, int col) GetCaretPosition(bool startAt1 = false) { var caretColumn = GetCaretColumn(); var caretLine = GetCaretLine(); + if (startAt1) + { + caretColumn += 1; + caretLine += 1; + } return (caretLine, caretColumn); } } \ No newline at end of file