From 2c2436574d77b7f58a17cf99abfd210d96432482 Mon Sep 17 00:00:00 2001 From: Karim Khaleel Date: Mon, 1 Jan 2024 16:52:40 +0300 Subject: Replace copy SHA with copy subject on commit 'y s' --- pkg/commands/git_commands/commit.go | 9 +++++++ pkg/gui/controllers/basic_commits_controller.go | 35 ++++++++++++++++++++----- pkg/i18n/english.go | 8 +++++- pkg/i18n/russian.go | 5 +++- 4 files changed, 48 insertions(+), 9 deletions(-) diff --git a/pkg/commands/git_commands/commit.go b/pkg/commands/git_commands/commit.go index 7a218e4e1..812d2f6b5 100644 --- a/pkg/commands/git_commands/commit.go +++ b/pkg/commands/git_commands/commit.go @@ -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() diff --git a/pkg/gui/controllers/basic_commits_controller.go b/pkg/gui/controllers/basic_commits_controller.go index aec24838b..0e98d7b4e 100644 --- a/pkg/gui/controllers/basic_commits_controller.go +++ b/pkg/gui/controllers/basic_commits_controller.go @@ -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 { diff --git a/pkg/i18n/english.go b/pkg/i18n/english.go index 80e89ceff..3cddfb02f 100644 --- a/pkg/i18n/english.go +++ b/pkg/i18n/english.go @@ -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", diff --git a/pkg/i18n/russian.go b/pkg/i18n/russian.go index e4b67a77e..0e63841b9 100644 --- a/pkg/i18n/russian.go +++ b/pkg/i18n/russian.go @@ -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 коммита в буфер обмена", -- cgit v1.2.3