Skip to content

Commit 785927d

Browse files
committed
refactor: rewrite the commit message editor
Signed-off-by: leo <longshuang@msn.cn>
1 parent 9f541bd commit 785927d

14 files changed

+301
-300
lines changed

src/Resources/Locales/en_US.axaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,8 @@
179179
<x:String x:Key="Text.CommitDetail.Info.SHA" xml:space="preserve">SHA</x:String>
180180
<x:String x:Key="Text.CommitDetail.Info.Signer" xml:space="preserve">Signer:</x:String>
181181
<x:String x:Key="Text.CommitDetail.Info.WebLinks" xml:space="preserve">Open in Browser</x:String>
182-
<x:String x:Key="Text.CommitMessageTextBox.MessagePlaceholder" xml:space="preserve">Description</x:String>
183-
<x:String x:Key="Text.CommitMessageTextBox.PasteAndReplaceAll" xml:space="preserve">Paste (Replace all)</x:String>
182+
<x:String x:Key="Text.CommitMessageTextBox.Placeholder" xml:space="preserve">Enter commit message. Please use an empty-line to seperate subject and description!</x:String>
184183
<x:String x:Key="Text.CommitMessageTextBox.SubjectCount" xml:space="preserve">SUBJECT</x:String>
185-
<x:String x:Key="Text.CommitMessageTextBox.SubjectPlaceholder" xml:space="preserve">Enter commit subject</x:String>
186184
<x:String x:Key="Text.Configure" xml:space="preserve">Repository Configure</x:String>
187185
<x:String x:Key="Text.Configure.CommitMessageTemplate" xml:space="preserve">COMMIT TEMPLATE</x:String>
188186
<x:String x:Key="Text.Configure.CommitMessageTemplate.BuiltinVars" xml:space="preserve">Built-in parameters:

src/Resources/Locales/zh_CN.axaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,8 @@
183183
<x:String x:Key="Text.CommitDetail.Info.SHA" xml:space="preserve">提交指纹</x:String>
184184
<x:String x:Key="Text.CommitDetail.Info.Signer" xml:space="preserve">签名者 :</x:String>
185185
<x:String x:Key="Text.CommitDetail.Info.WebLinks" xml:space="preserve">浏览器中查看</x:String>
186-
<x:String x:Key="Text.CommitMessageTextBox.MessagePlaceholder" xml:space="preserve">详细描述</x:String>
187-
<x:String x:Key="Text.CommitMessageTextBox.PasteAndReplaceAll" xml:space="preserve">粘贴(替换全部)</x:String>
186+
<x:String x:Key="Text.CommitMessageTextBox.Placeholder" xml:space="preserve">请输入提交的信息。注意:主题与具体描述中间需要空白行分隔!</x:String>
188187
<x:String x:Key="Text.CommitMessageTextBox.SubjectCount" xml:space="preserve">主题</x:String>
189-
<x:String x:Key="Text.CommitMessageTextBox.SubjectPlaceholder" xml:space="preserve">填写提交信息主题</x:String>
190188
<x:String x:Key="Text.Configure" xml:space="preserve">仓库配置</x:String>
191189
<x:String x:Key="Text.Configure.CommitMessageTemplate" xml:space="preserve">提交信息模板</x:String>
192190
<x:String x:Key="Text.Configure.CommitMessageTemplate.BuiltinVars" xml:space="preserve">内置变量:

