Add savecursor option

This adds the `savecursor` option which will remember where the cursor
was when the file was closed and put it back when the file is opened
again. The option is off by default so that people aren't confused as to
why the cursor isn't at the start of a file when they open it.

This commit also adds a more general ability to serialize a buffer so
various components can be saved (which could also be useful for persistent
undo).

Fixes #107
This commit is contained in:
Zachary Yedidia
2016-05-28 17:29:49 -04:00
parent 96c7bc67c0
commit a92a7dc4e6
11 changed files with 352 additions and 270 deletions

View File

@@ -1,7 +1,9 @@
package main
import (
"path/filepath"
"strconv"
"strings"
"unicode/utf8"
)
@@ -118,6 +120,12 @@ func ParseBool(str string) (bool, error) {
return strconv.ParseBool(str)
}
// EscapePath replaces every path separator in a given path with a %
func EscapePath(path string) string {
path = filepath.ToSlash(path)
return strings.Replace(path, "/", "%", -1)
}
func runePos(p int, str string) int {
return utf8.RuneCountInString(str[:p])
}