Add editor packages

This commit is contained in:
dwrz
2026-10-26 02:32:03 +00:00
parent 38714f6c80
commit 4ed2ee97e0
23 changed files with 2114 additions and 0 deletions
+51
View File
@@ -0,0 +1,51 @@
package line
import "strings"
func (l *Line) Append(s string) {
l.data = l.data + s
}
func (l *Line) DeleteRune(index int) (deleted rune) {
if index < 0 || index >= len(l.data) {
return
}
var str strings.Builder
for i, r := range l.data {
if i == index {
deleted = r
continue
}
str.WriteRune(r)
}
l.data = str.String()
return deleted
}
func (l *Line) Insert(index int, nr rune) {
if index < 0 || index > len(l.data) {
return
}
var str strings.Builder
switch {
// Handle empty lines and the end of the line.
case index == len(l.data):
str.WriteString(l.data)
str.WriteRune(nr)
default:
for i, r := range l.data {
if i == index {
str.WriteRune(nr)
}
str.WriteRune(r)
}
}
l.data = str.String()
}