mirror of https://github.com/jroimartin/gocui.git
Add method View.ViewBuffer
This commit is contained in:
parent
af4769f30e
commit
e5bf60e36b
|
@ -9,6 +9,7 @@ import (
|
||||||
"io"
|
"io"
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"log"
|
"log"
|
||||||
|
"strings"
|
||||||
|
|
||||||
"github.com/jroimartin/gocui"
|
"github.com/jroimartin/gocui"
|
||||||
)
|
)
|
||||||
|
@ -108,6 +109,9 @@ func keybindings(g *gocui.Gui) error {
|
||||||
if err := g.SetKeybinding("main", gocui.KeyCtrlS, gocui.ModNone, saveMain); err != nil {
|
if err := g.SetKeybinding("main", gocui.KeyCtrlS, gocui.ModNone, saveMain); err != nil {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
if err := g.SetKeybinding("main", gocui.KeyCtrlW, gocui.ModNone, saveVisualMain); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -137,6 +141,20 @@ func saveMain(g *gocui.Gui, v *gocui.View) error {
|
||||||
return nil
|
return nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
func saveVisualMain(g *gocui.Gui, v *gocui.View) error {
|
||||||
|
f, err := ioutil.TempFile("", "gocui_demo_")
|
||||||
|
if err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
defer f.Close()
|
||||||
|
|
||||||
|
vb := v.ViewBuffer()
|
||||||
|
if _, err := io.Copy(f, strings.NewReader(vb)); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
return nil
|
||||||
|
}
|
||||||
|
|
||||||
func layout(g *gocui.Gui) error {
|
func layout(g *gocui.Gui) error {
|
||||||
maxX, maxY := g.Size()
|
maxX, maxY := g.Size()
|
||||||
if v, err := g.SetView("side", -1, -1, 30, maxY); err != nil {
|
if v, err := g.SetView("side", -1, -1, 30, maxY); err != nil {
|
||||||
|
|
10
view.go
10
view.go
|
@ -428,6 +428,16 @@ func (v *View) Buffer() string {
|
||||||
return strings.Replace(str, "\x00", " ", -1)
|
return strings.Replace(str, "\x00", " ", -1)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// ViewBuffer returns a string with the contents of the view's buffer that is
|
||||||
|
// showed to the user
|
||||||
|
func (v *View) ViewBuffer() string {
|
||||||
|
str := ""
|
||||||
|
for _, l := range v.viewLines {
|
||||||
|
str += string(l.line) + "\n"
|
||||||
|
}
|
||||||
|
return strings.Replace(str, "\x00", " ", -1)
|
||||||
|
}
|
||||||
|
|
||||||
// Line returns a string with the line of the view's internal buffer
|
// Line returns a string with the line of the view's internal buffer
|
||||||
// at the position corresponding to the point (x, y).
|
// at the position corresponding to the point (x, y).
|
||||||
func (v *View) Line(y int) (string, error) {
|
func (v *View) Line(y int) (string, error) {
|
||||||
|
|
Loading…
Reference in New Issue