18

我使用标记文件来完成代码并快速查看参数、重载、文件(声明的位置)等。在哪里可以找到 C99、C++03 和 C++0x 标准库的免费可用标记? (C89 总比没有好,但我宁愿拥有 C99。)

我更喜欢没有杂乱无章的标签;例如,实现对参数使用保留名称,因此我宁愿看到“std::min(a, b)”,而不是“std::min(_M_a, _M_b)”。这个问题和其他问题排除了从实际实现中生成的可能性。虽然我认为一些后处理可能会清理这些(尤其是标识符问题),但从头开始编写似乎更容易。

4

5 回答 5

5

通常很难从中提取标签,libc因为函数声明很可能在头文件中作为复杂的宏实现。可以nm用来查找由 a 库导出的符号列表,但这并不能解决参数列表。

我认为这里最好的解决方案是解析文档:

libc以下是以易于解析的格式导出的所有函数和宏的列表:

http://www.gnu.org/s/libc/manual/html_node/Function-Index.html#Function-Index

每个函数都链接到一个页面,该页面列出了该函数的参数,也采用可预测的格式:

http://www.gnu.org/s/libc/manual/html_node/Block-Input_002fOutput.html#index-fread-1010

BeautifulSoup使用Python 模块解析页面非常容易。

于 2010-10-15T20:52:22.310 回答
2

对于那些确切的要求,您可能必须自己创建那些:(

于 2010-10-16T08:25:16.500 回答
2

使用标题目录上的 ctags 为自己生成一个标签库,就像您在问题中链接的帖子博客中所写

于 2010-10-13T11:28:00.207 回答
0

如果完成标准库是主要问题,clang vim 插件在完全不使用标签的情况下做得很好。然而,补全中仍然有一些参数“cruft”,因为它使用了标题使用的符号。

您主要只是在 ~/.vim/plugin 中放置一个文件,安装 clang,它就可以工作了。比全能路径简单得多。到目前为止,我在有限使用它的过程中遇到的唯一问题是,有时完成它的速度很慢。

于 2010-11-26T00:35:34.897 回答
0

这不是一个完整的答案。有人发布了一个perl 脚本来从 SGI 的 STL 文档中提取标签。它不包括函数参数名称。由于它适用于文档,因此没有任何问题。希望这个对你有帮助。

于 2010-10-15T16:23:35.560 回答