Replace copy SHA with copy subject on commit 'y s'

This commit is contained in:
Karim Khaleel 2024-01-01 16:52:40 +03:00
parent d97b37a178
commit 2c2436574d
4 changed files with 48 additions and 9 deletions

View file

@ -146,6 +146,15 @@ func (self *CommitCommands) GetCommitMessage(commitSha string) (string, error) {
return strings.TrimSpace(message), err
}
func (self *CommitCommands) GetCommitSubject(commitSha string) (string, error) {
cmdArgs := NewGitCmd("log").
Arg("--format=%s", "--max-count=1", commitSha).
ToArgv()
subject, err := self.cmd.New(cmdArgs).DontLog().RunWithOutput()
return strings.TrimSpace(subject), err
}
func (self *CommitCommands) GetCommitDiff(commitSha string) (string, error) {
cmdArgs := NewGitCmd("show").Arg("--no-color", commitSha).ToArgv()

View file

@ -105,8 +105,21 @@ func (self *BasicCommitsController) copyCommitAttribute(commit *models.Commit) e
OnPress: func() error {
return self.copyCommitSHAToClipboard(commit)
},
},
{
Label: self.c.Tr.CommitSubject,
OnPress: func() error {
return self.copyCommitSubjectToClipboard(commit)
},
Key: 's',
},
{
Label: self.c.Tr.CommitMessage,
OnPress: func() error {
return self.copyCommitMessageToClipboard(commit)
},
Key: 'm',
},
{
Label: self.c.Tr.CommitURL,
OnPress: func() error {
@ -121,13 +134,6 @@ func (self *BasicCommitsController) copyCommitAttribute(commit *models.Commit) e
},
Key: 'd',
},
{
Label: self.c.Tr.CommitMessage,
OnPress: func() error {
return self.copyCommitMessageToClipboard(commit)
},
Key: 'm',
},
{
Label: self.c.Tr.CommitAuthor,
OnPress: func() error {
@ -211,6 +217,21 @@ func (self *BasicCommitsController) copyCommitMessageToClipboard(commit *models.
return nil
}
func (self *BasicCommitsController) copyCommitSubjectToClipboard(commit *models.Commit) error {
message, err := self.c.Git().Commit.GetCommitSubject(commit.Sha)
if err != nil {
return self.c.Error(err)
}
self.c.LogAction(self.c.Tr.Actions.CopyCommitSubjectToClipboard)
if err := self.c.OS().CopyToClipboard(message); err != nil {
return self.c.Error(err)
}
self.c.Toast(self.c.Tr.CommitSubjectCopiedToClipboard)
return nil
}
func (self *BasicCommitsController) openInBrowser(commit *models.Commit) error {
url, err := self.c.Helpers().Host.GetCommitURL(commit.Sha)
if err != nil {

View file

@ -462,6 +462,7 @@ type TranslationSet struct {
CommitURL string
CopyCommitMessageToClipboard string
CommitMessage string
CommitSubject string
CommitAuthor string
CopyCommitAttributeToClipboard string
CopyBranchNameToClipboard string
@ -519,6 +520,7 @@ type TranslationSet struct {
CommitSHACopiedToClipboard string
CommitURLCopiedToClipboard string
CommitMessageCopiedToClipboard string
CommitSubjectCopiedToClipboard string
CommitAuthorCopiedToClipboard string
PatchCopiedToClipboard string
CopiedToClipboard string
@ -707,6 +709,7 @@ type Actions struct {
MoveCommitUp string
MoveCommitDown string
CopyCommitMessageToClipboard string
CopyCommitSubjectToClipboard string
CopyCommitDiffToClipboard string
CopyCommitSHAToClipboard string
CopyCommitURLToClipboard string
@ -1277,7 +1280,8 @@ func EnglishTranslationSet() TranslationSet {
CommitSha: "Commit SHA",
CommitURL: "Commit URL",
CopyCommitMessageToClipboard: "Copy commit message to clipboard",
CommitMessage: "Commit message",
CommitMessage: "Full commit message",
CommitSubject: "Commit subject",
CommitAuthor: "Commit author",
CopyCommitAttributeToClipboard: "Copy commit attribute",
CopyBranchNameToClipboard: "Copy branch name to clipboard",
@ -1334,6 +1338,7 @@ func EnglishTranslationSet() TranslationSet {
CommitSHACopiedToClipboard: "Commit SHA copied to clipboard",
CommitURLCopiedToClipboard: "Commit URL copied to clipboard",
CommitMessageCopiedToClipboard: "Commit message copied to clipboard",
CommitSubjectCopiedToClipboard: "Commit subject copied to clipboard",
CommitAuthorCopiedToClipboard: "Commit author copied to clipboard",
PatchCopiedToClipboard: "Patch copied to clipboard",
CopiedToClipboard: "Copied to clipboard",
@ -1478,6 +1483,7 @@ func EnglishTranslationSet() TranslationSet {
CreateLightweightTag: "Create lightweight tag",
CreateAnnotatedTag: "Create annotated tag",
CopyCommitMessageToClipboard: "Copy commit message to clipboard",
CopyCommitSubjectToClipboard: "Copy commit subject to clipboard",
CopyCommitDiffToClipboard: "Copy commit diff to clipboard",
CopyCommitSHAToClipboard: "Copy commit SHA to clipboard",
CopyCommitURLToClipboard: "Copy commit URL to clipboard",

View file

@ -435,7 +435,8 @@ func RussianTranslationSet() TranslationSet {
CommitSha: "SHA коммита",
CommitURL: "URL коммита",
CopyCommitMessageToClipboard: "Скопировать сообщение коммита в буфер обмена",
CommitMessage: "Сообщение коммита",
CommitMessage: "Полное сообщение коммита",
CommitSubject: "Тема коммита",
CommitAuthor: "Автор коммита",
CopyCommitAttributeToClipboard: "Скопировать атрибут коммита",
CopyBranchNameToClipboard: "Скопировать название ветки в буфер обмена",
@ -492,6 +493,7 @@ func RussianTranslationSet() TranslationSet {
CommitSHACopiedToClipboard: "SHA коммита скопировано в буфер обмена",
CommitURLCopiedToClipboard: "URL коммита скопирован в буфер обмена",
CommitMessageCopiedToClipboard: "Сообщение коммита скопировано в буфер обмена",
CommitSubjectCopiedToClipboard: "Тема коммита скопирована в буфер обмена",
CommitAuthorCopiedToClipboard: "Автор коммита скопирован в буфер обмена",
PatchCopiedToClipboard: "Патч скопирован в буфер обмена",
CopiedToClipboard: "Скопировано в буфер обмена",
@ -586,6 +588,7 @@ func RussianTranslationSet() TranslationSet {
CreateLightweightTag: "Создать легковесный тег",
CreateAnnotatedTag: "Создать аннотированный тег",
CopyCommitMessageToClipboard: "Скопировать сообщение коммита в буфер обмена",
CopyCommitSubjectToClipboard: "Скопировать тему коммита в буфер обмена",
CopyCommitDiffToClipboard: "Скопировать сравнения коммита в буфер обмена",
CopyCommitSHAToClipboard: "Скопировать SHA коммита в буфер обмена",
CopyCommitURLToClipboard: "Скопировать URL коммита в буфер обмена",