src/Resources/Locales/zh_TW.axaml

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -183,10 +183,8 @@
183183
<x:String x:Key="Text.CommitDetail.Info.SHA" xml:space="preserve">提交編號</x:String>
184184
<x:String x:Key="Text.CommitDetail.Info.Signer" xml:space="preserve">簽署人:</x:String>
185185
<x:String x:Key="Text.CommitDetail.Info.WebLinks" xml:space="preserve">在瀏覽器中檢視</x:String>
186-
<x:String x:Key="Text.CommitMessageTextBox.MessagePlaceholder" xml:space="preserve">詳細描述</x:String>
187-
<x:String x:Key="Text.CommitMessageTextBox.PasteAndReplaceAll" xml:space="preserve">貼上 (全部取代)</x:String>
186+
<x:String x:Key="Text.CommitMessageTextBox.Placeholder" xml:space="preserve">請輸入提交訊息。注意:主題與詳細訊息之間必須留一行空行。</x:String>
188187
<x:String x:Key="Text.CommitMessageTextBox.SubjectCount" xml:space="preserve">標題</x:String>
189-
<x:String x:Key="Text.CommitMessageTextBox.SubjectPlaceholder" xml:space="preserve">填寫提交訊息標題</x:String>
190188
<x:String x:Key="Text.Configure" xml:space="preserve">存放庫設定</x:String>
191189
<x:String x:Key="Text.Configure.CommitMessageTemplate" xml:space="preserve">提交訊息範本</x:String>
192190
<x:String x:Key="Text.Configure.CommitMessageTemplate.BuiltinVars" xml:space="preserve">內建參數:

src/Views/CommitMessageEditor.axaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@
3636
</Grid>
3737

3838
<StackPanel Grid.Row="1" Orientation="Vertical" Margin="8">
39-
<v:CommitMessageTextBox x:Name="Editor" Height="400"/>
39+
<v:CommitMessageToolBox x:Name="Editor" Height="400"/>
4040
<Button Classes="flat primary"
4141
Width="80"
4242
Margin="0,8,0,4"

src/Views/CommitMessageEditor.axaml.cs

Lines changed: 3 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -43,11 +43,7 @@ public void AsStandalone(string file)
4343
_onSave = msg => File.WriteAllText(file, msg);
4444
_shouldExitApp = true;
4545

46-
var content = File.ReadAllText(file).ReplaceLineEndings("\n").Trim();
47-
var parts = content.Split('\n', 2);
48-
Editor.SubjectEditor.Text = parts[0];
49-
if (parts.Length > 1)
50-
Editor.DescriptionEditor.Text = parts[1].Trim();
46+
Editor.CommitMessage = File.ReadAllText(file).ReplaceLineEndings("\n").Trim();
5147
}
5248

5349
public void AsBuiltin(string conventionalTypesOverride, string msg, Action<string> onSave)
@@ -57,10 +53,7 @@ public void AsBuiltin(string conventionalTypesOverride, string msg, Action<strin
5753
_onSave = onSave;
5854
_shouldExitApp = false;
5955

60-
var parts = msg.Split('\n', 2);
61-
Editor.SubjectEditor.Text = parts[0];
62-
if (parts.Length > 1)
63-
Editor.DescriptionEditor.Text = parts[1].Trim();
56+
Editor.CommitMessage = msg;
6457
}
6558

6659
protected override void OnClosed(EventArgs e)
@@ -73,7 +66,7 @@ protected override void OnClosed(EventArgs e)
7366

7467
private void SaveAndClose(object _1, RoutedEventArgs _2)
7568
{
76-
_onSave?.Invoke(Editor.Text);
69+
_onSave?.Invoke(Editor.CommitMessage);
7770
_exitCode = 0;
7871
Close();
7972
}

src/Views/CommitMessageTextBox.axaml

