feat: add yank_id & yank_url for messages text (#521)
This commit is contained in:
parent
a2be9c3329
commit
f9824b1ff2
2 changed files with 40 additions and 11 deletions
|
|
@ -203,8 +203,12 @@ func (mt *MessagesText) onInputCapture(event *tcell.EventKey) *tcell.EventKey {
|
|||
switch event.Name() {
|
||||
case mt.cfg.Keys.MessagesText.SelectPrevious, mt.cfg.Keys.MessagesText.SelectNext, mt.cfg.Keys.MessagesText.SelectFirst, mt.cfg.Keys.MessagesText.SelectLast, mt.cfg.Keys.MessagesText.SelectReply, mt.cfg.Keys.MessagesText.SelectPin:
|
||||
mt._select(event.Name())
|
||||
case mt.cfg.Keys.MessagesText.Yank:
|
||||
mt.yank()
|
||||
case mt.cfg.Keys.MessagesText.YankID:
|
||||
mt.yankID()
|
||||
case mt.cfg.Keys.MessagesText.YankContent:
|
||||
mt.yankContent()
|
||||
case mt.cfg.Keys.MessagesText.YankURL:
|
||||
mt.yankURL()
|
||||
case mt.cfg.Keys.MessagesText.Open:
|
||||
mt.open()
|
||||
case mt.cfg.Keys.MessagesText.Reply:
|
||||
|
|
@ -295,18 +299,40 @@ func (mt *MessagesText) onHighlighted(added, removed, remaining []string) {
|
|||
}
|
||||
}
|
||||
|
||||
func (mt *MessagesText) yank() {
|
||||
func (mt *MessagesText) yankID() {
|
||||
msg, err := mt.getSelectedMessage()
|
||||
if err != nil {
|
||||
slog.Error("failed to get selected message", "err", err)
|
||||
return
|
||||
}
|
||||
|
||||
err = clipboard.WriteAll(msg.Content)
|
||||
if err != nil {
|
||||
if err := clipboard.WriteAll(msg.ID.String()); err != nil {
|
||||
slog.Error("failed to write to clipboard", "err", err)
|
||||
}
|
||||
}
|
||||
|
||||
func (mt *MessagesText) yankContent() {
|
||||
msg, err := mt.getSelectedMessage()
|
||||
if err != nil {
|
||||
slog.Error("failed to get selected message", "err", err)
|
||||
return
|
||||
}
|
||||
|
||||
if err = clipboard.WriteAll(msg.Content); err != nil {
|
||||
slog.Error("failed to write to clipboard", "err", err)
|
||||
}
|
||||
}
|
||||
|
||||
func (mt *MessagesText) yankURL() {
|
||||
msg, err := mt.getSelectedMessage()
|
||||
if err != nil {
|
||||
slog.Error("failed to get selected message", "err", err)
|
||||
return
|
||||
}
|
||||
|
||||
if err = clipboard.WriteAll(msg.URL()); err != nil {
|
||||
slog.Error("failed to write to clipboard", "err", err)
|
||||
}
|
||||
}
|
||||
|
||||
func (mt *MessagesText) open() {
|
||||
|
|
|
|||
|
|
@ -35,9 +35,11 @@ type (
|
|||
Reply string `toml:"reply"`
|
||||
ReplyMention string `toml:"reply_mention"`
|
||||
|
||||
Delete string `toml:"delete"`
|
||||
Yank string `toml:"yank"`
|
||||
Open string `toml:"open"`
|
||||
Delete string `toml:"delete"`
|
||||
YankID string `toml:"yank_id"`
|
||||
YankContent string `toml:"yank_content"`
|
||||
YankURL string `toml:"yank_url"`
|
||||
Open string `toml:"open"`
|
||||
}
|
||||
|
||||
MessageInputKeys struct {
|
||||
|
|
@ -81,9 +83,10 @@ func defaultKeys() Keys {
|
|||
Reply: "Rune[r]",
|
||||
ReplyMention: "Rune[R]",
|
||||
|
||||
Delete: "Rune[d]",
|
||||
Yank: "Rune[y]",
|
||||
Open: "Rune[o]",
|
||||
Delete: "Rune[d]",
|
||||
YankContent: "Rune[y]",
|
||||
YankURL: "Rune[i]",
|
||||
Open: "Rune[o]",
|
||||
},
|
||||
|
||||
MessageInput: MessageInputKeys{
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue