如何为C++ STL 模板文件生成标记文件,例如未来
How to generate tags file for a C++ STL template file like future?
我想为C++ STL 文件生成一个标签文件。但它似乎效果不佳。例如,我使用以下命令
sudo ctags -R --c++-kinds=+p --fields=+iaS --extra=+q future
"未来"是来自海湾合作委员会的文件
结果,标记文件如下所示
!_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
!_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
!_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
!_TAG_PROGRAM_NAME Exuberant Ctags //
!_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
!_TAG_PROGRAM_VERSION 5.8 //
找不到任何标签,例如在文件中定义的"异步","未来",未来,如下所示,
template<typename _Fn, typename... _Args>
future<typename result_of<_Fn(_Args...)>::type>
async(launch __policy, _Fn&& __fn, _Args&&... __args);
template<typename _Fn, typename... _Args>
future<typename result_of<_Fn(_Args...)>::type>
async(_Fn&& __fn, _Args&&... __args);
您在命令行上指定了"future"作为输入文件名。我不知道你使用的是哪种ctags实现,但我想ctags将来无法知道使用的语言。因此,ctags 无法选择适合"未来"的解析器。如果使用 --language-force=C++ 显式指定"future"的语言,则 ctags 可能会很好地工作。以下几行显示了通用 ctags(https://ctags.io( 标签两个"异步"。
[jet@localhost]/tmp% cat future
template<typename _Fn, typename... _Args>
future<typename result_of<_Fn(_Args...)>::type>
async(launch __policy, _Fn&& __fn, _Args&&... __args);
template<typename _Fn, typename... _Args>
future<typename result_of<_Fn(_Args...)>::type>
async(_Fn&& __fn, _Args&&... __args);
[jet@localhost]/tmp% ctags --version
Universal Ctags 0.0.0(d30a62d), Copyright (C) 2015 Universal Ctags Team
Universal Ctags is derived from Exuberant Ctags.
Exuberant Ctags 5.8, Copyright (C) 1996-2009 Darren Hiebert
Compiled: Jun 26 2017, 00:15:01
URL: https://ctags.io/
Optional compiled features: +wildcards, +regex, +multibyte, +option-directory, +xpath, +json, +interactive, +sandbox, +yaml, +aspell
[jet@localhost]/tmp% ctags --kinds-C++=+p --fields=+iaS --extras=+q --language-force=C++ -o - future
async future /^async(_Fn&& __fn, _Args&&... __args);$/;" p typeref:typename:future<typename result_of<_Fn (_Args...)>::type> file: signature:(_Fn && __fn,_Args &&...__args)
async future /^async(launch __policy, _Fn&& __fn, _Args&&... __args);$/;" p typeref:typename:future<typename result_of<_Fn (_Args...)>::type> file: signature:(launch __policy,_Fn && __fn,_Args &&...__args)
相关文章:
- .cpp和.h文件中的模板专用化声明
- 为什么两个不同的未命名名称空间可以共存于一个cpp文件中
- 文本文件中的单词链表
- CMake-按正确顺序将项目与C运行时对象文件链接
- 使用新行和不使用新行读取文件
- 在C++程序中输入的文本文件将不起作用,除非文本被复制和粘贴
- 挂起和取消挂起一个文件DLL
- 如何确定我已使用非编码文件到达 EOF?
- 命名空间中具有.h和.cpp文件的类
- 如何使用ndk-build.cmd构建Android.so文件
- 从包含m行的文件中提取n行,必要时(惰性地)重复该文件
- 读取文件并输入到矢量中
- 在Linux中哪里可以找到互斥、未来等的源代码
- 在C++中查找文件
- c++库的公共头文件中应该包含什么
- 用c++从输入文件中读取另一行
- Cppcheck生成xml转储文件
- 读取文件的最后一行并输入到链接列表时出错
- 无法编译 rtmidi 测试 cmidiin.cpp 文件, 非法指令
- 如何为C++ STL 模板文件生成标记文件,例如未来