diff --git a/tools/cli/zsh.go b/tools/cli/zsh.go index 8f8aacf40..fb4723c1d 100644 --- a/tools/cli/zsh.go +++ b/tools/cli/zsh.go @@ -3,7 +3,6 @@ package cli import ( - "bufio" "fmt" "kitty/tools/cli/markup" "kitty/tools/tty" @@ -38,7 +37,7 @@ func shell_input_parser(data []byte, shell_state map[string]string) ([][]string, raw := string(data) new_word := strings.HasSuffix(raw, "\n\n") raw = strings.TrimRight(raw, "\n \t") - scanner := bufio.NewScanner(strings.NewReader(raw)) + scanner := utils.NewLineScanner(raw) words := make([]string, 0, 32) for scanner.Scan() { words = append(words, scanner.Text()) diff --git a/tools/cmd/ask/choices.go b/tools/cmd/ask/choices.go index 741ef7df9..0aa7d5299 100644 --- a/tools/cmd/ask/choices.go +++ b/tools/cmd/ask/choices.go @@ -3,7 +3,6 @@ package ask import ( - "bufio" "fmt" "io" "kitty/tools/cli/markup" @@ -323,7 +322,7 @@ func choices(o *Options) (response string, err error) { return err } if message != "" { - scanner := bufio.NewScanner(strings.NewReader(message)) + scanner := utils.NewLineScanner(message) for scanner.Scan() { msg_lines = draw_long_text(int(sz.WidthCells), scanner.Text(), msg_lines) } diff --git a/tools/cmd/completion/kitty.go b/tools/cmd/completion/kitty.go index f9284a4e9..54df5ec38 100644 --- a/tools/cmd/completion/kitty.go +++ b/tools/cmd/completion/kitty.go @@ -3,8 +3,6 @@ package completion import ( - "bufio" - "bytes" "fmt" "os/exec" "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() if err == nil { mg := completions.AddMatchGroup("Themes") - scanner := bufio.NewScanner(bytes.NewReader(out)) + scanner := utils.NewLineScanner(utils.UnsafeBytesToString(out)) for scanner.Scan() { theme_name := strings.TrimSpace(scanner.Text()) if theme_name != "" && strings.HasPrefix(theme_name, word) { diff --git a/tools/cmd/hyperlinked_grep/main.go b/tools/cmd/hyperlinked_grep/main.go index 03c57d121..9d97c1314 100644 --- a/tools/cmd/hyperlinked_grep/main.go +++ b/tools/cmd/hyperlinked_grep/main.go @@ -3,7 +3,6 @@ package hyperlinked_grep import ( - "bufio" "bytes" "errors" "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) return } - scanner := bufio.NewScanner(strings.NewReader(utils.UnsafeBytesToString(raw))) + scanner := utils.NewLineScanner(utils.UnsafeBytesToString(raw)) options_started := false expecting_args = make(map[string]bool, 64) alias_map = make(map[string]string, 52) diff --git a/tools/config/api.go b/tools/config/api.go index d9bf80779..eca970b54 100644 --- a/tools/config/api.go +++ b/tools/config/api.go @@ -154,7 +154,7 @@ func (self *ConfigParser) ParseFiles(paths ...string) error { if err != nil { return err } - scanner := bufio.NewScanner(bytes.NewReader(raw)) + scanner := utils.NewLineScanner(utils.UnsafeBytesToString(raw)) self.seen_includes = make(map[string]bool) err = self.parse(scanner, path, filepath.Dir(path), 0) if err != nil { diff --git a/tools/themes/collection.go b/tools/themes/collection.go index 9bf46264d..d221fa02e 100644 --- a/tools/themes/collection.go +++ b/tools/themes/collection.go @@ -4,7 +4,6 @@ package themes import ( "archive/zip" - "bufio" "encoding/json" "errors" "fmt" @@ -241,7 +240,7 @@ func (self *Theme) Settings() (map[string]string, error) { return nil, err } self.settings = make(map[string]string, 64) - scanner := bufio.NewScanner(strings.NewReader(code)) + scanner := utils.NewLineScanner(code) for scanner.Scan() { line := strings.TrimSpace(scanner.Text()) if line != "" && line[0] != '#' { diff --git a/tools/utils/strings.go b/tools/utils/strings.go index 83c41e17f..138326646 100644 --- a/tools/utils/strings.go +++ b/tools/utils/strings.go @@ -98,6 +98,8 @@ func (self *StringScanner) Scan() bool { return true } +func (self *StringScanner) Err() error { return nil } + func (self *StringScanner) Text() string { return self.token }