Comments and import fixes
All checks were successful
timw4mail/gilo/pipeline/head This commit looks good
All checks were successful
timw4mail/gilo/pipeline/head This commit looks good
This commit is contained in:
parent
9735d9b252
commit
0569ede1a5
@ -4,7 +4,7 @@ import (
|
|||||||
"bufio"
|
"bufio"
|
||||||
"log"
|
"log"
|
||||||
"os"
|
"os"
|
||||||
gilo2 "timshome.page/gilo/internal/gilo"
|
"timshome.page/gilo/internal/gilo"
|
||||||
)
|
)
|
||||||
|
|
||||||
type Document struct {
|
type Document struct {
|
||||||
@ -107,7 +107,7 @@ func (d *Document) InsertRow(at int, s string) {
|
|||||||
d.dirty = true
|
d.dirty = true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Document) InsertNewline(at *gilo2.Point) {
|
func (d *Document) InsertNewline(at *gilo.Point) {
|
||||||
if at.X == 0 {
|
if at.X == 0 {
|
||||||
d.InsertRow(at.Y, "")
|
d.InsertRow(at.Y, "")
|
||||||
} else {
|
} else {
|
||||||
@ -128,7 +128,7 @@ func (d *Document) MergeRows(to int, from int) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (d *Document) ToString() string {
|
func (d *Document) ToString() string {
|
||||||
buf := gilo2.NewBuffer()
|
buf := gilo.NewBuffer()
|
||||||
|
|
||||||
for _, row := range d.rows {
|
for _, row := range d.rows {
|
||||||
buf.Append(row.toString())
|
buf.Append(row.toString())
|
||||||
@ -142,13 +142,13 @@ func (d *Document) RowCount() int {
|
|||||||
return len(d.rows)
|
return len(d.rows)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Document) InsertChar(at *gilo2.Point, ch rune) {
|
func (d *Document) InsertChar(at *gilo.Point, ch rune) {
|
||||||
d.rows[at.Y].insertRune(ch, at.X)
|
d.rows[at.Y].insertRune(ch, at.X)
|
||||||
|
|
||||||
d.dirty = true
|
d.dirty = true
|
||||||
}
|
}
|
||||||
|
|
||||||
func (d *Document) DelChar(at *gilo2.Point) {
|
func (d *Document) DelChar(at *gilo.Point) {
|
||||||
d.rows[at.Y].deleteRune(at.X)
|
d.rows[at.Y].deleteRune(at.X)
|
||||||
|
|
||||||
d.dirty = true
|
d.dirty = true
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Editor methods involved in drawing to the console
|
// Package editor Editor methods involved in drawing to the console
|
||||||
package editor
|
package editor
|
||||||
|
|
||||||
import (
|
import (
|
||||||
@ -6,7 +6,7 @@ import (
|
|||||||
"strings"
|
"strings"
|
||||||
"time"
|
"time"
|
||||||
"timshome.page/gilo/editor/highlight"
|
"timshome.page/gilo/editor/highlight"
|
||||||
gilo2 "timshome.page/gilo/internal/gilo"
|
"timshome.page/gilo/internal/gilo"
|
||||||
"timshome.page/gilo/terminal"
|
"timshome.page/gilo/terminal"
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -17,7 +17,7 @@ import (
|
|||||||
func (e *editor) RefreshScreen() {
|
func (e *editor) RefreshScreen() {
|
||||||
e.scroll()
|
e.scroll()
|
||||||
|
|
||||||
ab := gilo2.NewBuffer()
|
ab := gilo.NewBuffer()
|
||||||
|
|
||||||
ab.Append(terminal.HideCursor)
|
ab.Append(terminal.HideCursor)
|
||||||
ab.Append(terminal.ResetCursor)
|
ab.Append(terminal.ResetCursor)
|
||||||
@ -57,7 +57,7 @@ func (e *editor) scroll() {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *editor) drawRows(ab *gilo2.Buffer) {
|
func (e *editor) drawRows(ab *gilo.Buffer) {
|
||||||
for y := 0; y < e.screen.Rows; y++ {
|
for y := 0; y < e.screen.Rows; y++ {
|
||||||
fileRow := y + e.offset.Y
|
fileRow := y + e.offset.Y
|
||||||
|
|
||||||
@ -81,7 +81,7 @@ func (e *editor) drawRows(ab *gilo2.Buffer) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *editor) drawFileRow(fileRow int, ab *gilo2.Buffer) {
|
func (e *editor) drawFileRow(fileRow int, ab *gilo.Buffer) {
|
||||||
currentColor := terminal.DefaultFGColor
|
currentColor := terminal.DefaultFGColor
|
||||||
row := e.doc.GetRow(fileRow)
|
row := e.doc.GetRow(fileRow)
|
||||||
|
|
||||||
@ -107,11 +107,11 @@ func (e *editor) drawFileRow(fileRow int, ab *gilo2.Buffer) {
|
|||||||
ab.Append(terminal.DefaultFGColor)
|
ab.Append(terminal.DefaultFGColor)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *editor) drawPlaceholderRow(y int, ab *gilo2.Buffer) {
|
func (e *editor) drawPlaceholderRow(y int, ab *gilo.Buffer) {
|
||||||
if e.doc.RowCount() == 0 && y == e.screen.Rows/3 {
|
if e.doc.RowCount() == 0 && y == e.screen.Rows/3 {
|
||||||
welcome := fmt.Sprintf("Gilo editor -- version %s", gilo2.Version)
|
welcome := fmt.Sprintf("Gilo editor -- version %s", gilo.Version)
|
||||||
if len(welcome) > e.screen.Cols {
|
if len(welcome) > e.screen.Cols {
|
||||||
welcome = gilo2.Truncate(welcome, e.screen.Cols)
|
welcome = gilo.Truncate(welcome, e.screen.Cols)
|
||||||
}
|
}
|
||||||
|
|
||||||
padding := (e.screen.Cols - len(welcome)) / 2
|
padding := (e.screen.Cols - len(welcome)) / 2
|
||||||
@ -131,7 +131,7 @@ func (e *editor) drawPlaceholderRow(y int, ab *gilo2.Buffer) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *editor) drawStatusBar(ab *gilo2.Buffer) {
|
func (e *editor) drawStatusBar(ab *gilo.Buffer) {
|
||||||
cols := e.screen.Cols
|
cols := e.screen.Cols
|
||||||
|
|
||||||
ab.Append(terminal.InvertColor)
|
ab.Append(terminal.InvertColor)
|
||||||
@ -148,7 +148,7 @@ func (e *editor) drawStatusBar(ab *gilo2.Buffer) {
|
|||||||
leftStatus := fmt.Sprintf("%.20s - %d lines %s", fileName, e.doc.RowCount(), modified)
|
leftStatus := fmt.Sprintf("%.20s - %d lines %s", fileName, e.doc.RowCount(), modified)
|
||||||
length := len(leftStatus)
|
length := len(leftStatus)
|
||||||
if length > cols {
|
if length > cols {
|
||||||
leftStatus = gilo2.Truncate(leftStatus, cols)
|
leftStatus = gilo.Truncate(leftStatus, cols)
|
||||||
|
|
||||||
ab.Append(leftStatus)
|
ab.Append(leftStatus)
|
||||||
ab.Append(terminal.ResetColor)
|
ab.Append(terminal.ResetColor)
|
||||||
@ -182,11 +182,11 @@ func (e *editor) drawStatusBar(ab *gilo2.Buffer) {
|
|||||||
ab.Append(terminal.ResetColor)
|
ab.Append(terminal.ResetColor)
|
||||||
}
|
}
|
||||||
|
|
||||||
func (e *editor) drawMessageBar(ab *gilo2.Buffer) {
|
func (e *editor) drawMessageBar(ab *gilo.Buffer) {
|
||||||
ab.Append("\r\n")
|
ab.Append("\r\n")
|
||||||
ab.Append(terminal.ClearLine)
|
ab.Append(terminal.ClearLine)
|
||||||
|
|
||||||
msg := gilo2.Truncate(e.status.message, e.screen.Cols)
|
msg := gilo.Truncate(e.status.message, e.screen.Cols)
|
||||||
if len(msg) > 0 && time.Since(e.status.created).Seconds() < 5.0 {
|
if len(msg) > 0 && time.Since(e.status.created).Seconds() < 5.0 {
|
||||||
ab.Append(msg)
|
ab.Append(msg)
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,7 @@ import (
|
|||||||
"fmt"
|
"fmt"
|
||||||
"time"
|
"time"
|
||||||
"timshome.page/gilo/editor/document"
|
"timshome.page/gilo/editor/document"
|
||||||
gilo2 "timshome.page/gilo/internal/gilo"
|
"timshome.page/gilo/internal/gilo"
|
||||||
"timshome.page/gilo/key"
|
"timshome.page/gilo/key"
|
||||||
"timshome.page/gilo/terminal"
|
"timshome.page/gilo/terminal"
|
||||||
)
|
)
|
||||||
@ -21,8 +21,8 @@ type statusMsg struct {
|
|||||||
|
|
||||||
type editor struct {
|
type editor struct {
|
||||||
screen *terminal.Screen
|
screen *terminal.Screen
|
||||||
cursor *gilo2.Point
|
cursor *gilo.Point
|
||||||
offset *gilo2.Point
|
offset *gilo.Point
|
||||||
doc *document.Document
|
doc *document.Document
|
||||||
status *statusMsg
|
status *statusMsg
|
||||||
search *search
|
search *search
|
||||||
@ -42,12 +42,12 @@ func NewEditor() *editor {
|
|||||||
|
|
||||||
return &editor{
|
return &editor{
|
||||||
screen,
|
screen,
|
||||||
gilo2.DefaultPoint(),
|
gilo.DefaultPoint(),
|
||||||
gilo2.DefaultPoint(),
|
gilo.DefaultPoint(),
|
||||||
document.NewDocument(),
|
document.NewDocument(),
|
||||||
status,
|
status,
|
||||||
newSearch(),
|
newSearch(),
|
||||||
gilo2.QuitTimes,
|
gilo.QuitTimes,
|
||||||
0,
|
0,
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -87,7 +87,7 @@ func (e *editor) save() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (e *editor) prompt(prompt string, callback func(string, string)) string {
|
func (e *editor) prompt(prompt string, callback func(string, string)) string {
|
||||||
buf := gilo2.NewBuffer()
|
buf := gilo.NewBuffer()
|
||||||
|
|
||||||
// Show the prompt message
|
// Show the prompt message
|
||||||
e.SetStatusMessage(prompt, "")
|
e.SetStatusMessage(prompt, "")
|
||||||
|
@ -8,7 +8,7 @@ var syntaxColorMap = map[int]string{
|
|||||||
Normal: terminal.DefaultFGColor,
|
Normal: terminal.DefaultFGColor,
|
||||||
}
|
}
|
||||||
|
|
||||||
// Take a highlighting type and map it to
|
// SyntaxToColor Take a highlighting type and map it to
|
||||||
// an ANSI color escape code for display
|
// an ANSI color escape code for display
|
||||||
func SyntaxToColor(hl int) string {
|
func SyntaxToColor(hl int) string {
|
||||||
color := syntaxColorMap[hl]
|
color := syntaxColorMap[hl]
|
||||||
|
@ -2,7 +2,7 @@ package editor
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"timshome.page/gilo/editor/document"
|
"timshome.page/gilo/editor/document"
|
||||||
gilo2 "timshome.page/gilo/internal/gilo"
|
"timshome.page/gilo/internal/gilo"
|
||||||
"timshome.page/gilo/key"
|
"timshome.page/gilo/key"
|
||||||
"timshome.page/gilo/terminal"
|
"timshome.page/gilo/terminal"
|
||||||
)
|
)
|
||||||
@ -74,8 +74,8 @@ func (e *editor) processKeypressChar(ch rune) bool {
|
|||||||
// Clear the quit message and restart the
|
// Clear the quit message and restart the
|
||||||
// confirmation count if confirmation is not
|
// confirmation count if confirmation is not
|
||||||
// completed
|
// completed
|
||||||
if e.quitTimes != gilo2.QuitTimes {
|
if e.quitTimes != gilo.QuitTimes {
|
||||||
e.quitTimes = gilo2.QuitTimes
|
e.quitTimes = gilo.QuitTimes
|
||||||
e.SetStatusMessage("")
|
e.SetStatusMessage("")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,13 +2,13 @@ package editor
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"timshome.page/gilo/editor/highlight"
|
"timshome.page/gilo/editor/highlight"
|
||||||
gilo2 "timshome.page/gilo/internal/gilo"
|
"timshome.page/gilo/internal/gilo"
|
||||||
"timshome.page/gilo/key"
|
"timshome.page/gilo/key"
|
||||||
)
|
)
|
||||||
|
|
||||||
type search struct {
|
type search struct {
|
||||||
cursor *gilo2.Point
|
cursor *gilo.Point
|
||||||
offset *gilo2.Point
|
offset *gilo.Point
|
||||||
hlLine int
|
hlLine int
|
||||||
hl []int
|
hl []int
|
||||||
direction int
|
direction int
|
||||||
@ -17,8 +17,8 @@ type search struct {
|
|||||||
|
|
||||||
func newSearch() *search {
|
func newSearch() *search {
|
||||||
return &search{
|
return &search{
|
||||||
cursor: gilo2.DefaultPoint(),
|
cursor: gilo.DefaultPoint(),
|
||||||
offset: gilo2.DefaultPoint(),
|
offset: gilo.DefaultPoint(),
|
||||||
hlLine: -1,
|
hlLine: -1,
|
||||||
hl: []int{},
|
hl: []int{},
|
||||||
lastMatch: -1,
|
lastMatch: -1,
|
||||||
|
@ -1,4 +1,4 @@
|
|||||||
// Helper functions
|
// Package gilo Helper functions
|
||||||
package gilo
|
package gilo
|
||||||
|
|
||||||
import "strings"
|
import "strings"
|
||||||
|
@ -1,3 +1,4 @@
|
|||||||
|
// Package gilo Point struct
|
||||||
package gilo
|
package gilo
|
||||||
|
|
||||||
type Point struct {
|
type Point struct {
|
||||||
|
@ -12,12 +12,12 @@ const (
|
|||||||
Enter = '\r'
|
Enter = '\r'
|
||||||
)
|
)
|
||||||
|
|
||||||
// Is this an ASCII character?
|
// IsAscii Is this an ASCII character?
|
||||||
func IsAscii(char rune) bool {
|
func IsAscii(char rune) bool {
|
||||||
return char <= unicode.MaxASCII
|
return char <= unicode.MaxASCII
|
||||||
}
|
}
|
||||||
|
|
||||||
// Is this an ASCII ctrl character?
|
// IsCtrl Is this an ASCII ctrl character?
|
||||||
func IsCtrl(char rune) bool {
|
func IsCtrl(char rune) bool {
|
||||||
if !IsAscii(char) {
|
if !IsAscii(char) {
|
||||||
return false
|
return false
|
||||||
@ -26,7 +26,7 @@ func IsCtrl(char rune) bool {
|
|||||||
return char == 0x7f || char < 0x20
|
return char == 0x7f || char < 0x20
|
||||||
}
|
}
|
||||||
|
|
||||||
// Return the input code of a Ctrl-key chord.
|
// Ctrl Return the input code of a Ctrl-key chord.
|
||||||
func Ctrl(char rune) rune {
|
func Ctrl(char rune) rune {
|
||||||
if !IsAscii(char) {
|
if !IsAscii(char) {
|
||||||
return 0
|
return 0
|
||||||
@ -37,7 +37,7 @@ func Ctrl(char rune) rune {
|
|||||||
return ch
|
return ch
|
||||||
}
|
}
|
||||||
|
|
||||||
// Is the character a general token separator type?
|
// IsSeparator Is the character a general token separator type?
|
||||||
func IsSeparator(char rune) bool {
|
func IsSeparator(char rune) bool {
|
||||||
return unicode.IsPunct(char) || unicode.IsSpace(char)
|
return unicode.IsPunct(char) || unicode.IsSpace(char)
|
||||||
}
|
}
|
Loading…
Reference in New Issue
Block a user