开源日志:关于IDE/源代码编辑

做c/c++开发,windows下的IDE是Microsoft visual studio;linux下也有很多,编译和调试环境主要是gcc/g++/gdb,基于它的IDE有很多。

我其实是在windows下写源代码,linux开启samba共享,直接用beyond compare同步到共享目录,然后用make/gdb调试。

Source Insight

source insight用得好的地方:

  1.  规模3万行以下时,基本上都没有问题。
  2. 解析函数符号比类符号要好,更适合c项目。
  3. 干净:源代码目录和工程目录分开,不会添加东西到源代码目录。

用得比较不如意的地方:

  1. 万一有个中文就乱码。
  2. 规模较大时,一般在3万行以上时就会有各种符号解析的问题,以下说明。
  3. 宏定义的接口无法正确解释,例如:
    #define _smt_log ((ILog*)_smt_app->GetLog())
    若使用_smt_log这个宏定义的全局变量,无法解析它的函数,实际上它是ILog类型的,这个解析不出来。
  4. 对不同命名空间的类解析有问题,例如:
    // 在命名空间core定义了接口ILog。
    namespace core{ class ILog {......}; } 
    
    //在log命名空间实现了接口ILog。
    namespace log{ class SimpleLog : public ILog {...}; }
    若在SimpleLog文件中定位ILog,是定位到ILog::ILog()的实现cpp中,而不是hpp定义中。
    tips:使用全命名空间引用就没有问题,例如:
    class SimpleLog : public core::ILog{...};
  5. 左侧的显示类名和函数名,调整宽度后,下次打开那个宽度又恢复回去了。
  6. 修改函数名后,需要重新解析整个文件,导致左侧的类导航栏失效,需要10秒左右才能恢复,不方便。

所以一直想找个好点的编辑器,干净不会在源代码目录添加些东西,而且好用。

Source Browser

它只能看某一个文件,类似于notepad++的功能。

Dev C++

最不方便的就是没有添加目录到工程的功能,得一个目录一个目录的添加。

它的project文件使用的是ini配置结构,不是xml,不方便手动修改。

CFree

能添加目录,解析符号也没有问题,颜色标注比较明显。

缺点是在源文件目录生成了符号文件。

在FindReference时有问题。

CodeLite

解析静态函数有点问题,颜色显示也不如CFree。

Code::Blocks

这个对语法分析,颜色显示不如CFree。

Ultimate C++

不太常用,但是很好用。

你可能感兴趣的:(开源日志:关于IDE/源代码编辑)