diff --git a/src/SharpIDE.Application/DependencyInjection.cs b/src/SharpIDE.Application/DependencyInjection.cs index e1d1e6e..5c6ee65 100644 --- a/src/SharpIDE.Application/DependencyInjection.cs +++ b/src/SharpIDE.Application/DependencyInjection.cs @@ -1,6 +1,7 @@ using Microsoft.Extensions.DependencyInjection; using SharpIDE.Application.Features.Analysis; using SharpIDE.Application.Features.Build; +using SharpIDE.Application.Features.Editor; using SharpIDE.Application.Features.Evaluation; using SharpIDE.Application.Features.FilePersistence; using SharpIDE.Application.Features.FileWatching; @@ -35,6 +36,7 @@ public static class DependencyInjection services.AddScoped(); services.AddScoped(); services.AddScoped(); + services.AddScoped(); services.AddLogging(); return services; } diff --git a/src/SharpIDE.Application/Features/Editor/EditorCaretPositionService.cs b/src/SharpIDE.Application/Features/Editor/EditorCaretPositionService.cs new file mode 100644 index 0000000..07f3ba2 --- /dev/null +++ b/src/SharpIDE.Application/Features/Editor/EditorCaretPositionService.cs @@ -0,0 +1,9 @@ +namespace SharpIDE.Application.Features.Editor; + +/// +/// Used by code editor windows to report the current caret position for display elsewhere in the UI +/// +public class EditorCaretPositionService +{ + public (int, int) CaretPosition { get; set; } = (1, 1); +} diff --git a/src/SharpIDE.Godot/Features/BottomBar/EditorLineCharDisplay.cs b/src/SharpIDE.Godot/Features/BottomBar/EditorLineCharDisplay.cs new file mode 100644 index 0000000..cc8a536 --- /dev/null +++ b/src/SharpIDE.Godot/Features/BottomBar/EditorLineCharDisplay.cs @@ -0,0 +1,28 @@ +using Godot; +using SharpIDE.Application.Features.Editor; + +namespace SharpIDE.Godot.Features.BottomBar; + +public partial class EditorLineCharDisplay : HBoxContainer +{ + private Label _label = null!; + [Inject] private readonly EditorCaretPositionService _editorCaretPositionService = null!; + + private (int, int) _currentPositionRendered = (1, 1); + + public override void _Ready() + { + _label = GetNode