tangled
alpha
login
or
join now
selman.me
/
things
0
fork
atom
this repo has no description
0
fork
atom
overview
issues
pulls
pipelines
tsquery: add option to print capture names
Selman Kayrancioglu
1 year ago
fd96c3a4
5d9837b2
+22
-5
1 changed file
expand all
collapse all
unified
split
tsquery
main.go
+22
-5
tsquery/main.go
reviewed
···
34
34
fs := flag.NewFlagSet("tsquery", flag.ExitOnError)
35
35
fs.SetOutput(stderr)
36
36
37
37
-
flagLang := fs.String("l", "go", "language")
38
38
-
var flagCaptues stringsFlag
37
37
+
var (
38
38
+
flagLang string
39
39
+
flagCaptues stringsFlag
40
40
+
flagWithCaptureNames bool
41
41
+
)
42
42
+
43
43
+
fs.StringVar(&flagLang, "l", "go", "language")
39
44
fs.Var(&flagCaptues, "c", "captures to output (comma-separated)")
45
45
+
fs.BoolVar(&flagWithCaptureNames, "n", false, "output capture names")
40
46
41
47
fs.Usage = func() {
42
48
fmt.Fprintf(fs.Output(), "Usage: %s [options] <query> [<file>]\n", fs.Name())
···
70
76
}
71
77
72
78
lang := golang.GetLanguage()
73
73
-
switch *flagLang {
79
79
+
switch flagLang {
74
80
case "go":
75
81
lang = golang.GetLanguage()
76
82
default:
77
77
-
return fmt.Errorf("unsupported language: %s", *flagLang)
83
83
+
return fmt.Errorf("unsupported language: %s", flagLang)
84
84
+
}
85
85
+
86
86
+
dump := func(capture string, value string) {
87
87
+
fmt.Fprintln(stdout, value)
88
88
+
}
89
89
+
90
90
+
if flagWithCaptureNames {
91
91
+
dump = func(capture string, value string) {
92
92
+
fmt.Fprintf(stdout, "%s: %s\n", capture, value)
93
93
+
}
78
94
}
79
95
80
96
src, err := io.ReadAll(in)
···
107
123
continue
108
124
}
109
125
110
110
-
fmt.Fprintf(stdout, "%s: %s\n", capture, c.Node.Content(src))
126
126
+
value := c.Node.Content(src)
127
127
+
dump(capture, value)
111
128
}
112
129
}
113
130