Lines changed: 0 additions & 133 deletions
This file was deleted.
Lines changed: 82 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,82 @@
1+
<UserControl xmlns="https://github.com/avaloniaui"
2+
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
3+
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
4+
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
5+
xmlns:c="using:SourceGit.Converters"
6+
xmlns:vm="using:SourceGit.ViewModels"
7+
xmlns:v="using:SourceGit.Views"
8+
mc:Ignorable="d" d:DesignWidth="800" d:DesignHeight="450"
9+
x:Class="SourceGit.Views.CommitMessageToolBox"
10+
x:Name="ThisControl">
11+
<Border Background="{DynamicResource Brush.Contents}"
12+
BorderThickness="1"
13+
BorderBrush="{DynamicResource Brush.Border2}"
14+
CornerRadius="4">
15+
<Grid RowDefinitions="*,1,24">
16+
<v:CommitMessageTextEditor Grid.Row="0"
17+
x:Name="Editor"
18+
CommitMessage="{Binding #ThisControl.CommitMessage, Mode=TwoWay}"
19+
SubjectLineBrush="{DynamicResource Brush.Border2}"
20+
Foreground="{DynamicResource Brush.FG1}"
21+
FontFamily="{DynamicResource Fonts.Default}"
22+
FontSize="{Binding Source={x:Static vm:Preferences.Instance}, Path=EditorFontSize}"
23+
Tag="{Binding Source={x:Static v:StealHotKey.Enter}}"/>
24+
25+
<Rectangle Grid.Row="1"
26+
Height="1"
27+
HorizontalAlignment="Stretch"
28+
VerticalAlignment="Center"
29+
IsHitTestVisible="False"
30+
Fill="{DynamicResource Brush.Border2}"/>
31+
32+
<Border Grid.Row="2"
33+
Background="{DynamicResource Brush.Window}"
34+
BorderThickness="0"
35+
CornerRadius="0,0,4,4">
36+
<Grid ColumnDefinitions="Auto,Auto,Auto,*" Margin="0,4">
37+
<Button Grid.Column="0"
38+
Classes="icon_button"
39+
Width="24"
40+
Margin="0,0,4,0" Padding="0"
41+
Click="OnOpenCommitMessagePicker"
42+
IsVisible="{Binding #ThisControl.ShowAdvancedOptions}"
43+
ToolTip.Tip="{DynamicResource Text.WorkingCopy.CommitMessageHelper}">
44+
<Path Width="12" Height="12" Data="{StaticResource Icons.Menu}"/>
45+
</Button>
46+
47+
<Button Grid.Column="1"
48+
Classes="icon_button"
49+
Width="24"
50+
Margin="0,0,4,0" Padding="0"
51+
Click="OnOpenOpenAIHelper"
52+
IsVisible="{Binding #ThisControl.ShowAdvancedOptions}"
53+
ToolTip.Tip="{DynamicResource Text.AIAssistant.Tip}">
54+
<Path Width="13" Height="13" Data="{StaticResource Icons.AIAssist}"/>
55+
</Button>
56+
57+
<Button Grid.Column="2"
58+
Classes="icon_button"
59+
Width="24"
60+
Margin="0,0,4,0" Padding="0"
61+
Click="OnOpenConventionalCommitHelper"
62+
ToolTip.Tip="{DynamicResource Text.ConventionalCommit}">
63+
<Path Width="13" Height="13" Margin="0,1,0,0" Data="{StaticResource Icons.CommitMessageGenerator}"/>
64+
</Button>
65+
66+
<StackPanel Grid.Column="3"
67+
Margin="0,0,6,0"
68+
HorizontalAlignment="Right"
69+
VerticalAlignment="Center"
70+
Orientation="Horizontal">
71+
<TextBlock Classes="info_label" FontSize="13" HorizontalAlignment="Left" Text="{DynamicResource Text.CommitMessageTextBox.SubjectCount}"/>
72+
<TextBlock Margin="8,0,0,0" FontSize="11" Text="{Binding #Editor.SubjectLength}" IsVisible="{Binding #Editor.SubjectLength, Converter={x:Static c:IntConverters.IsSubjectLengthGood}}" VerticalAlignment="Center"/>
73+
<TextBlock Margin="8,0,0,0" FontSize="11" Foreground="DarkGoldenrod" Text="{Binding #Editor.SubjectLength}" IsVisible="{Binding #Editor.SubjectLength, Converter={x:Static c:IntConverters.IsSubjectLengthBad}}" VerticalAlignment="Center"/>
74+
<TextBlock FontSize="11" Text="/" VerticalAlignment="Center"/>
75+
<TextBlock FontSize="11" Text="{Binding Source={x:Static vm:Preferences.Instance}, Path=SubjectGuideLength}" VerticalAlignment="Center"/>
76+
<Path Width="10" Height="10" Margin="4,0,0,0" Data="{StaticResource Icons.Error}" Fill="DarkGoldenrod" IsVisible="{Binding #Editor.SubjectLength, Converter={x:Static c:IntConverters.IsSubjectLengthBad}}"/>
77+
</StackPanel>
78+
</Grid>
79+
</Border>
80+
</Grid>
81+
</Border>
82+
</UserControl>

0 commit comments

Comments
 (0)