Add 'dirty' flag to document
All checks were successful
timw4mail/gilo/pipeline/head This commit looks good

This commit is contained in:
Timothy Warren 2021-04-02 10:07:37 -04:00
parent e2f35f5e7d
commit 799af21a24
3 changed files with 12 additions and 1 deletions

View File

@ -36,6 +36,8 @@ func (d *document) open(filename string) {
for scanner.Scan() {
d.appendRow(scanner.Text())
}
d.dirty = false
}
func (d *document) save() int {
@ -67,6 +69,8 @@ func (d *document) save() int {
return size
}
d.dirty = false
return 0
}
@ -74,6 +78,8 @@ func (d *document) appendRow(s string) {
newRow := newRow(s)
newRow.update()
d.rows = append(d.rows, newRow)
d.dirty = true
}
func (d *document) toString() string {

View File

@ -114,8 +114,12 @@ func (e *editor) drawStatusBar(ab *buffer) {
if e.document.filename != "" {
fileName = e.document.filename
}
modified := ""
if e.document.dirty {
modified = "(modified)"
}
leftStatus := fmt.Sprintf("%.20s - %d lines", fileName, e.document.rowCount())
leftStatus := fmt.Sprintf("%.20s - %d lines %s", fileName, e.document.rowCount(), modified)
length := len(leftStatus)
if length > cols {
leftStatus = truncate(leftStatus, cols)

View File

@ -193,6 +193,7 @@ func (e *editor) insertChar(ch rune) {
e.document.rows[e.cursor.y].insertRune(ch, e.cursor.x)
e.cursor.x += 1
e.document.dirty = true
}
// Convert the raw ANSI escape sequences to the type of key input