Use the new string scanner everywhere

This commit is contained in:
Kovid Goyal
2023-03-08 13:31:27 +05:30
parent b8ce441453
commit f42090766a
7 changed files with 8 additions and 12 deletions

View File

@@ -3,7 +3,6 @@
package cli package cli
import ( import (
"bufio"
"fmt" "fmt"
"kitty/tools/cli/markup" "kitty/tools/cli/markup"
"kitty/tools/tty" "kitty/tools/tty"
@@ -38,7 +37,7 @@ func shell_input_parser(data []byte, shell_state map[string]string) ([][]string,
raw := string(data) raw := string(data)
new_word := strings.HasSuffix(raw, "\n\n") new_word := strings.HasSuffix(raw, "\n\n")
raw = strings.TrimRight(raw, "\n \t") raw = strings.TrimRight(raw, "\n \t")
scanner := bufio.NewScanner(strings.NewReader(raw)) scanner := utils.NewLineScanner(raw)
words := make([]string, 0, 32) words := make([]string, 0, 32)
for scanner.Scan() { for scanner.Scan() {
words = append(words, scanner.Text()) words = append(words, scanner.Text())

View File

@@ -3,7 +3,6 @@
package ask package ask
import ( import (
"bufio"
"fmt" "fmt"
"io" "io"
"kitty/tools/cli/markup" "kitty/tools/cli/markup"
@@ -323,7 +322,7 @@ func choices(o *Options) (response string, err error) {
return err return err
} }
if message != "" { if message != "" {
scanner := bufio.NewScanner(strings.NewReader(message)) scanner := utils.NewLineScanner(message)
for scanner.Scan() { for scanner.Scan() {
msg_lines = draw_long_text(int(sz.WidthCells), scanner.Text(), msg_lines) msg_lines = draw_long_text(int(sz.WidthCells), scanner.Text(), msg_lines)
} }

View File

@@ -3,8 +3,6 @@
package completion package completion
import ( import (
"bufio"
"bytes"
"fmt" "fmt"
"os/exec" "os/exec"
"strings" "strings"
@@ -71,7 +69,7 @@ func complete_themes(completions *cli.Completions, word string, arg_num int) {
out, err := exec.Command(kitty, "+runpy", "from kittens.themes.collection import *; print_theme_names()").Output() out, err := exec.Command(kitty, "+runpy", "from kittens.themes.collection import *; print_theme_names()").Output()
if err == nil { if err == nil {
mg := completions.AddMatchGroup("Themes") mg := completions.AddMatchGroup("Themes")
scanner := bufio.NewScanner(bytes.NewReader(out)) scanner := utils.NewLineScanner(utils.UnsafeBytesToString(out))
for scanner.Scan() { for scanner.Scan() {
theme_name := strings.TrimSpace(scanner.Text()) theme_name := strings.TrimSpace(scanner.Text())
if theme_name != "" && strings.HasPrefix(theme_name, word) { if theme_name != "" && strings.HasPrefix(theme_name, word) {

View File

@@ -3,7 +3,6 @@
package hyperlinked_grep package hyperlinked_grep
import ( import (
"bufio"
"bytes" "bytes"
"errors" "errors"
"fmt" "fmt"
@@ -42,7 +41,7 @@ func get_options_for_rg() (expecting_args map[string]bool, alias_map map[string]
err = fmt.Errorf("Failed to execute rg: %w", err) err = fmt.Errorf("Failed to execute rg: %w", err)
return return
} }
scanner := bufio.NewScanner(strings.NewReader(utils.UnsafeBytesToString(raw))) scanner := utils.NewLineScanner(utils.UnsafeBytesToString(raw))
options_started := false options_started := false
expecting_args = make(map[string]bool, 64) expecting_args = make(map[string]bool, 64)
alias_map = make(map[string]string, 52) alias_map = make(map[string]string, 52)

View File

@@ -154,7 +154,7 @@ func (self *ConfigParser) ParseFiles(paths ...string) error {
if err != nil { if err != nil {
return err return err
} }
scanner := bufio.NewScanner(bytes.NewReader(raw)) scanner := utils.NewLineScanner(utils.UnsafeBytesToString(raw))
self.seen_includes = make(map[string]bool) self.seen_includes = make(map[string]bool)
err = self.parse(scanner, path, filepath.Dir(path), 0) err = self.parse(scanner, path, filepath.Dir(path), 0)
if err != nil { if err != nil {

View File

@@ -4,7 +4,6 @@ package themes
import ( import (
"archive/zip" "archive/zip"
"bufio"
"encoding/json" "encoding/json"
"errors" "errors"
"fmt" "fmt"
@@ -241,7 +240,7 @@ func (self *Theme) Settings() (map[string]string, error) {
return nil, err return nil, err
} }
self.settings = make(map[string]string, 64) self.settings = make(map[string]string, 64)
scanner := bufio.NewScanner(strings.NewReader(code)) scanner := utils.NewLineScanner(code)
for scanner.Scan() { for scanner.Scan() {
line := strings.TrimSpace(scanner.Text()) line := strings.TrimSpace(scanner.Text())
if line != "" && line[0] != '#' { if line != "" && line[0] != '#' {

View File

@@ -98,6 +98,8 @@ func (self *StringScanner) Scan() bool {
return true return true
} }
func (self *StringScanner) Err() error { return nil }
func (self *StringScanner) Text() string { func (self *StringScanner) Text() string {
return self.token return self.token
} }