sandbox/ked/buffer.go

55 lines
819 B
Go
Raw Normal View History

2019-04-25 01:39:19 +00:00
package main
import (
"os"
"bufio"
"fmt"
)
type Buffer struct {
contents []string
filename string
cursor Cursor
dirty bool
}
func NewBuffer(filename string) (*Buffer, error) {
buffer := &Buffer{
contents: []string{""},
filename: filename,
cursor: Cursor{row: 0, col: 0},
}
err := buffer.Load()
return buffer, err
}
func (buffer *Buffer) Load() error {
if buffer.filename == "" {
return nil
}
file, err := os.Open(buffer.filename)
if err != nil {
if os.IsNotExist(err) {
return nil
}
return err
}
defer file.Close()
buffer.contents = []string{}
scanner := bufio.NewScanner(file)
for scanner.Scan() {
line := scanner.Text()
buffer.contents = append(buffer.contents, line)
fmt.Printf("'%s'\n", line)
}
return nil
}
func (buffer *Buffer) Close() error {
return nil
}