mirror of
https://github.com/walles/moar.git
synced 2024-10-26 13:00:40 +03:00
Add editor launching placeholder code
This commit is contained in:
parent
eae1915b5e
commit
df79efefa7
@ -101,6 +101,8 @@ type Pager struct {
|
||||
//
|
||||
// Ref: https://github.com/walles/moar/issues/175
|
||||
marks map[rune]scrollPosition
|
||||
|
||||
AfterExit func() error
|
||||
}
|
||||
|
||||
type _PreHelpState struct {
|
||||
|
@ -1,6 +1,8 @@
|
||||
package m
|
||||
|
||||
import (
|
||||
"fmt"
|
||||
|
||||
log "github.com/sirupsen/logrus"
|
||||
"github.com/walles/moar/twin"
|
||||
)
|
||||
@ -76,6 +78,14 @@ func (m PagerModeViewing) onRune(char rune) {
|
||||
case 'q':
|
||||
p.Quit()
|
||||
|
||||
case 'v':
|
||||
p.AfterExit = func() error {
|
||||
FIXME: Do editor launching things here
|
||||
_, err := fmt.Println("JOHAN: Imagine launching an editor here")
|
||||
return err
|
||||
}
|
||||
p.Quit()
|
||||
|
||||
case '?':
|
||||
if !p.isShowingHelp {
|
||||
p.preHelpState = &_PreHelpState{
|
||||
|
15
moar.go
15
moar.go
@ -514,6 +514,7 @@ func noLineNumbersDefault() bool {
|
||||
return false
|
||||
}
|
||||
|
||||
// Can return a nil pager on --help or --version, or if pumping to stdout.
|
||||
func pagerFromArgs(
|
||||
args []string,
|
||||
newScreen func(mouseMode twin.MouseMode, terminalColorCount twin.ColorType) (twin.Screen, error),
|
||||
@ -809,9 +810,12 @@ func main() {
|
||||
os.Exit(1)
|
||||
}
|
||||
|
||||
if pager != nil {
|
||||
startPaging(pager, screen, &style, formatter)
|
||||
if pager == nil {
|
||||
// No pager, we're done
|
||||
return
|
||||
}
|
||||
|
||||
startPaging(pager, screen, &style, formatter)
|
||||
}
|
||||
|
||||
// Define a generic flag with specified name, default value, and usage string.
|
||||
@ -849,6 +853,13 @@ func startPaging(pager *m.Pager, screen twin.Screen, chromaStyle *chroma.Style,
|
||||
log.Error("Failed reprinting pager view after exit", err)
|
||||
}
|
||||
}
|
||||
|
||||
if pager.AfterExit != nil {
|
||||
err := pager.AfterExit()
|
||||
if err != nil {
|
||||
log.Error("Failed running AfterExit hook", err)
|
||||
}
|
||||
}
|
||||
}()
|
||||
|
||||
pager.StartPaging(screen, chromaStyle, chromaFormatter)
|
||||
|
Loading…
Reference in New Issue
Block a user