From de482262e12e989f3d4bede2057d2f0f2402e0ae Mon Sep 17 00:00:00 2001 From: Jesse Duffield Date: Sun, 27 Sep 2020 11:29:10 +1000 Subject: [PATCH] support setting description in custom command --- docs/Custom_Command_Keybindings.md | 2 ++ pkg/gui/custom_commands.go | 8 +++++++- 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/docs/Custom_Command_Keybindings.md b/docs/Custom_Command_Keybindings.md index 1c7ff1292..46b799e07 100644 --- a/docs/Custom_Command_Keybindings.md +++ b/docs/Custom_Command_Keybindings.md @@ -10,6 +10,7 @@ customCommands: - key: 'a' command: "git {{if .SelectedFile.HasUnstagedChanges}} add {{else}} reset {{end}} {{.SelectedFile.Name}}" context: 'files' + description: 'toggle file staged' - key: 'C' command: "git commit" context: 'global' @@ -53,6 +54,7 @@ For a given custom command, here are the allowed fields: | subprocess | whether you want the command to run in a subprocess (necessary if you want to view the output of the command or provide user input) | no | | prompts | a list of prompts that will request user input before running the final command | no | | loadingText | text to display while waiting for command to finish | no | +| description | text to display in the keybindings menu that appears when you press 'x' | no | ### Contexts diff --git a/pkg/gui/custom_commands.go b/pkg/gui/custom_commands.go index 034dd3381..d13c2d918 100644 --- a/pkg/gui/custom_commands.go +++ b/pkg/gui/custom_commands.go @@ -199,6 +199,7 @@ type CustomCommand struct { Subprocess bool `yaml:"subprocess"` Prompts []CustomCommandPrompt `yaml:"prompts"` LoadingText string `yaml:"loadingText"` + Description string `yaml:"description"` } func (gui *Gui) GetCustomCommandKeybindings() []*Binding { @@ -230,13 +231,18 @@ func (gui *Gui) GetCustomCommandKeybindings() []*Binding { contexts = []string{customCommand.Context} } + description := customCommand.Description + if description == "" { + description = customCommand.Command + } + bindings = append(bindings, &Binding{ ViewName: viewName, Contexts: contexts, Key: gui.getKey(customCommand.Key), Modifier: gocui.ModNone, Handler: gui.wrappedHandler(gui.handleCustomCommandKeybinding(customCommand)), - Description: customCommand.Command, + Description: description, }) }