Move functions to file under editor instead of their own package

This commit is contained in:
Timothy Warren 2021-03-30 16:22:35 -04:00
parent 842ab0ef49
commit f7157f9c50
5 changed files with 30 additions and 31 deletions

View File

@ -4,7 +4,6 @@ package editor
import ( import (
"fmt" "fmt"
"strings" "strings"
"timshome.page/gilo/fn"
"timshome.page/gilo/terminal" "timshome.page/gilo/terminal"
) )
@ -31,7 +30,7 @@ func (e *editor) drawRows(ab *buffer) {
if y == e.screen.Rows / 3 { if y == e.screen.Rows / 3 {
welcome := fmt.Sprintf("Gilo editor -- version %s", KiloVersion) welcome := fmt.Sprintf("Gilo editor -- version %s", KiloVersion)
if len(welcome) > e.screen.Cols { if len(welcome) > e.screen.Cols {
welcome = fn.TruncateString(welcome, e.screen.Cols) welcome = TruncateString(welcome, e.screen.Cols)
} }
padding := (e.screen.Cols - len(welcome)) / 2 padding := (e.screen.Cols - len(welcome)) / 2

View File

@ -1,7 +1,6 @@
package editor package editor
import ( import (
"timshome.page/gilo/fn"
"timshome.page/gilo/terminal" "timshome.page/gilo/terminal"
) )
@ -24,7 +23,6 @@ func New() *editor {
screen := terminal.Size() screen := terminal.Size()
cursor := &cursor { 0, 0 } cursor := &cursor { 0, 0 }
var rows []*row var rows []*row
rows = append(rows, NewRow())
return &editor{screen, cursor, rows } return &editor{screen, cursor, rows }
} }
@ -33,7 +31,7 @@ func (e *editor) ProcessKeypress() bool {
var str string var str string
ch, _ := terminal.ReadKey() ch, _ := terminal.ReadKey()
if ch == fn.Ctrl('q') { if ch == Ctrl('q') {
// Clean up on exit // Clean up on exit
terminal.Write(terminal.ClearScreen + terminal.ResetCursor) terminal.Write(terminal.ClearScreen + terminal.ResetCursor)
@ -99,6 +97,7 @@ func parseEscapeSequence () string {
runes = append(runes, ch) runes = append(runes, ch)
if i == 1 && runes[1] >= 'A' { if i == 1 && runes[1] >= 'A' {
// \eOH \eOF
if runes[0] == 'O' { if runes[0] == 'O' {
switch runes[1] { switch runes[1] {
case 'H': case 'H':
@ -107,6 +106,7 @@ func parseEscapeSequence () string {
return keyEnd return keyEnd
} }
} }
// \e[A
if runes[0] == '[' { if runes[0] == '[' {
switch runes[1] { switch runes[1] {
case 'A': case 'A':
@ -125,6 +125,7 @@ func parseEscapeSequence () string {
} }
} }
// \e[1~
if i == 2 && runes[0] == '[' && runes[2] == '~' { if i == 2 && runes[0] == '[' && runes[2] == '~' {
switch runes[1] { switch runes[1] {
case '1': case '1':

View File

@ -1,4 +1,26 @@
package fn package editor
import "strings"
func TruncateString(s string, length int) string {
if length < 1 {
return ""
}
var buf strings.Builder
count := 0
for _, char := range s {
if count == length {
break
}
buf.WriteRune(char)
count++
}
return buf.String()
}
func isAscii(char rune) bool { func isAscii(char rune) bool {
ord := int(char) ord := int(char)
@ -26,4 +48,4 @@ func Ctrl(char rune) rune {
} }
return rune(raw) return rune(raw)
} }

View File

@ -14,7 +14,7 @@ const(
) )
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
// !Map escape sequences to simpler constants // !Constants representing input keys
// ---------------------------------------------------------------------------- // ----------------------------------------------------------------------------
const ( const (

View File

@ -1,23 +0,0 @@
package fn
import "strings"
func TruncateString(s string, length int) string {
if length < 1 {
return ""
}
var buf strings.Builder
count := 0
for _, char := range s {
if count == length {
break
}
buf.WriteRune(char)
count++
}
return buf.String()
}