Skip to content

Commit f487990

Browse files
committed
feature: auto-open commit message editor
Signed-off-by: leo <[email protected]>
1 parent 2d3e450 commit f487990

File tree

3 files changed

+23
-11
lines changed

3 files changed

+23
-11
lines changed

src/Views/CommitMessageEditor.axaml.cs

Lines changed: 2 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -17,23 +17,14 @@ public void AsStandalone(string file)
1717
{
1818
_onSave = msg => File.WriteAllText(file, msg);
1919
_shouldExitApp = true;
20-
21-
var content = File.ReadAllText(file).ReplaceLineEndings("\n").Trim();
22-
var parts = content.Split('\n', 2);
23-
Editor.SubjectEditor.Text = parts[0];
24-
if (parts.Length > 1)
25-
Editor.DescriptionEditor.Text = parts[1];
20+
Editor.Text = File.ReadAllText(file).ReplaceLineEndings("\n").Trim();
2621
}
2722

2823
public void AsBuiltin(string msg, Action<string> onSave)
2924
{
3025
_onSave = onSave;
3126
_shouldExitApp = false;
32-
33-
var parts = msg.Split('\n', 2);
34-
Editor.SubjectEditor.Text = parts[0];
35-
if (parts.Length > 1)
36-
Editor.DescriptionEditor.Text = parts[1];
27+
Editor.Text = msg.Trim();
3728
}
3829

3930
protected override void OnClosed(EventArgs e)

src/Views/InteractiveRebase.axaml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@
5858
ItemsSource="{Binding Items}"
5959
SelectionMode="Single"
6060
SelectedItem="{Binding SelectedItem, Mode=TwoWay}"
61+
SelectionChanged="OnRowsSelectionChanged"
6162
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
6263
ScrollViewer.VerticalScrollBarVisibility="Auto"
6364
Grid.IsSharedSizeScope="True">

src/Views/InteractiveRebase.axaml.cs

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
using System;
2+
23
using Avalonia;
34
using Avalonia.Controls;
45
using Avalonia.Controls.Shapes;
@@ -99,6 +100,23 @@ private void CloseWindow(object _1, RoutedEventArgs _2)
99100
Close();
100101
}
101102

103+
private void OnRowsSelectionChanged(object sender, SelectionChangedEventArgs e)
104+
{
105+
if (!_firstSelectionChangedHandled &&
106+
sender is InteractiveRebaseListBox list &&
107+
list.SelectedItem is ViewModels.InteractiveRebaseItem item)
108+
{
109+
_firstSelectionChangedHandled = true;
110+
111+
if (item.Action == Models.InteractiveRebaseAction.Reword)
112+
{
113+
var dialog = new CommitMessageEditor();
114+
dialog.AsBuiltin(item.FullMessage, msg => item.FullMessage = msg);
115+
dialog.ShowDialog(this);
116+
}
117+
}
118+
}
119+
102120
private void OnSetupRowHeaderDragDrop(object sender, RoutedEventArgs e)
103121
{
104122
if (sender is Border border)
@@ -242,5 +260,7 @@ private void CreateActionMenuItem(MenuFlyout flyout, ViewModels.InteractiveRebas
242260

243261
flyout.Items.Add(menuItem);
244262
}
263+
264+
private bool _firstSelectionChangedHandled = false;
245265
}
246266
}

0 commit comments

Comments
 (0)