Skip to content

Commit 0379be0

Browse files
author
Federico Fissore
committed
Making CTagsParser aware of functions in struct, and filtering them out.
Also moving all ctags test outputs in separate files, for easier maintenance Fixes #5 Signed-off-by: Federico Fissore <[email protected]>
1 parent 08890f7 commit 0379be0

11 files changed

+105
-42
lines changed

Diff for: src/arduino.cc/builder/ctags_parser.go

+6-4
Original file line numberDiff line numberDiff line change
@@ -43,12 +43,13 @@ const FIELD_RETURNTYPE = "returntype"
4343
const FIELD_CODE = "code"
4444
const FIELD_FUNCTION_NAME = "functionName"
4545
const FIELD_CLASS = "class"
46+
const FIELD_STRUCT = "struct"
4647

4748
const KIND_PROTOTYPE = "prototype"
4849

4950
const TEMPLATE = "template"
5051

51-
var FIELDS = map[string]bool{"kind": true, "line": true, "typeref": true, "signature": true, "returntype": true, "class": true}
52+
var FIELDS = map[string]bool{"kind": true, "line": true, "typeref": true, "signature": true, "returntype": true, "class": true, "struct": true}
5253
var KNOWN_TAG_KINDS = map[string]bool{"prototype": true, "function": true}
5354

