我打算创建C++ IDE Vim可扩展插件.制作满足我自己需求的产品并不是问题.
这个插件将用于工作区,项目及其依赖项.
这适用于unix like system with gcc as c ++ compiler.
所以我的问题是你需要从IDE中获得哪些最重要的东西?请注意这是Vim,几乎所有的几乎都可以.
几个问题:
您经常使用其中的项目及其之间的关系来管理不同的工作区?这个过程中最烦人的事情是什么.
是否有必要从Makefile重新创建"项目"?
谢谢.
创建此插件的原因:
通过一堆插件和自编的插件,我们可以模拟大多数事情.当我们开展一个大型的"不定式"项目时,这是可以的.
当我们已经有一个makefile或jam文件时很好.我们必须创建自己的所有者时很糟糕,主要是通过复制和粘贴现有.
所有ctags和cscope相关的东西都必须知道真实项目文件的列表.我们创造了这样的.这个
以上是我开始工作的一些原因.我想听听你的.
有很多问题.其中大多数已经通过独立和通用插件解决.
给定同一目录中的一组文件,每个文件可以是项目的唯一文件 - 我总是有一个测试/目录,我托管宠物项目,或者我测试编译器的行为.相反,来自一组目录的文件可以是同一个非常大的项目的一部分.
最后,真正定义项目的是(叶子)"makefile" - 为什么要限制自己制作文件,scons,autotools,ant,(b)jam,aap?BTW,Sun-Makefiles或GNU-Makefiles?
此外,我认为让vim知道当前项目中的确切文件没有任何意义.即便如此,众所周知的project.vim插件已经完成了这项工作.我个人使用local_vimrc插件(我维护一个,我在SF上看过另外两个).有了这个插件,我只需要将一个_vimrc_local.vim文件放在一个目录中,其中定义的内容(:mappings,:functions,variables,:commands,:settings,...)将应用于该目录下的每个文件.目录 - 我处理一个有十几个子组件的大项目,每个组件都在自己的目录中,有自己的makefile(甚至没有名为Makefile,也没有目录的名称)
每当我们想要做一些复杂的事情(重构,比如重命名 - 函数,重命名 - 变量,生成 - 切换 - 来自当前变量 - 这是一个真实的......)时,我们需要vim来理解C++.大多数现有插件都依赖于ctags.不幸的是,ctags对C++的理解非常有限 - 我已经写了一些高级的东西,但我经常被ctags提供的糟糕信息所阻止.cscope并不是更好.最终,我认为我们必须集成一个先进的工具,如elsa/pork/ionk/deshydrata/....
NB:那就是现在,我集中了大部分精力.
我不知道跳转到与当前令牌相关联的doxygen定义有多困难.第一个难点是要了解光标的位置(我猜omnicppcomplete已经在这方面做了很多工作).第二个难点是要了解doxygen如何从代码中为每个符号生成页面名称.
使用greasemonkey插件,在doxygen页面的右侧代码中打开vim应该很简单.
对于那些在linux下运行vim并且使用gdb作为调试器的人来说,有一个pyclewn项目.不幸的是,它不支持像dbx这样的其他调试器.
当我运行或调试我编译的程序时,我想选择弹出一个对话框,询问命令行参数.它应该记住我用于项目的最后20个左右的参数.我不想为此编辑项目属性.
我的BuildToolsWrapper插件有一个g:BTW_run_parameters
选项(可以使用project/local_vimrc解决方案轻松覆盖).添加映射以询问使用的参数非常简单.(参见:h inputdialog())
使用源控制系统
已经存在几个解决此问题的插件.这与C++无关,它不能由C++套件解决.
调试器
源代码导航工具(现在我使用的是http://www.vim.org/scripts/script.php?script_id=1638插件和ctags)
从ide编译lib/project/one源文件
按项目中的文件导航
使用源控制系统
轻松访问文件更改历史记录
重命名文件/变量/方法函数
轻松访问c ++帮助
轻松更改项目设置(Makefile,jam等)
路径/变量/方法/参数的快速自动填充
新范围的智能识别(如果开发人员有可能设置识别规则,那将是一件好事)
通过代码传递标识突出显示不正确(标签代替空格,";"后面的空格,"(或")"附近的空格等)
通过召集重新格式化选定的块