tianheiGE 发表于 2014-5-3 10:33:50

寻求能自动解析编译条件的c/c++编辑器

本帖最后由 tianheiGE 于 2014-5-3 12:45 编辑

RT,有个比较大的项目代码里面用了很多条件编译,阅读的时候碰到了编译条件的时候不知道这段有没有编译,每次都要去查看编译条件的宏,感觉很不方便,不知道有没那个好用的编辑器能自动解析这些编译条件,不编译的段灰色显示,谢谢!
试过了几个多是要#if 0   #endif的才会灰色,带宏的多没解析



编辑:
        发现VS是有这个功能的,而且VS还有个好用的编辑插件Visual Assist X,决定试试VS,坛友说Eclipse也可以,但是感觉它用起来好像有点复杂,但是比VS应该轻巧很多

kelp 发表于 2014-5-3 11:25:34

eclipse可以

error_dan 发表于 2014-5-3 11:49:18

编译条件是编译器给出的啊,编写代码的过程中编译器根本就在一边晾着,没有对代码做出任何操作,编辑器怎么可能获得这些宏参数呢?

真想实现这样的功能,建议显式的把编译条件宏自己写出来.

dr2001 发表于 2014-5-3 11:51:58

Eclipse可以,它似乎是自己实现了一套准编译器。
CodeBlocks不是太复杂的可以解析,复杂的不行。

基于Clang的自动完成系统多数都能搞定,但是配置起来比较麻烦。这个VIM,SubLimeText,EMacs有用到的。

dr2001 发表于 2014-5-3 11:53:42

error_dan 发表于 2014-5-3 11:49
编译条件是编译器给出的啊,编写代码的过程中编译器根本就在一边晾着,没有对代码做出任何操作,编辑器怎么可 ...

可以的,这个是现代编辑器的一个趋势了;本来好的自动完成就是要“编译”代码的。
要么自己实现,要么用CLang的接口。

GCC/VC好像还没提供类似的功能。

error_dan 发表于 2014-5-3 12:06:28

dr2001 发表于 2014-5-3 11:53
可以的,这个是现代编辑器的一个趋势了;本来好的自动完成就是要“编译”代码的。
要么自己实现,要么用C ...

持续集成神马的吗?咱嵌入式领域在工具上还是落后了啊~

所以这个功能需要完整的工具链来提供,而不是寻找一个NB的纯编辑器...(我刚才真去翻了我的NP++,木有这样的插件...,SubLimeText2装了以后就用来撸高级语言了,还真没想到...

tianheiGE 发表于 2014-5-3 12:26:59

kelp 发表于 2014-5-3 11:25
eclipse可以

恩,装了,感觉有点复杂我好好看看怎么用,谢谢!

tianheiGE 发表于 2014-5-3 12:28:51

error_dan 发表于 2014-5-3 11:49
编译条件是编译器给出的啊,编写代码的过程中编译器根本就在一边晾着,没有对代码做出任何操作,编辑器怎么可 ...

这个我觉的可以实现吧,编译过程是先预处理,再编译。编辑器要能进行预处理就知道哪些不会被编译的代码了,不是这样吗?

tianheiGE 发表于 2014-5-3 12:29:39

dr2001 发表于 2014-5-3 11:51
Eclipse可以,它似乎是自己实现了一套准编译器。
CodeBlocks不是太复杂的可以解析,复杂的不行。



恩,谢谢,我试试

error_dan 发表于 2014-5-3 12:35:10

tianheiGE 发表于 2014-5-3 12:28
这个我觉的可以实现吧,编译过程是先预处理,再编译。编辑器要能进行预处理就知道哪些不会被编译的代码了 ...

对,就是这个意思,表面上它是个编辑器,其实后台跑着一个编译器前端,不断的对你的代码进行parse和analysis,这里不仅仅局限于预编译,还有其他编译器前端应该干的事情,都是一边编辑 一边就做了.
博大精深啊~

tianheiGE 发表于 2014-5-3 12:40:18

error_dan 发表于 2014-5-3 12:35
对,就是这个意思,表面上它是个编辑器,其实后台跑着一个编译器前端,不断的对你的代码进行parse和analysis, ...

恩,我刚发现VS也有这个功能,它应该用起来比Eclipse简单吧,决定用下VS

dr2001 发表于 2014-5-3 13:53:46

error_dan 发表于 2014-5-3 12:06
持续集成神马的吗?咱嵌入式领域在工具上还是落后了啊~

所以这个功能需要完整的工具链来提供,而不是寻找 ...

要想很好的支持自动完成,对于C/C++来说,就是需要一个编译器前端。

大家面临的不是是否需要的问题,而是自己实现vs用现成产品的问题。
对Eclipse和VS等等老一些的全功能IDE,基本上是依靠自己的“编译器”了;对扩展性强,优质的编辑器系统,多数会采用Clang提供的接口。只不过Clang对Win32的支持略差。

albert_w 发表于 2014-5-4 09:05:31

同意三楼, 很多项目一套代码能出十来个平台的产品. 所有的宏控制都在不同的makefile里面, 编辑的时候还没法知道这个宏是否开启了.

mhw 发表于 2014-5-4 09:30:13

用惯IDE了,好像没有这样的烦恼……一套代码出来20多种风格差异较大的产品
页: [1]
查看完整版本: 寻求能自动解析编译条件的c/c++编辑器