然而,令人失望的是,ctags是一个非常简单的解析器。
有没有更完整的替代品?
特别是我在寻找的东西:
>为函数声明扩展#define(x,y)x ## y样式宏
>进程#include语句
>允许为依赖关系指定包含路径
我看到clang提供了一个程序api访问的c AST,所以肯定这不是很难做到吗?
有人已经做了吗?
– –
编辑:
这些不切断它:
> clang_indexer – 不编译;当它(在黑客之后),不工作(无尽的错误)。
> clang_complete – 似乎不比ctags好。没有上下文特定的建议,没有结构完成,没有函数参数,没有宏扩展;只是一个符号列表和他们来自的文件。
我最近得到的是一个叫gccsense.不幸的是,该项目似乎被遗弃,而且它是困难的设置,因为英语不是作者的第一语言。
我从另一个角度结束了问题。我决定intellisense / autocomplete对我的编码比拥有vim的所有可用功能更重要,所以我选择了一个IDE,如Eclipse,然后找到一个模拟Vim的Eclipse插件。到目前为止,我发现的最好的插件类型是Viable。
这里是我已经尝试并发现不满意的选项的完整列表:
> clang – 需要从gcc切换到另一个更好的编译器。问题是gcc更成熟[编辑显然你不需要切换编译器见下面的注释,我可以给这个另一个尝试在未来。]
> gccsense – 好主意(使用gcc给你代码完成),但项目上的工作被放弃:(和版本是起来是beta质量
> xref in vim – xref是一个伟大的独立工具,并且非常适合解析C.它可以在vim与vxref工作,但是从我的经验,xref缺乏解析当前C代码和开发上已停止(以及开发vxref。)
> eclim – 似乎工作伟大的Java支持使用eclipse,极其缓慢,完全不可靠时解析C或C代码。通常发生的是一切都工作了很长时间,但然后突然,解析器停止解析你编写的任何新的代码,没有什么东西加载eclipse本身和迫使eclipse重新解析项目似乎有帮助。此外,更少的一个重要的事实,但更多的是一个烦恼是eclim接管处理错误,所以它纠正的方式vim通常解析错误从gcc意味着你没有访问quickfix列表是恼人的。
> netbeans jvi – 很多人发誓这样,但我有各种问题与jvi。我遇到的一个主要问题是jvi会说我在正常模式,但真的是在插入模式,没有什么不重启会有所帮助。
> eclipse viplugin / vrapper – 这开始看起来像最好的选择;每个都有自己的一套bug缺乏功能,但仍是最有吸引力,直到我发现可行,似乎是最稳定的,并有最多的功能。
如果你找到一个解决方案,你很高兴,请分享它在一个评论,因为我会对它感兴趣。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。