feat: copy contents of document (#439)

* feat: copy contents of document

Co-authored-by: bashbunni <bash@charm.sh>

* fix: use atotto/clipboard for copying

Co-authored-by: bashbunni <bash@charm.sh>
This commit is contained in:
Maas Lalani 2023-01-20 11:06:02 -05:00 committed by GitHub
commit 071783d907
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 11 additions and 0 deletions

1
go.mod
View file

@ -3,6 +3,7 @@ module github.com/charmbracelet/glow
go 1.16
require (
github.com/atotto/clipboard v0.1.4
github.com/charmbracelet/bubbles v0.14.0
github.com/charmbracelet/bubbletea v0.23.1
github.com/charmbracelet/charm v0.8.6

View file

@ -7,6 +7,7 @@ import (
"strings"
"time"
"github.com/atotto/clipboard"
"github.com/charmbracelet/bubbles/spinner"
"github.com/charmbracelet/bubbles/textinput"
"github.com/charmbracelet/bubbles/viewport"
@ -289,6 +290,14 @@ func (m pagerModel) update(msg tea.Msg) (pagerModel, tea.Cmd) {
return m, openEditor(m.currentDocument.localPath)
}
case "c":
err := clipboard.WriteAll(m.currentDocument.Body)
if err != nil {
cmds = append(cmds, m.showStatusMessage("Unable to copy contents"))
} else {
cmds = append(cmds, m.showStatusMessage("Copied contents"))
}
case "s":
if m.common.authStatus != authOK {
break
@ -536,6 +545,7 @@ func (m pagerModel) helpView() (s string) {
col1 := []string{
"g/home go to top",
"G/end go to bottom",
"c copy contents",
editOrBlank,
memoOrStash,
"esc back to files",