Tag: ctags

由于#ifdef,ctags在源文件上使用不平衡的大括号

我正在使用ctags为我正在处理的C项目生成一个tags文件,但文件中缺少许多function。 这似乎是由于使用#ifdef导致源文件中的不平衡大括号引起的。 一个(简化的)例子: #include struct mystruct { long member; #ifndef _MSC_VER }__attribute__ ((packed)); #else /* _MSC_VER */ }; #pragma pack(pop) #endif /* _MSC_VER */ char* greeting_text(){ return “Hello world\n”; } int main( int argc, const char* argv[] ){ char * greeting = greeting_text(); printf(greeting); return 0; } 这可以在Linux下用gcc -Wall完美编译和工作。 但是,如果我使用ctags problem.c解析它,那么tags文件只包含mystruct条目 – 缺少函数。 ctags –verbose报告: […]

一般在vim / Tag组织中一次使用多个标记文件

(对于C标签道歉,我是为语法突出显示的。这更像是一个vim问题。如果有人比我认为应该删除标签的人更多,请这样做) 说我有这个目录结构: Directory ~/Code/Test/ containing file1.c file2.c file4.c and Sub Directory ~/Code/Test/Sub/ containing file3.c file1.c中: #include #include “file2.c” #include “Sub/file3.c” void function1(); int main (int argc, char *argv[]) { function1(); function2(); function3(); return 0; } void function1() { printf(“1\n”); } file2.c中: #include void function2(); void function2() { printf(“2\n”); } 子/ file3.c中: #include “../file4.c” void function3(); […]

ctags多线C函数原型

有没有办法让ctags在C中处理多行函数原型? 我已经四处搜索了–fields=+S应该做多线原型,但我不能让它工作: ctags -x –c-kinds=pf –fields=+S file 文件: int foo(int x, int y ); ctags只返回: foo(int (注意,返回类型也缺失) 最终我想获得类似的输出 int foo(int x, int y); 要么 int foo(int x, int y 是–fields=+S不是正确的方法? 我缺少哪些ctags字段? 一般的指针? 如果没有办法在ctags中做任何推荐的程序? (我目前正在寻找unrustify)