1
1
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:
Johan Walles 2024-06-21 08:14:18 +02:00
parent eae1915b5e
commit df79efefa7
3 changed files with 25 additions and 2 deletions

View File

@ -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 {

View File

@ -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
View File

@ -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)