From 83fc35e8a7b3fd43ece683ced6ee0e2031cfabf1 Mon Sep 17 00:00:00 2001 From: tjmtmmnk Date: Sat, 27 Feb 2021 04:51:28 +0900 Subject: [PATCH] don't need filter/util --- filter/ripgrep.go | 46 ++++++++++++++++++++++++++++++++++++++++ filter/util.go | 54 ----------------------------------------------- 2 files changed, 46 insertions(+), 54 deletions(-) delete mode 100644 filter/util.go diff --git a/filter/ripgrep.go b/filter/ripgrep.go index c2496b1..c8156f6 100644 --- a/filter/ripgrep.go +++ b/filter/ripgrep.go @@ -1,7 +1,10 @@ package filter import ( + "errors" "os/exec" + "strconv" + "strings" "github.com/tjmtmmnk/ilse/util" ) @@ -12,6 +15,49 @@ func newRg() *rg { return &rg{} } +func isValidQuery(q string) bool { + return q != "" +} + +func isValidRegex(q string) bool { + return true +} + +func convert(result string, option *SearchOption) ([]SearchResult, error) { + results := make([]SearchResult, 0, option.Limit) + for i, s := range strings.Split(result, "\n") { + if i > option.Limit { + break + } + res, err := split(s, option) + if err != nil { + return []SearchResult{}, err + } + if res != nil { + results = append(results, *res) + } + } + return results, nil +} + +func split(str string, option *SearchOption) (*SearchResult, error) { + // first remove reset flag included in path, line + str = strings.Replace(str, "\x1b[0m", "", 4) + splitted := strings.Split(str, ":") + if len(splitted) < 3 { + return nil, nil + } + + fileName := splitted[0] + lineNum, err := strconv.Atoi(splitted[1]) + if err != nil { + return nil, errors.New("line number wrong format") + } + // change reset flag included in text to black foreground + text := strings.ReplaceAll(splitted[2], "\x1b[0m", "\x1b[39;40m") + return &SearchResult{fileName, lineNum, text}, nil +} + func (r *rg) Search(q string, option *SearchOption) ([]SearchResult, error) { if !isValidQuery(q) { return []SearchResult{}, nil diff --git a/filter/util.go b/filter/util.go deleted file mode 100644 index 4f17273..0000000 --- a/filter/util.go +++ /dev/null @@ -1,54 +0,0 @@ -package filter - -import ( - "errors" - "strconv" - "strings" -) - -func isValidQuery(q string) bool { - return q != "" -} - -func isValidRegex(q string) bool { - return true -} - -func convert(result string, option *SearchOption) ([]SearchResult, error) { - results := make([]SearchResult, 0, option.Limit) - for i, s := range strings.Split(string(result), "\n") { - if i > option.Limit { - break - } - result, err := split(s, option) - if err != nil { - return []SearchResult{}, err - } - if result != nil { - results = append(results, *result) - } - } - return results, nil -} - -func split(str string, option *SearchOption) (*SearchResult, error) { - switch option.Command { - case RipGrep: - // first remove reset flag included in path, line - str = strings.Replace(str, "\x1b[0m", "", 4) - splitted := strings.Split(str, ":") - if len(splitted) < 3 { - return nil, nil - } - - fileName := splitted[0] - lineNum, err := strconv.Atoi(splitted[1]) - if err != nil { - return nil, errors.New("line number wrong format") - } - // change reset flag included in text to black foreground - text := strings.ReplaceAll(splitted[2], "\x1b[0m", "\x1b[39;40m") - return &SearchResult{fileName, lineNum, text}, nil - } - return nil, errors.New("wrong option") -}