summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKarim Khaleel <code.karim@gmail.com>2024-01-01 16:52:40 +0300
committerKarim Khaleel <code.karim@gmail.com>2024-01-03 02:19:39 +0300
commit2c2436574d77b7f58a17cf99abfd210d96432482 (patch)
tree251a936b3eada88bf544f2a1efc75e3e0c420056
parentd97b37a1785aae221b773a580bd03fbe2f975308 (diff)
Replace copy SHA with copy subject on commit 'y s'
-rw-r--r--pkg/commands/git_commands/commit.go9
-rw-r--r--pkg/gui/controllers/basic_commits_controller.go35
-rw-r--r--pkg/i18n/english.go8
-rw-r--r--pkg/i18n/russian.go5
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,9 +105,22 @@ 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 {
return self.copyCommitURLToClipboard(commit)
@@ -122,13 +135,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 {
return self.copyAuthorToClipboard(commit)
@@ -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 коммита в буфер обмена",