5455
type CTagsParser struct {
@@ -66,7 +67,8 @@ func (s *CTagsParser) Run(context map[string]interface{}) error {
6667
}
6768

6869
tags = filterOutUnknownTags(tags)
69-
tags = filterOutTagsWithClass(tags)
70+
tags = filterOutTagsWithField(tags, FIELD_CLASS)
71+
tags = filterOutTagsWithField(tags, FIELD_STRUCT)
7072
tags = addPrototypes(tags)
7173
tags = removeDefinedProtypes(tags)
7274
tags = removeDuplicate(tags)
@@ -140,10 +142,10 @@ func removeDuplicate(tags []map[string]string) []map[string]string {
140142
return newTags
141143
}
142144

143-
func filterOutTagsWithClass(tags []map[string]string) []map[string]string {
145+
func filterOutTagsWithField(tags []map[string]string, field string) []map[string]string {
144146
var newTags []map[string]string
145147
for _, tag := range tags {
146-
if tag[FIELD_CLASS] == constants.EMPTY_STRING {
148+
if tag[field] == constants.EMPTY_STRING {
147149
newTags = append(newTags, tag)
148150
}
149151
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
set_values /tmp/test834438754/preproc/ctags_target.cpp /^ void set_values (int,int);$/;" kind:prototype line:5 class:Rectangle signature:(int,int) returntype:void
2+
area /tmp/test834438754/preproc/ctags_target.cpp /^ int area() {return width*height;}$/;" kind:function line:6 class:Rectangle signature:() returntype:int
3+
set_values /tmp/test834438754/preproc/ctags_target.cpp /^void Rectangle::set_values (int x, int y) {$/;" kind:function line:9 class:Rectangle signature:(int x, int y) returntype:void
4+
setup /tmp/test834438754/preproc/ctags_target.cpp /^void setup() {$/;" kind:function line:14 signature:() returntype:void
5+
loop /tmp/test834438754/preproc/ctags_target.cpp /^void loop() {$/;" kind:function line:18 signature:() returntype:void
6+
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
getBytes /tmp/test260613593/preproc/ctags_target.cpp /^ void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const;$/;" kind:prototype line:4330 signature:(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const returntype:void
2+
getBytes /tmp/test260613593/preproc/ctags_target.cpp /^boolean getBytes( byte addr, int amount ) // updates the byte array "received" with the given amount of bytes, read from the given address$/;" kind:function line:5031 signature:( byte addr, int amount ) returntype:boolean
3+
getBytes /tmp/test260613593/preproc/ctags_target.cpp /^boolean getBytes( byte addr, int amount ) // updates the byte array "received" with the given amount of bytes, read from the given address$/;" kind:function line:214 signature:( byte addr, int amount ) returntype:boolean
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
SleepCycle /tmp/sketch9043227824785312266.cpp /^ SleepCycle( const char* name );$/;" kind:prototype line:4 signature:( const char* name )
2+
SleepCycle /tmp/sketch9043227824785312266.cpp /^ SleepCycle::SleepCycle( const char* name )$/;" kind:function line:8 signature:( const char* name )
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
DEBUG /tmp/sketch5976699731718729500.cpp 1;" kind:macro line:1
2+
DISABLED /tmp/sketch5976699731718729500.cpp 2;" kind:macro line:2
3+
hello /tmp/sketch5976699731718729500.cpp /^String hello = "world!";$/;" kind:variable line:16
4+
setup /tmp/sketch5976699731718729500.cpp /^void setup() {$/;" kind:function line:18 signature:() returntype:void
5+
loop /tmp/sketch5976699731718729500.cpp /^void loop() {$/;" kind:function line:23 signature:() returntype:void
6+
debug /tmp/sketch5976699731718729500.cpp /^void debug() {$/;" kind:function line:35 signature:() returntype:void
7+
disabledIsDefined /tmp/sketch5976699731718729500.cpp /^void disabledIsDefined() {$/;" kind:function line:46 signature:() returntype:void
8+
useMyType /tmp/sketch5976699731718729500.cpp /^int useMyType(MyType type) {$/;" kind:function line:50 signature:(MyType type) returntype:int
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
A_NEW_TYPE /tmp/sketch8930345717354294915.cpp /^struct A_NEW_TYPE {$/;" kind:struct line:3
2+
foo /tmp/sketch8930345717354294915.cpp /^} foo;$/;" kind:variable line:7 typeref:struct:A_NEW_TYPE
3+
setup /tmp/sketch8930345717354294915.cpp /^void setup() {$/;" kind:function line:9 signature:() returntype:void
4+
loop /tmp/sketch8930345717354294915.cpp /^void loop() {$/;" kind:function line:13 signature:() returntype:void
5+
dostuff /tmp/sketch8930345717354294915.cpp /^void dostuff (A_NEW_TYPE * bar)$/;" kind:function line:17 signature:(A_NEW_TYPE * bar) returntype:void
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
server /tmp/sketch7210316334309249705.cpp /^YunServer server;$/;" kind:variable line:31
2+
setup /tmp/sketch7210316334309249705.cpp /^void setup() {$/;" kind:function line:33 signature:() returntype:void
3+
loop /tmp/sketch7210316334309249705.cpp /^void loop() {$/;" kind:function line:46 signature:() returntype:void
4+
process /tmp/sketch7210316334309249705.cpp /^void process(YunClient client);$/;" kind:prototype line:61 signature:(YunClient client) returntype:void
5+
process /tmp/sketch7210316334309249705.cpp /^void process(YunClient client) {$/;" kind:function line:62 signature:(YunClient client) returntype:void
6+
digitalCommand /tmp/sketch7210316334309249705.cpp /^void digitalCommand(YunClient client) {$/;" kind:function line:82 signature:(YunClient client) returntype:void
7+
analogCommand /tmp/sketch7210316334309249705.cpp /^void analogCommand(YunClient client) {$/;" kind:function line:110 signature:(YunClient client) returntype:void
8+
modeCommand /tmp/sketch7210316334309249705.cpp /^void modeCommand(YunClient client) {$/;" kind:function line:151 signature:(YunClient client) returntype:void
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
minimum /tmp/sketch8398023134925534708.cpp /^template <typename T> T minimum (T a, T b) $/;" kind:function line:2 signature:(T a, T b) returntype:templateT
2+
setup /tmp/sketch8398023134925534708.cpp /^void setup () $/;" kind:function line:9 signature:() returntype:void
3+
loop /tmp/sketch8398023134925534708.cpp /^void loop () { }$/;" kind:function line:13 signature:() returntype:void
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
setup /tmp/sketch463160524247569568.cpp /^void setup() {$/;" kind:function line:1 signature:() returntype:void
2+
loop /tmp/sketch463160524247569568.cpp /^void loop() {$/;" kind:function line:6 signature:() returntype:void
3+
SRAM_writeAnything /tmp/sketch463160524247569568.cpp /^template <class T> int SRAM_writeAnything(int ee, const T& value)$/;" kind:function line:11 signature:(int ee, const T& value) returntype:template int
4+
SRAM_readAnything /tmp/sketch463160524247569568.cpp /^template <class T> int SRAM_readAnything(int ee, T& value)$/;" kind:function line:21 signature:(int ee, T& value) returntype:template int
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
sensorData /tmp/build7315640391316178285.tmp/preproc/ctags_target.cpp /^struct sensorData {$/;" kind:struct line:2
2+
sensorData /tmp/build7315640391316178285.tmp/preproc/ctags_target.cpp /^ sensorData(int iStatus, float iTemp, float iMinTemp) : status(iStatus), temp(iTemp), minTemp(iMinTemp) {}$/;" kind:function line:3 struct:sensorData signature:(int iStatus, float iTemp, float iMinTemp)
3+
sensorData /tmp/build7315640391316178285.tmp/preproc/ctags_target.cpp /^ sensorData() : status(-1), temp(1023.0), minTemp(1023.0) {}$/;" kind:function line:4 struct:sensorData signature:()
4+
sensors /tmp/build7315640391316178285.tmp/preproc/ctags_target.cpp /^sensorData sensors[2];$/;" kind:variable line:10
5+
sensor1 /tmp/build7315640391316178285.tmp/preproc/ctags_target.cpp /^sensorData sensor1; \/\/(-1,1023.0,1023.0);$/;" kind:variable line:12
6+
sensor2 /tmp/build7315640391316178285.tmp/preproc/ctags_target.cpp /^sensorData sensor2; \/\/(-1,1023.0,1023.0);$/;" kind:variable line:13
7+
setup /tmp/build7315640391316178285.tmp/preproc/ctags_target.cpp /^void setup() {$/;" kind:function line:16 signature:() returntype:void
8+
loop /tmp/build7315640391316178285.tmp/preproc/ctags_target.cpp /^void loop() {$/;" kind:function line:22 signature:() returntype:void

Diff for: src/arduino.cc/builder/test/ctags_parser_test.go

+52-38
Original file line numberDiff line numberDiff line change
@@ -33,20 +33,18 @@ import (
3333
"arduino.cc/builder"
3434
"arduino.cc/builder/constants"
3535
"github.com/stretchr/testify/require"
36+
"io/ioutil"
37+
"path/filepath"
3638
"testing"
3739
)
3840

3941
func TestCTagsParserShouldListPrototypes(t *testing.T) {
4042
context := make(map[string]interface{})
4143

42-
context[constants.CTX_CTAGS_OUTPUT] = "server\t/tmp/sketch7210316334309249705.cpp\t/^YunServer server;$/;\"\tkind:variable\tline:31\n" +
43-
"setup\t/tmp/sketch7210316334309249705.cpp\t/^void setup() {$/;\"\tkind:function\tline:33\tsignature:()\treturntype:void\n" +
44-
"loop\t/tmp/sketch7210316334309249705.cpp\t/^void loop() {$/;\"\tkind:function\tline:46\tsignature:()\treturntype:void\n" +
45-
"process\t/tmp/sketch7210316334309249705.cpp\t/^void process(YunClient client);$/;\"\tkind:prototype\tline:61\tsignature:(YunClient client)\treturntype:void\n" +
46-
"process\t/tmp/sketch7210316334309249705.cpp\t/^void process(YunClient client) {$/;\"\tkind:function\tline:62\tsignature:(YunClient client)\treturntype:void\n" +
47-
"digitalCommand\t/tmp/sketch7210316334309249705.cpp\t/^void digitalCommand(YunClient client) {$/;\"\tkind:function\tline:82\tsignature:(YunClient client)\treturntype:void\n" +
48-
"analogCommand\t/tmp/sketch7210316334309249705.cpp\t/^void analogCommand(YunClient client) {$/;\"\tkind:function\tline:110\tsignature:(YunClient client)\treturntype:void\n" +
49-
"modeCommand\t/tmp/sketch7210316334309249705.cpp\t/^void modeCommand(YunClient client) {$/;\"\tkind:function\tline:151\tsignature:(YunClient client)\treturntype:void\n"
44+
bytes, err := ioutil.ReadFile(filepath.Join("ctags_output", "TestCTagsParserShouldListPrototypes.txt"))
45+
NoError(t, err)
46+
47+
context[constants.CTX_CTAGS_OUTPUT] = string(bytes)
5048

5149
ctagsParser := builder.CTagsParser{PrototypesField: constants.CTX_PROTOTYPES}
5250
ctagsParser.Run(context)
@@ -64,9 +62,10 @@ func TestCTagsParserShouldListPrototypes(t *testing.T) {
6462
func TestCTagsParserShouldListTemplates(t *testing.T) {
6563
context := make(map[string]interface{})
6664

67-
context[constants.CTX_CTAGS_OUTPUT] = "minimum\t/tmp/sketch8398023134925534708.cpp\t/^template <typename T> T minimum (T a, T b) $/;\"\tkind:function\tline:2\tsignature:(T a, T b)\treturntype:templateT\n" +
68-
"setup\t/tmp/sketch8398023134925534708.cpp\t/^void setup () $/;\"\tkind:function\tline:9\tsignature:()\treturntype:void\n" +
69-
"loop\t/tmp/sketch8398023134925534708.cpp\t/^void loop () { }$/;\"\tkind:function\tline:13\tsignature:()\treturntype:void\n"
65+
bytes, err := ioutil.ReadFile(filepath.Join("ctags_output", "TestCTagsParserShouldListTemplates.txt"))
66+
NoError(t, err)
67+
68+
context[constants.CTX_CTAGS_OUTPUT] = string(bytes)
7069

7170
ctagsParser := builder.CTagsParser{PrototypesField: constants.CTX_PROTOTYPES}
7271
ctagsParser.Run(context)
@@ -82,10 +81,10 @@ func TestCTagsParserShouldListTemplates(t *testing.T) {
8281
func TestCTagsParserShouldListTemplates2(t *testing.T) {
8382
context := make(map[string]interface{})
8483

85-
context[constants.CTX_CTAGS_OUTPUT] = "setup\t/tmp/sketch463160524247569568.cpp\t/^void setup() {$/;\"\tkind:function\tline:1\tsignature:()\treturntype:void\n" +
86-
"loop\t/tmp/sketch463160524247569568.cpp\t/^void loop() {$/;\"\tkind:function\tline:6\tsignature:()\treturntype:void\n" +
87-
"SRAM_writeAnything\t/tmp/sketch463160524247569568.cpp\t/^template <class T> int SRAM_writeAnything(int ee, const T& value)$/;\"\tkind:function\tline:11\tsignature:(int ee, const T& value)\treturntype:template int\n" +
88-
"SRAM_readAnything\t/tmp/sketch463160524247569568.cpp\t/^template <class T> int SRAM_readAnything(int ee, T& value)$/;\"\tkind:function\tline:21\tsignature:(int ee, T& value)\treturntype:template int\n"
84+
bytes, err := ioutil.ReadFile(filepath.Join("ctags_output", "TestCTagsParserShouldListTemplates2.txt"))
85+
NoError(t, err)
86+
87+
context[constants.CTX_CTAGS_OUTPUT] = string(bytes)
8988

9089
ctagsParser := builder.CTagsParser{PrototypesField: constants.CTX_PROTOTYPES}
9190
ctagsParser.Run(context)
@@ -102,8 +101,10 @@ func TestCTagsParserShouldListTemplates2(t *testing.T) {
102101
func TestCTagsParserShouldDealWithClasses(t *testing.T) {
103102
context := make(map[string]interface{})
104103

105-
context[constants.CTX_CTAGS_OUTPUT] = "SleepCycle\t/tmp/sketch9043227824785312266.cpp\t/^ SleepCycle( const char* name );$/;\"\tkind:prototype\tline:4\tsignature:( const char* name )\n" +
106-
"SleepCycle\t/tmp/sketch9043227824785312266.cpp\t/^ SleepCycle::SleepCycle( const char* name )$/;\"\tkind:function\tline:8\tsignature:( const char* name )\n"
104+
bytes, err := ioutil.ReadFile(filepath.Join("ctags_output", "TestCTagsParserShouldDealWithClasses.txt"))
105+
NoError(t, err)
106+
107+
context[constants.CTX_CTAGS_OUTPUT] = string(bytes)
107108

108109
ctagsParser := builder.CTagsParser{PrototypesField: constants.CTX_PROTOTYPES}
109110
ctagsParser.Run(context)
@@ -116,11 +117,10 @@ func TestCTagsParserShouldDealWithClasses(t *testing.T) {
116117
func TestCTagsParserShouldDealWithStructs(t *testing.T) {
117118
context := make(map[string]interface{})
118119

119-
context[constants.CTX_CTAGS_OUTPUT] = "A_NEW_TYPE\t/tmp/sketch8930345717354294915.cpp\t/^struct A_NEW_TYPE {$/;\"\tkind:struct\tline:3\n" +
120-
"foo\t/tmp/sketch8930345717354294915.cpp\t/^} foo;$/;\"\tkind:variable\tline:7\ttyperef:struct:A_NEW_TYPE\n" +
121-
"setup\t/tmp/sketch8930345717354294915.cpp\t/^void setup() {$/;\"\tkind:function\tline:9\tsignature:()\treturntype:void\n" +
122-
"loop\t/tmp/sketch8930345717354294915.cpp\t/^void loop() {$/;\"\tkind:function\tline:13\tsignature:()\treturntype:void\n" +
123-
"dostuff\t/tmp/sketch8930345717354294915.cpp\t/^void dostuff (A_NEW_TYPE * bar)$/;\"\tkind:function\tline:17\tsignature:(A_NEW_TYPE * bar)\treturntype:void\n"
120+
bytes, err := ioutil.ReadFile(filepath.Join("ctags_output", "TestCTagsParserShouldDealWithStructs.txt"))
121+
NoError(t, err)
122+
123+
context[constants.CTX_CTAGS_OUTPUT] = string(bytes)
124124

125125
ctagsParser := builder.CTagsParser{PrototypesField: constants.CTX_PROTOTYPES}
126126
ctagsParser.Run(context)
@@ -136,14 +136,10 @@ func TestCTagsParserShouldDealWithStructs(t *testing.T) {
136136
func TestCTagsParserShouldDealWithMacros(t *testing.T) {
137137
context := make(map[string]interface{})
138138

139-
context[constants.CTX_CTAGS_OUTPUT] = "DEBUG\t/tmp/sketch5976699731718729500.cpp\t1;\"\tkind:macro\tline:1\n" +
140-
"DISABLED\t/tmp/sketch5976699731718729500.cpp\t2;\"\tkind:macro\tline:2\n" +
141-
"hello\t/tmp/sketch5976699731718729500.cpp\t/^String hello = \"world!\";$/;\"\tkind:variable\tline:16\n" +
142-
"setup\t/tmp/sketch5976699731718729500.cpp\t/^void setup() {$/;\"\tkind:function\tline:18\tsignature:()\treturntype:void\n" +
143-
"loop\t/tmp/sketch5976699731718729500.cpp\t/^void loop() {$/;\"\tkind:function\tline:23\tsignature:()\treturntype:void\n" +
144-
"debug\t/tmp/sketch5976699731718729500.cpp\t/^void debug() {$/;\"\tkind:function\tline:35\tsignature:()\treturntype:void\n" +
145-
"disabledIsDefined\t/tmp/sketch5976699731718729500.cpp\t/^void disabledIsDefined() {$/;\"\tkind:function\tline:46\tsignature:()\treturntype:void\n" +
146-
"useMyType\t/tmp/sketch5976699731718729500.cpp\t/^int useMyType(MyType type) {$/;\"\tkind:function\tline:50\tsignature:(MyType type)\treturntype:int\n"
139+
bytes, err := ioutil.ReadFile(filepath.Join("ctags_output", "TestCTagsParserShouldDealWithMacros.txt"))
140+
NoError(t, err)
141+
142+
context[constants.CTX_CTAGS_OUTPUT] = string(bytes)
147143

148144
ctagsParser := builder.CTagsParser{PrototypesField: constants.CTX_PROTOTYPES}
149145
ctagsParser.Run(context)
@@ -161,9 +157,10 @@ func TestCTagsParserShouldDealWithMacros(t *testing.T) {
161157
func TestCTagsParserShouldDealFunctionWithDifferentSignatures(t *testing.T) {
162158
context := make(map[string]interface{})
163159

164-
context[constants.CTX_CTAGS_OUTPUT] = "getBytes /tmp/test260613593/preproc/ctags_target.cpp /^ void getBytes(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const;$/;\" kind:prototype line:4330 signature:(unsigned char *buf, unsigned int bufsize, unsigned int index=0) const returntype:void\n" +
165-
"getBytes /tmp/test260613593/preproc/ctags_target.cpp /^boolean getBytes( byte addr, int amount ) // updates the byte array \"received\" with the given amount of bytes, read from the given address$/;\" kind:function line:5031 signature:( byte addr, int amount ) returntype:boolean\n" +
166-
"getBytes /tmp/test260613593/preproc/ctags_target.cpp /^boolean getBytes( byte addr, int amount ) // updates the byte array \"received\" with the given amount of bytes, read from the given address$/;\" kind:function line:214 signature:( byte addr, int amount ) returntype:boolean"
160+
bytes, err := ioutil.ReadFile(filepath.Join("ctags_output", "TestCTagsParserShouldDealFunctionWithDifferentSignatures.txt"))
161+
NoError(t, err)
162+
163+
context[constants.CTX_CTAGS_OUTPUT] = string(bytes)
167164

168165
ctagsParser := builder.CTagsParser{PrototypesField: constants.CTX_PROTOTYPES}
169166
ctagsParser.Run(context)
@@ -177,11 +174,28 @@ func TestCTagsParserShouldDealFunctionWithDifferentSignatures(t *testing.T) {
177174
func TestCTagsParserClassMembersAreFilteredOut(t *testing.T) {
178175
context := make(map[string]interface{})
179176

180-
context[constants.CTX_CTAGS_OUTPUT] = "set_values\t/tmp/test834438754/preproc/ctags_target.cpp\t/^ void set_values (int,int);$/;\"\tkind:prototype\tline:5\tclass:Rectangle\tsignature:(int,int)\treturntype:void\n" +
181-
"area\t/tmp/test834438754/preproc/ctags_target.cpp\t/^ int area() {return width*height;}$/;\"\tkind:function\tline:6\tclass:Rectangle\tsignature:()\treturntype:int\n" +
182-
"set_values\t/tmp/test834438754/preproc/ctags_target.cpp\t/^void Rectangle::set_values (int x, int y) {$/;\"\tkind:function\tline:9\tclass:Rectangle\tsignature:(int x, int y)\treturntype:void\n" +
183-
"setup\t/tmp/test834438754/preproc/ctags_target.cpp\t/^void setup() {$/;\"\tkind:function\tline:14\tsignature:()\treturntype:void\n" +
184-
"loop\t/tmp/test834438754/preproc/ctags_target.cpp\t/^void loop() {$/;\"\tkind:function\tline:18\tsignature:()\treturntype:void\n"
177+
bytes, err := ioutil.ReadFile(filepath.Join("ctags_output", "TestCTagsParserClassMembersAreFilteredOut.txt"))
178+
NoError(t, err)
179+
180+
context[constants.CTX_CTAGS_OUTPUT] = string(bytes)
181+
182+
ctagsParser := builder.CTagsParser{PrototypesField: constants.CTX_PROTOTYPES}
183+
ctagsParser.Run(context)
184+
185+
prototypes := context[constants.CTX_PROTOTYPES].([]string)
186+
187+
require.Equal(t, 2, len(prototypes))
188+
require.Equal(t, "void setup();", prototypes[0])
189+
require.Equal(t, "void loop();", prototypes[1])
190+
}
191+
192+
func TestCTagsParserStructWithFunctions(t *testing.T) {
193+
context := make(map[string]interface{})
194+
195+
bytes, err := ioutil.ReadFile(filepath.Join("ctags_output", "TestCTagsParserStructWithFunctions.txt"))
196+
NoError(t, err)
197+
198+
context[constants.CTX_CTAGS_OUTPUT] = string(bytes)
185199

186200
ctagsParser := builder.CTagsParser{PrototypesField: constants.CTX_PROTOTYPES}
187201
ctagsParser.Run(context)

0 commit comments

Comments
 (0)