Thread: [Ctags] Can ctag skip code block enclosed in #ifdef ... #endif
Brought to you by:
dhiebert
From: Steven W. <nar...@gm...> - 2008-10-24 18:25:48
|
Hi, I am dealing with a stack of legacy code, which are .c files but contain code-generator generated code looks like: in foo.c, ... #ifdef OBJECTIF_CODEGENERATION class FooClass { #endif OBJECTIF_CODEGENERATION ... void abc_func(void) { ... } void another_func(void) { ... } #ifdef OBJECTIF_CODEGENERATION }; #endif OBJECTIF_CODEGENERATION And, actually, the 'OBJECTIF_CODEGENERATION' is undefined, so the 'class ... {}' takes no effect. When running ctags on these kind of files, my problem is: If I treat this file as a C source, abc_func() and another_func() will be skipped by ctags (I did checked the outputed tags file); On the other hand, if I treat this file as a CPP source, the above two functions wil be included in the tags file, but the tag is of no use, because they are under a non-existed class FooClass, so I can not ctrl+] to their definition from other piece of code. Is there a solution to this problem? It would be good if I can have 'ctag' to skip anything between the "#ifdef OBJECTIF_CODEGENERATION ... #endif". Thanks in advance. |