summaryrefslogtreecommitdiff
path: root/editor.go
diff options
context:
space:
mode:
Diffstat (limited to 'editor.go')
-rw-r--r--editor.go20
1 files changed, 20 insertions, 0 deletions
diff --git a/editor.go b/editor.go
index f889232..1011c09 100644
--- a/editor.go
+++ b/editor.go
@@ -238,6 +238,25 @@ func (e *Editor) toggleDebugWindow() {
e.showDebugLog = !e.showDebugLog
}
+// NewBuffer creates a new empty buffer and switches to it.
+func (e *Editor) NewBuffer() {
+ // Use default file type (Text), which is the last one in the list.
+ defaultType := fileTypes[len(fileTypes)-1]
+
+ newB := &Buffer{
+ buffer: [][]rune{{}},
+ filename: "",
+ undoStack: []HistoryState{},
+ redoStack: []HistoryState{},
+ fileType: defaultType,
+ }
+
+ e.buffers = append(e.buffers, newB)
+ e.activeBufferIndex = len(e.buffers) - 1
+ e.message = "New buffer created"
+ e.introDismissed = true
+}
+
// LoadFile reads a file from disk into the active buffer.
func (e *Editor) LoadFile(filename string) error {
info, err := os.Stat(filename)
@@ -381,6 +400,7 @@ func (e *Editor) LoadFromReader(filename string, r io.Reader) error {
e.activeBufferIndex = len(e.buffers) - 1
}
+ e.introDismissed = true
return nil
}