From e110e93e0f53fdd842dd666b48ecd5ca6fa5fa4b Mon Sep 17 00:00:00 2001 From: Zachary Yedidia Date: Sun, 9 Feb 2020 15:21:23 -0500 Subject: [PATCH] Improve disk performance with buffered io --- internal/buffer/line_array.go | 4 ++-- internal/buffer/save.go | 3 ++- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/internal/buffer/line_array.go b/internal/buffer/line_array.go index 517979c5..75a5658c 100644 --- a/internal/buffer/line_array.go +++ b/internal/buffer/line_array.go @@ -224,7 +224,7 @@ func (la *LineArray) split(pos Loc) { // removes from start to end func (la *LineArray) remove(start, end Loc) []byte { - // sub := la.Substr(start, end) + sub := la.Substr(start, end) startX := runeToByteIndex(start.X, la.lines[start.Y].data) endX := runeToByteIndex(end.X, la.lines[end.Y].data) if start.Y == end.Y { @@ -235,7 +235,7 @@ func (la *LineArray) remove(start, end Loc) []byte { la.deleteFromStart(Loc{endX - 1, start.Y + 1}) la.joinLines(start.Y, start.Y+1) } - return []byte{} + return sub } // deleteToEnd deletes from the end of a line to the position diff --git a/internal/buffer/save.go b/internal/buffer/save.go index 1f32bc64..fdc2e58c 100644 --- a/internal/buffer/save.go +++ b/internal/buffer/save.go @@ -1,6 +1,7 @@ package buffer import ( + "bufio" "bytes" "errors" "io" @@ -55,7 +56,7 @@ func overwriteFile(name string, enc encoding.Encoding, fn func(io.Writer) error, return } - w := transform.NewWriter(writeCloser, enc.NewEncoder()) + w := bufio.NewWriter(transform.NewWriter(writeCloser, enc.NewEncoder())) err = fn(w) if e := writeCloser.Close(); e != nil && err == nil {