mirror of
https://github.com/sourcegit-scm/sourcegit
synced 2025-06-21 02:15:00 +00:00
- supports to use multi-line as stash message - new style to display stashes Signed-off-by: leo <longshuang@msn.cn>
This commit is contained in:
parent
b06a4cbb8a
commit
6d682ac409
19 changed files with 219 additions and 54 deletions
|
@ -7,9 +7,11 @@ namespace SourceGit.Commands
|
|||
{
|
||||
public QueryStashes(string repo)
|
||||
{
|
||||
_boundary = $"-----BOUNDARY_OF_COMMIT{Guid.NewGuid()}-----";
|
||||
|
||||
WorkingDirectory = repo;
|
||||
Context = repo;
|
||||
Args = "stash list --format=%H%n%P%n%ct%n%gd%n%s";
|
||||
Args = $"stash list --no-show-signature --format=\"%H%n%P%n%ct%n%gd%n%B%n{_boundary}\"";
|
||||
}
|
||||
|
||||
public List<Models.Stash> Result()
|
||||
|
@ -41,22 +43,32 @@ namespace SourceGit.Commands
|
|||
case 3:
|
||||
_current.Name = line;
|
||||
break;
|
||||
case 4:
|
||||
_current.Message = line;
|
||||
default:
|
||||
var boundary = rs.StdOut.IndexOf(_boundary, end + 1, StringComparison.Ordinal);
|
||||
if (boundary > end)
|
||||
{
|
||||
_current.Message = rs.StdOut.Substring(start, boundary - start - 1);
|
||||
end = boundary + _boundary.Length;
|
||||
}
|
||||
else
|
||||
{
|
||||
_current.Message = rs.StdOut.Substring(start);
|
||||
end = rs.StdOut.Length - 2;
|
||||
}
|
||||
|
||||
nextPartIdx = -1;
|
||||
break;
|
||||
}
|
||||
|
||||
nextPartIdx++;
|
||||
if (nextPartIdx > 4)
|
||||
nextPartIdx = 0;
|
||||
|
||||
start = end + 1;
|
||||
if (start >= rs.StdOut.Length - 1)
|
||||
break;
|
||||
|
||||
end = rs.StdOut.IndexOf('\n', start);
|
||||
}
|
||||
|
||||
if (start < rs.StdOut.Length)
|
||||
_current.Message = rs.StdOut.Substring(start);
|
||||
|
||||
return outs;
|
||||
}
|
||||
|
||||
|
@ -69,5 +81,6 @@ namespace SourceGit.Commands
|
|||
}
|
||||
|
||||
private Models.Stash _current = null;
|
||||
private readonly string _boundary;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -461,6 +461,7 @@
|
|||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">Vor {0} Monaten</x:String>
|
||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">Vor {0} Jahren</x:String>
|
||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Gestern</x:String>
|
||||
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">Verwende 'Shift+Enter' um eine neue Zeile einzufügen. 'Enter' ist das Kürzel für den OK Button</x:String>
|
||||
<x:String x:Key="Text.Preferences" xml:space="preserve">Einstellungen</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">OPEN AI</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analysierung des Diff Befehl</x:String>
|
||||
|
@ -643,7 +644,6 @@
|
|||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit:</x:String>
|
||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commit Änderungen rückgängig machen</x:String>
|
||||
<x:String x:Key="Text.Reword" xml:space="preserve">Commit Nachricht umformulieren</x:String>
|
||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">Verwende 'Shift+Enter' um eine neue Zeile einzufügen. 'Enter' ist das Kürzel für den OK Button</x:String>
|
||||
<x:String x:Key="Text.Running" xml:space="preserve">Bitte warten...</x:String>
|
||||
<x:String x:Key="Text.Save" xml:space="preserve">SPEICHERN</x:String>
|
||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">Speichern als...</x:String>
|
||||
|
@ -671,7 +671,7 @@
|
|||
<x:String x:Key="Text.Stash" xml:space="preserve">Stash</x:String>
|
||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Inklusive nicht-verfolgter Dateien</x:String>
|
||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Name:</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Optional. Name dieses Stashes</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Optional. Informationen zu dieses Stashes</x:String>
|
||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Nur gestagte Änderungen</x:String>
|
||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Gestagte und unstagte Änderungen der ausgewähleten Datei(en) werden gestasht!!!</x:String>
|
||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Lokale Änderungen stashen</x:String>
|
||||
|
|
|
@ -476,6 +476,7 @@
|
|||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} years ago</x:String>
|
||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Yesterday</x:String>
|
||||
<x:String x:Key="Text.Preferences" xml:space="preserve">Preferences</x:String>
|
||||
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">Use 'Shift+Enter' to input a new line. 'Enter' is the hotkey of OK button</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analyze Diff Prompt</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI.ApiKey" xml:space="preserve">API Key</x:String>
|
||||
|
@ -663,7 +664,6 @@
|
|||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit:</x:String>
|
||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commit revert changes</x:String>
|
||||
<x:String x:Key="Text.Reword" xml:space="preserve">Reword Commit Message</x:String>
|
||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">Use 'Shift+Enter' to input a new line. 'Enter' is the hotkey of OK button</x:String>
|
||||
<x:String x:Key="Text.Running" xml:space="preserve">Running. Please wait...</x:String>
|
||||
<x:String x:Key="Text.Save" xml:space="preserve">SAVE</x:String>
|
||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">Save As...</x:String>
|
||||
|
@ -689,10 +689,10 @@
|
|||
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">Private SSH key store path</x:String>
|
||||
<x:String x:Key="Text.Start" xml:space="preserve">START</x:String>
|
||||
<x:String x:Key="Text.Stash" xml:space="preserve">Stash</x:String>
|
||||
<x:String x:Key="Text.Stash.Changes" xml:space="preserve">Selected Changes:</x:String>
|
||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Include untracked files</x:String>
|
||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Message:</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Optional. Name of this stash</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Optional. Message of this stash</x:String>
|
||||
<x:String x:Key="Text.Stash.Mode" xml:space="preserve">Mode:</x:String>
|
||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Only staged changes</x:String>
|
||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Both staged and unstaged changes of selected file(s) will be stashed!!!</x:String>
|
||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stash Local Changes</x:String>
|
||||
|
|
|
@ -478,6 +478,7 @@
|
|||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">Hace {0} meses</x:String>
|
||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">Hace {0} años</x:String>
|
||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Ayer</x:String>
|
||||
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">Usa 'Shift+Enter' para introducir una nueva línea. 'Enter' es el atajo del botón OK</x:String>
|
||||
<x:String x:Key="Text.Preferences" xml:space="preserve">Preferencias</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">OPEN AI</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analizar Diff Prompt</x:String>
|
||||
|
@ -666,7 +667,6 @@
|
|||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit:</x:String>
|
||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commit revertir cambios</x:String>
|
||||
<x:String x:Key="Text.Reword" xml:space="preserve">Reescribir Mensaje de Commit</x:String>
|
||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">Usa 'Shift+Enter' para introducir una nueva línea. 'Enter' es el atajo del botón OK</x:String>
|
||||
<x:String x:Key="Text.Running" xml:space="preserve">Ejecutando. Por favor espera...</x:String>
|
||||
<x:String x:Key="Text.Save" xml:space="preserve">GUARDAR</x:String>
|
||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">Guardar Como...</x:String>
|
||||
|
@ -694,7 +694,7 @@
|
|||
<x:String x:Key="Text.Stash" xml:space="preserve">Stash</x:String>
|
||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Incluir archivos no rastreados</x:String>
|
||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Mensaje:</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Opcional. Nombre de este stash</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Opcional. Información de este stash</x:String>
|
||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Solo cambios staged</x:String>
|
||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">¡Tanto los cambios staged como los no staged de los archivos seleccionados serán stashed!</x:String>
|
||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stash Cambios Locales</x:String>
|
||||
|
|
|
@ -444,6 +444,7 @@
|
|||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">il y a {0} mois</x:String>
|
||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">il y a {0} ans</x:String>
|
||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Hier</x:String>
|
||||
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">Utiliser 'Maj+Entrée' pour insérer une nouvelle ligne. 'Entrée' est la touche pour valider</x:String>
|
||||
<x:String x:Key="Text.Preferences" xml:space="preserve">Préférences</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">IA</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analyser Diff Prompt</x:String>
|
||||
|
@ -619,7 +620,6 @@
|
|||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit :</x:String>
|
||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commit les changements de l'annulation</x:String>
|
||||
<x:String x:Key="Text.Reword" xml:space="preserve">Reformuler le message de commit</x:String>
|
||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">Utiliser 'Maj+Entrée' pour insérer une nouvelle ligne. 'Entrée' est la touche pour valider</x:String>
|
||||
<x:String x:Key="Text.Running" xml:space="preserve">En exécution. Veuillez patienter...</x:String>
|
||||
<x:String x:Key="Text.Save" xml:space="preserve">SAUVEGARDER</x:String>
|
||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">Sauvegarder en tant que...</x:String>
|
||||
|
@ -647,7 +647,7 @@
|
|||
<x:String x:Key="Text.Stash" xml:space="preserve">Stash</x:String>
|
||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Inclure les fichiers non-suivis</x:String>
|
||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Message :</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Optionnel. Nom de ce stash</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Optionnel. Information de ce stash</x:String>
|
||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Seulement les changements indexés</x:String>
|
||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Les modifications indexées et non-indexées des fichiers sélectionnés seront stockées!!!</x:String>
|
||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stash les changements locaux</x:String>
|
||||
|
|
|
@ -464,6 +464,7 @@
|
|||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} mesi fa</x:String>
|
||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} anni fa</x:String>
|
||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Ieri</x:String>
|
||||
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">Usa 'Shift+Enter' per inserire una nuova riga. 'Enter' è il tasto rapido per il pulsante OK</x:String>
|
||||
<x:String x:Key="Text.Preferences" xml:space="preserve">Preferenze</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analizza il Prompt Differenza</x:String>
|
||||
|
@ -647,7 +648,6 @@
|
|||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit:</x:String>
|
||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commit delle modifiche di ripristino</x:String>
|
||||
<x:String x:Key="Text.Reword" xml:space="preserve">Modifica Messaggio di Commit</x:String>
|
||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">Usa 'Shift+Enter' per inserire una nuova riga. 'Enter' è il tasto rapido per il pulsante OK</x:String>
|
||||
<x:String x:Key="Text.Running" xml:space="preserve">In esecuzione. Attendere...</x:String>
|
||||
<x:String x:Key="Text.Save" xml:space="preserve">SALVA</x:String>
|
||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">Salva come...</x:String>
|
||||
|
@ -675,7 +675,7 @@
|
|||
<x:String x:Key="Text.Stash" xml:space="preserve">Stasha</x:String>
|
||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Includi file non tracciati</x:String>
|
||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Messaggio:</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Opzionale. Nome di questo stash</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Opzionale. Informazioni di questo stash</x:String>
|
||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Solo modifiche in stage</x:String>
|
||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Sia le modifiche in stage che quelle non in stage dei file selezionati saranno stashate!!!</x:String>
|
||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Stasha Modifiche Locali</x:String>
|
||||
|
|
|
@ -443,6 +443,7 @@
|
|||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} ヶ月前</x:String>
|
||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} 年前</x:String>
|
||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">昨日</x:String>
|
||||
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">改行には'Shift+Enter'キーを使用します。 'Enter"はOKボタンのホットキーとして機能します。</x:String>
|
||||
<x:String x:Key="Text.Preferences" xml:space="preserve">設定</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">差分分析プロンプト</x:String>
|
||||
|
@ -617,7 +618,6 @@
|
|||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">コミット:</x:String>
|
||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">コミットの変更を戻す</x:String>
|
||||
<x:String x:Key="Text.Reword" xml:space="preserve">コミットメッセージを書き直す</x:String>
|
||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">改行には'Shift+Enter'キーを使用します。 'Enter"はOKボタンのホットキーとして機能します。</x:String>
|
||||
<x:String x:Key="Text.Running" xml:space="preserve">実行中です。しばらくお待ちください...</x:String>
|
||||
<x:String x:Key="Text.Save" xml:space="preserve">保存</x:String>
|
||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">名前を付けて保存...</x:String>
|
||||
|
@ -645,7 +645,7 @@
|
|||
<x:String x:Key="Text.Stash" xml:space="preserve">スタッシュ</x:String>
|
||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">追跡されていないファイルを含める</x:String>
|
||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">メッセージ:</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">オプション. このスタッシュの名前を入力</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">オプション. このスタッシュの情報</x:String>
|
||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">ステージされた変更のみ</x:String>
|
||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">選択したファイルの、ステージされた変更とステージされていない変更の両方がスタッシュされます!!!</x:String>
|
||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">ローカルの変更をスタッシュ</x:String>
|
||||
|
|
|
@ -406,6 +406,7 @@
|
|||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} meses atrás</x:String>
|
||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} anos atrás</x:String>
|
||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Ontem</x:String>
|
||||
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">Use 'Shift+Enter' para inserir uma nova linha. 'Enter' é a tecla de atalho do botão OK</x:String>
|
||||
<x:String x:Key="Text.Preferences" xml:space="preserve">Preferências</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">INTELIGÊNCIA ARTIFICIAL</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Prompt para Analisar Diff</x:String>
|
||||
|
@ -563,7 +564,6 @@
|
|||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Commit:</x:String>
|
||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Commitar alterações de reversão</x:String>
|
||||
<x:String x:Key="Text.Reword" xml:space="preserve">Reescrever Mensagem do Commit</x:String>
|
||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">Use 'Shift+Enter' para inserir uma nova linha. 'Enter' é a tecla de atalho do botão OK</x:String>
|
||||
<x:String x:Key="Text.Running" xml:space="preserve">Executando. Por favor, aguarde...</x:String>
|
||||
<x:String x:Key="Text.Save" xml:space="preserve">SALVAR</x:String>
|
||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">Salvar Como...</x:String>
|
||||
|
@ -586,7 +586,7 @@
|
|||
<x:String x:Key="Text.Stash" xml:space="preserve">Stash</x:String>
|
||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">Incluir arquivos não rastreados</x:String>
|
||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">Mensagem:</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Opcional. Nome deste stash</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">Opcional. Informações deste stash</x:String>
|
||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">Apenas mudanças em stage</x:String>
|
||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">Tanto mudanças em stage e fora de stage dos arquivos selecionados serão enviadas para stash!!!</x:String>
|
||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">Guardar Alterações Locais</x:String>
|
||||
|
|
|
@ -476,6 +476,7 @@
|
|||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} месяцев назад</x:String>
|
||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} лет назад</x:String>
|
||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Вчера</x:String>
|
||||
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">Используйте «Shift+Enter» для ввода новой строки. «Enter» - это горячая клавиша кнопки «OK»</x:String>
|
||||
<x:String x:Key="Text.Preferences" xml:space="preserve">Параметры</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">ОТКРЫТЬ ИИ</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Запрос на анализ сравнения</x:String>
|
||||
|
@ -664,7 +665,6 @@
|
|||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Ревизия:</x:String>
|
||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Отмена ревизии</x:String>
|
||||
<x:String x:Key="Text.Reword" xml:space="preserve">Изменить комментарий ревизии</x:String>
|
||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">Используйте «Shift+Enter» для ввода новой строки. «Enter» - это горячая клавиша кнопки «OK»</x:String>
|
||||
<x:String x:Key="Text.Running" xml:space="preserve">Запуск. Подождите пожалуйста...</x:String>
|
||||
<x:String x:Key="Text.Save" xml:space="preserve">СОХРАНИТЬ</x:String>
|
||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">Сохранить как...</x:String>
|
||||
|
|
|
@ -443,6 +443,7 @@
|
|||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} திங்களுக்கு முன்பு</x:String>
|
||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} ஆண்டுகளுக்கு முன்பு</x:String>
|
||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">நேற்று</x:String>
|
||||
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">புதிய வரியை உள்ளிட 'உயர்த்து+நுழை' ஐப் பயன்படுத்தவும். 'நுழை' என்பது சரி பொத்தானின் சூடானவிசை ஆகும்</x:String>
|
||||
<x:String x:Key="Text.Preferences" xml:space="preserve">விருப்பத்தேர்வுகள்</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">செநு</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">வேறுபாடு உடனடியாக பகுப்பாய்வு செய்</x:String>
|
||||
|
@ -618,7 +619,6 @@
|
|||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">உறுதிமொழி:</x:String>
|
||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">பின்வாங்கு மாற்றங்களை உறுதிமொழி</x:String>
|
||||
<x:String x:Key="Text.Reword" xml:space="preserve">மாறுசொல் உறுதிமொழி செய்தி</x:String>
|
||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">புதிய வரியை உள்ளிட 'உயர்த்து+நுழை' ஐப் பயன்படுத்தவும். 'நுழை' என்பது சரி பொத்தானின் சூடானவிசை ஆகும்</x:String>
|
||||
<x:String x:Key="Text.Running" xml:space="preserve">இயங்குகிறது. காத்திருக்கவும்...</x:String>
|
||||
<x:String x:Key="Text.Save" xml:space="preserve">சேமி</x:String>
|
||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">எனச் சேமி...</x:String>
|
||||
|
|
|
@ -448,6 +448,7 @@
|
|||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} місяців тому</x:String>
|
||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} років тому</x:String>
|
||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">Вчора</x:String>
|
||||
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">Використовуйте 'Shift+Enter' для введення нового рядка. 'Enter' - гаряча клавіша кнопки OK</x:String>
|
||||
<x:String x:Key="Text.Preferences" xml:space="preserve">Налаштування</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Промпт для аналізу різниці</x:String>
|
||||
|
@ -623,7 +624,6 @@
|
|||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">Коміт:</x:String>
|
||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">Закомітити зміни скасування</x:String>
|
||||
<x:String x:Key="Text.Reword" xml:space="preserve">Змінити повідомлення коміту</x:String>
|
||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">Використовуйте 'Shift+Enter' для введення нового рядка. 'Enter' - гаряча клавіша кнопки OK</x:String>
|
||||
<x:String x:Key="Text.Running" xml:space="preserve">Виконується. Будь ласка, зачекайте...</x:String>
|
||||
<x:String x:Key="Text.Save" xml:space="preserve">ЗБЕРЕГТИ</x:String>
|
||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">Зберегти як...</x:String>
|
||||
|
|
|
@ -479,6 +479,7 @@
|
|||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0}个月前</x:String>
|
||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0}年前</x:String>
|
||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">昨天</x:String>
|
||||
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">请使用Shift+Enter换行。Enter键已被【确 定】按钮占用。</x:String>
|
||||
<x:String x:Key="Text.Preferences" xml:space="preserve">偏好设置</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">Analyze Diff Prompt</x:String>
|
||||
|
@ -667,7 +668,6 @@
|
|||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">目标提交 :</x:String>
|
||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">回滚后提交更改</x:String>
|
||||
<x:String x:Key="Text.Reword" xml:space="preserve">编辑提交信息</x:String>
|
||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">请使用Shift+Enter换行。Enter键已被【确 定】按钮占用。</x:String>
|
||||
<x:String x:Key="Text.Running" xml:space="preserve">执行操作中,请耐心等待...</x:String>
|
||||
<x:String x:Key="Text.Save" xml:space="preserve">保 存</x:String>
|
||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">另存为...</x:String>
|
||||
|
@ -693,10 +693,10 @@
|
|||
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">SSH密钥文件</x:String>
|
||||
<x:String x:Key="Text.Start" xml:space="preserve">开 始</x:String>
|
||||
<x:String x:Key="Text.Stash" xml:space="preserve">贮藏(stash)</x:String>
|
||||
<x:String x:Key="Text.Stash.Changes" xml:space="preserve">已选择变更 :</x:String>
|
||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">包含未跟踪的文件</x:String>
|
||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">信息 :</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">选填,用于命名此贮藏</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">选填,此贮藏的描述信息</x:String>
|
||||
<x:String x:Key="Text.Stash.Mode" xml:space="preserve">模式 :</x:String>
|
||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">仅贮藏暂存区的变更</x:String>
|
||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">选中文件的所有变更均会被贮藏!</x:String>
|
||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">贮藏本地变更</x:String>
|
||||
|
|
|
@ -479,6 +479,7 @@
|
|||
<x:String x:Key="Text.Period.MonthsAgo" xml:space="preserve">{0} 個月前</x:String>
|
||||
<x:String x:Key="Text.Period.YearsAgo" xml:space="preserve">{0} 年前</x:String>
|
||||
<x:String x:Key="Text.Period.Yesterday" xml:space="preserve">昨天</x:String>
|
||||
<x:String x:Key="Text.PopupEnterKeyTip" xml:space="preserve">請使用 Shift + Enter 換行。Enter 鍵已被 [確定] 按鈕佔用。</x:String>
|
||||
<x:String x:Key="Text.Preferences" xml:space="preserve">偏好設定</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI" xml:space="preserve">AI</x:String>
|
||||
<x:String x:Key="Text.Preferences.AI.AnalyzeDiffPrompt" xml:space="preserve">分析變更差異提示詞</x:String>
|
||||
|
@ -667,7 +668,6 @@
|
|||
<x:String x:Key="Text.Revert.Commit" xml:space="preserve">目標提交:</x:String>
|
||||
<x:String x:Key="Text.Revert.CommitChanges" xml:space="preserve">復原後提交變更</x:String>
|
||||
<x:String x:Key="Text.Reword" xml:space="preserve">編輯提交訊息</x:String>
|
||||
<x:String x:Key="Text.Reword.Tip" xml:space="preserve">請使用 Shift + Enter 換行。Enter 鍵已被 [確定] 按鈕佔用。</x:String>
|
||||
<x:String x:Key="Text.Running" xml:space="preserve">執行操作中,請耐心等待...</x:String>
|
||||
<x:String x:Key="Text.Save" xml:space="preserve">儲存</x:String>
|
||||
<x:String x:Key="Text.SaveAs" xml:space="preserve">另存新檔...</x:String>
|
||||
|
@ -693,10 +693,10 @@
|
|||
<x:String x:Key="Text.SSHKey.Placeholder" xml:space="preserve">SSH 金鑰檔案</x:String>
|
||||
<x:String x:Key="Text.Start" xml:space="preserve">開 始</x:String>
|
||||
<x:String x:Key="Text.Stash" xml:space="preserve">擱置變更 (stash)</x:String>
|
||||
<x:String x:Key="Text.Stash.Changes" xml:space="preserve">選定變更:</x:String>
|
||||
<x:String x:Key="Text.Stash.IncludeUntracked" xml:space="preserve">包含未追蹤的檔案</x:String>
|
||||
<x:String x:Key="Text.Stash.Message" xml:space="preserve">擱置變更訊息:</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">選填,用於命名此擱置變更</x:String>
|
||||
<x:String x:Key="Text.Stash.Message.Placeholder" xml:space="preserve">選填,用於描述此擱置變更</x:String>
|
||||
<x:String x:Key="Text.Stash.Mode" xml:space="preserve">操作模式:</x:String>
|
||||
<x:String x:Key="Text.Stash.OnlyStagedChanges" xml:space="preserve">僅擱置已暫存的變更</x:String>
|
||||
<x:String x:Key="Text.Stash.TipForSelectedFiles" xml:space="preserve">已選取的檔案中的變更均會被擱置!</x:String>
|
||||
<x:String x:Key="Text.Stash.Title" xml:space="preserve">擱置本機變更</x:String>
|
||||
|
|
|
@ -54,8 +54,8 @@ namespace SourceGit.Views
|
|||
var color = COLOR[idx];
|
||||
var hsl = color.ToHsl();
|
||||
var color2 = ActualThemeVariant == ThemeVariant.Dark
|
||||
? new HslColor(hsl.A, hsl.H,hsl.S, hsl.L - 0.1).ToRgb()
|
||||
: new HslColor(hsl.A, hsl.H,hsl.S, hsl.L + 0.1).ToRgb();
|
||||
? new HslColor(hsl.A, hsl.H, hsl.S, hsl.L - 0.1).ToRgb()
|
||||
: new HslColor(hsl.A, hsl.H, hsl.S, hsl.L + 0.1).ToRgb();
|
||||
|
||||
var background = new LinearGradientBrush
|
||||
{
|
||||
|
|
|
@ -21,7 +21,7 @@
|
|||
<v:CommitMessageTextBox Height="120" Margin="8,5,8,0" Text="{Binding Message, Mode=TwoWay}"/>
|
||||
|
||||
<TextBlock Margin="8"
|
||||
Text="{DynamicResource Text.Reword.Tip}"
|
||||
Text="{DynamicResource Text.PopupEnterKeyTip}"
|
||||
TextWrapping="Wrap"
|
||||
Foreground="{DynamicResource Brush.FG2}"/>
|
||||
</StackPanel>
|
||||
|
|
|
@ -31,7 +31,7 @@
|
|||
<v:CommitMessageTextBox Height="120" Margin="0,4,0,0" Text="{Binding Message, Mode=TwoWay}"/>
|
||||
|
||||
<TextBlock Margin="0,6,0,0"
|
||||
Text="{DynamicResource Text.Reword.Tip}"
|
||||
Text="{DynamicResource Text.PopupEnterKeyTip}"
|
||||
TextWrapping="Wrap"
|
||||
Foreground="{DynamicResource Brush.FG2}"/>
|
||||
</StackPanel>
|
||||
|
|
|
@ -12,23 +12,12 @@
|
|||
<TextBlock FontSize="18"
|
||||
Classes="bold"
|
||||
Text="{DynamicResource Text.Stash.Title}"/>
|
||||
<Grid Margin="8,16,0,0" RowDefinitions="32,32,Auto,Auto,Auto" ColumnDefinitions="120,*">
|
||||
<Grid Margin="8,20,0,0" RowDefinitions="32,Auto,Auto,Auto,Auto,Auto" ColumnDefinitions="100,356">
|
||||
<TextBlock Grid.Row="0" Grid.Column="0"
|
||||
HorizontalAlignment="Right"
|
||||
Margin="8,0"
|
||||
Text="{DynamicResource Text.Stash.Message}"/>
|
||||
<TextBox Grid.Row="0" Grid.Column="1"
|
||||
Height="26"
|
||||
CornerRadius="3"
|
||||
Text="{Binding Message, Mode=TwoWay}"
|
||||
Watermark="{DynamicResource Text.Stash.Message.Placeholder}"
|
||||
v:AutoFocusBehaviour.IsEnabled="True"/>
|
||||
|
||||
<TextBlock Grid.Row="1" Grid.Column="0"
|
||||
HorizontalAlignment="Right"
|
||||
Margin="8,0"
|
||||
Text="{DynamicResource Text.Stash.Changes}"/>
|
||||
<ComboBox Grid.Row="1" Grid.Column="1"
|
||||
Text="{DynamicResource Text.Stash.Mode}"/>
|
||||
<ComboBox Grid.Row="0" Grid.Column="1"
|
||||
MinHeight="28"
|
||||
Padding="8,0"
|
||||
ItemsSource="{Binding Source={x:Static m:DealWithChangesAfterStashing.Supported}}"
|
||||
|
@ -48,15 +37,38 @@
|
|||
</DataTemplate>
|
||||
</ComboBox.ItemTemplate>
|
||||
</ComboBox>
|
||||
|
||||
<TextBlock Grid.Row="1" Grid.Column="0"
|
||||
HorizontalAlignment="Right" VerticalAlignment="Top"
|
||||
Margin="0,8,8,0"
|
||||
Text="{DynamicResource Text.Stash.Message}"/>
|
||||
<TextBox Grid.Row="1" Grid.Column="1"
|
||||
Height="100"
|
||||
Margin="0,4,0,0"
|
||||
CornerRadius="3"
|
||||
Text="{Binding Message, Mode=TwoWay}"
|
||||
Watermark="{DynamicResource Text.Stash.Message.Placeholder}"
|
||||
AcceptsReturn="True"
|
||||
AcceptsTab="True"
|
||||
VerticalContentAlignment="Top"
|
||||
Padding="4"
|
||||
v:AutoFocusBehaviour.IsEnabled="True"/>
|
||||
|
||||
<CheckBox Grid.Row="2" Grid.Column="1"
|
||||
<TextBlock Grid.Row="2" Grid.Column="1"
|
||||
Classes="small"
|
||||
Margin="0,2,4,4"
|
||||
Text="{DynamicResource Text.PopupEnterKeyTip}"
|
||||
TextWrapping="Wrap"
|
||||
Foreground="{DynamicResource Brush.FG2}"/>
|
||||
|
||||
<CheckBox Grid.Row="3" Grid.Column="1"
|
||||
Height="32"
|
||||
Content="{DynamicResource Text.Stash.OnlyStagedChanges}"
|
||||
IsChecked="{Binding OnlyStaged, Mode=TwoWay}"
|
||||
IsVisible="{Binding !HasSelectedFiles}"
|
||||
ToolTip.Tip="--staged"/>
|
||||
|
||||
<CheckBox Grid.Row="3" Grid.Column="1"
|
||||
<CheckBox Grid.Row="4" Grid.Column="1"
|
||||
Height="32"
|
||||
Content="{DynamicResource Text.Stash.IncludeUntracked}"
|
||||
IsChecked="{Binding IncludeUntracked, Mode=TwoWay}"
|
||||
|
@ -69,7 +81,7 @@
|
|||
</CheckBox.IsVisible>
|
||||
</CheckBox>
|
||||
|
||||
<TextBlock Grid.Row="4" Grid.Column="1"
|
||||
<TextBlock Grid.Row="5" Grid.Column="1"
|
||||
Margin="0,4,0,0"
|
||||
Text="{DynamicResource Text.Stash.TipForSelectedFiles}"
|
||||
TextWrapping="Wrap"
|
||||
|
|
135
src/Views/StashSubjectPresenter.cs
Normal file
135
src/Views/StashSubjectPresenter.cs
Normal file
|
@ -0,0 +1,135 @@
|
|||
using System;
|
||||
using System.Globalization;
|
||||
using System.Text.RegularExpressions;
|
||||
|
||||
using Avalonia;
|
||||
using Avalonia.Controls;
|
||||
using Avalonia.Media;
|
||||
|
||||
namespace SourceGit.Views
|
||||
{
|
||||
public partial class StashSubjectPresenter : Control
|
||||
{
|
||||
public static readonly StyledProperty<FontFamily> FontFamilyProperty =
|
||||
AvaloniaProperty.Register<StashSubjectPresenter, FontFamily>(nameof(FontFamily));
|
||||
|
||||
public FontFamily FontFamily
|
||||
{
|
||||
get => GetValue(FontFamilyProperty);
|
||||
set => SetValue(FontFamilyProperty, value);
|
||||
}
|
||||
|
||||
public static readonly StyledProperty<double> FontSizeProperty =
|
||||
AvaloniaProperty.Register<StashSubjectPresenter, double>(nameof(FontSize), 13);
|
||||
|
||||
public double FontSize
|
||||
{
|
||||
get => GetValue(FontSizeProperty);
|
||||
set => SetValue(FontSizeProperty, value);
|
||||
}
|
||||
|
||||
public static readonly StyledProperty<IBrush> ForegroundProperty =
|
||||
AvaloniaProperty.Register<StashSubjectPresenter, IBrush>(nameof(Foreground), Brushes.White);
|
||||
|
||||
public IBrush Foreground
|
||||
{
|
||||
get => GetValue(ForegroundProperty);
|
||||
set => SetValue(ForegroundProperty, value);
|
||||
}
|
||||
|
||||
public static readonly StyledProperty<IBrush> PrefixBackgroundProperty =
|
||||
AvaloniaProperty.Register<StashSubjectPresenter, IBrush>(nameof(PrefixBackground), Brushes.Transparent);
|
||||
|
||||
public IBrush PrefixBackground
|
||||
{
|
||||
get => GetValue(PrefixBackgroundProperty);
|
||||
set => SetValue(PrefixBackgroundProperty, value);
|
||||
}
|
||||
|
||||
public static readonly StyledProperty<string> MessageProperty =
|
||||
AvaloniaProperty.Register<StashSubjectPresenter, string>(nameof(Message));
|
||||
|
||||
public string Message
|
||||
{
|
||||
get => GetValue(MessageProperty);
|
||||
set => SetValue(MessageProperty, value);
|
||||
}
|
||||
|
||||
public override void Render(DrawingContext context)
|
||||
{
|
||||
base.Render(context);
|
||||
|
||||
var message = Message ?? string.Empty;
|
||||
if (string.IsNullOrEmpty(message))
|
||||
return;
|
||||
|
||||
var subjectIdx = message.IndexOf('\n', StringComparison.Ordinal);
|
||||
var subject = subjectIdx > 0 ? message.Substring(0, subjectIdx).Trim() : message;
|
||||
|
||||
var typeface = new Typeface(FontFamily, FontStyle.Normal, FontWeight.Normal);
|
||||
var foreground = Foreground;
|
||||
var x = 0.0;
|
||||
var h = Bounds.Height;
|
||||
var prefix = null as FormattedText;
|
||||
|
||||
var match = REG_KEYWORD_ON().Match(subject);
|
||||
if (match.Success)
|
||||
{
|
||||
prefix = new FormattedText(match.Groups[1].Value, CultureInfo.CurrentCulture, FlowDirection.LeftToRight, typeface, 11, foreground);
|
||||
subject = subject.Substring(match.Length);
|
||||
}
|
||||
else
|
||||
{
|
||||
match = REG_KEYWORD_WIP().Match(subject);
|
||||
if (match.Success)
|
||||
{
|
||||
prefix = new FormattedText($"WIP | {match.Groups[1].Value}", CultureInfo.CurrentCulture, FlowDirection.LeftToRight, typeface, 11, foreground);
|
||||
subject = subject.Substring(match.Length);
|
||||
}
|
||||
}
|
||||
|
||||
if (prefix != null)
|
||||
{
|
||||
var pw = prefix.WidthIncludingTrailingWhitespace;
|
||||
var ph = prefix.Height;
|
||||
var bh = ph + 4;
|
||||
var bw = pw + 12;
|
||||
|
||||
context.DrawRectangle(PrefixBackground, null, new RoundedRect(new Rect(0, (h - bh) * 0.5, bw, bh), new CornerRadius(bh * 0.5)));
|
||||
context.DrawText(prefix, new Point(6, (h - ph) * 0.5));
|
||||
x = bw + 4;
|
||||
}
|
||||
|
||||
var body = new FormattedText(subject, CultureInfo.CurrentCulture, FlowDirection.LeftToRight, typeface, FontSize, foreground);
|
||||
context.DrawText(body, new Point(x, (h - body.Height) * 0.5));
|
||||
}
|
||||
|
||||
protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change)
|
||||
{
|
||||
base.OnPropertyChanged(change);
|
||||
|
||||
if (change.Property == MessageProperty ||
|
||||
change.Property == FontFamilyProperty ||
|
||||
change.Property == FontSizeProperty ||
|
||||
change.Property == ForegroundProperty ||
|
||||
change.Property == PrefixBackgroundProperty)
|
||||
{
|
||||
InvalidateVisual();
|
||||
}
|
||||
}
|
||||
|
||||
protected override Size MeasureOverride(Size availableSize)
|
||||
{
|
||||
var typeface = new Typeface(FontFamily, FontStyle.Normal, FontWeight.Normal);
|
||||
var test = new FormattedText("fgl|", CultureInfo.CurrentCulture, FlowDirection.LeftToRight, typeface, FontSize, Brushes.White);
|
||||
var h = Math.Max(18, test.Height);
|
||||
return new Size(availableSize.Width, h);
|
||||
}
|
||||
|
||||
[GeneratedRegex(@"^On ([^\s]+)\: ")]
|
||||
private static partial Regex REG_KEYWORD_ON();
|
||||
|
||||
[GeneratedRegex(@"^WIP on ([^\s]+)\: ([a-f0-9]{6,40}) ")]
|
||||
private static partial Regex REG_KEYWORD_WIP();
|
||||
}
|
||||
}
|
|
@ -95,7 +95,12 @@
|
|||
<TextBlock Grid.Column="1" Classes="primary" Text="{Binding TimeStr}" Foreground="{DynamicResource Brush.FG2}" Margin="8,0,0,0"/>
|
||||
</Grid>
|
||||
|
||||
<TextBlock Grid.Row="1" Classes="primary" Text="{Binding Message}" VerticalAlignment="Bottom"/>
|
||||
<v:StashSubjectPresenter Grid.Row="1"
|
||||
Message="{Binding Message}"
|
||||
Foreground="{DynamicResource Brush.FG1}"
|
||||
FontSize="{Binding Source={x:Static vm:Preferences.Instance}, Path=DefaultFontSize}"
|
||||
PrefixBackground="{DynamicResource Brush.InlineCode}"
|
||||
VerticalAlignment="Bottom"/>
|
||||
</Grid>
|
||||
</Border>
|
||||
</DataTemplate>
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue