My favorites | Sign in
Project Home Downloads Wiki Issues Source
READ-ONLY: This project has been archived. For more information see this post.
Search
for
  Advanced search   Search tips   Subscriptions
Issue 14: CB_CCBRANCH_6623_patched 的问题
1 person starred this issue and may be notified of changes. Back to list
Status:  New
Owner:  ----


 
Reported by xxy...@sohu.com, Sep 23, 2010
老邓好
我下载你提供的CB_CCBRANCH_6623_patched.7z
在环境 winxp sp2,mingw gcc4.4.4试用,发现如下问题:
        有光头文件的paser会导致codeblocks无法运行,就像进入死循环。

比如输入如下代码:

#include < 此时正常应该有提示,但是CB_CCBRANCH_6623_patched不但没有提示,还会使得codeblocks无法继续运行。
Sep 23, 2010
#1 xxy...@sohu.com
另外我发现你提供的代码完成插件,无法完成对变量声明位置的定位

操作如下:
  光标指向变量,然后右键,选择find declaration of '变量名',会提示 not find:'变量名'
Sep 23, 2010
#2 xxy...@sohu.com
你提供的代码完成插件还有一个问题就是对源文件中的宏parse有问题:

比如:
   源文件代码如下:
宏GAUSSIAN_KERNEL_FUNCS_IMP声明:
#define GAUSSIAN_KERNEL_FUNCS_IMP(VALUE_TYPE,\
                                  MAT_TYPE,MAT_NEW,MAT_DELETE,\
                                  VEC_TYPE,VEC_NEW,VEC_DELETE,\
                                  END_PIX)\
void  MAKE_FUN_NAME(calculateHermitePolynomial,END_PIX)(const int *order,const VALUE_TYPE *sigma,VEC_TYPE *hermit_coef)\
{\
    register int i,j;\
\
    if(order== 0)\
................

宏GAUSSIAN_KERNEL_FUNCS_IMP应用:
GAUSSIAN_KERNEL_FUNCS_IMP(double,
                          mat_dbl,mat_dbl_new,
                          mat_dbl_delete,vec_dbl,
                          vec_dbl_new,vec_dbl_delete,
                          dbl)

GAUSSIAN_KERNEL_FUNCS_IMP(float,
                          mat_float,mat_float_new,
                          mat_float_delete,vec_float,
                          vec_float_new,vec_float_delete,
                          float)

 宏GAUSSIAN_KERNEL_FUNCS_IMP屏蔽:        
 #undef GAUSSIAN_KERNEL_FUNCS_IMP

问题描述:

操作A:光标指向GAUSSIAN_KERNEL_FUNCS_IMP,然后右键,选择find declaration of 'GAUSSIAN_KERNEL_FUNCS_IMP'

情况一:保留代码: #undef GAUSSIAN_KERNEL_FUNCS_IMP 
操作A会得到GAUSSIAN_KERNEL_FUNCS_IMP声明位置列表:
GAUSSIAN_KERNEL_FUNCS_IMP(double,.....
GAUSSIAN_KERNEL_FUNCS_IMP(float,.....

可见位置列表中无正确位置:#define GAUSSIAN_KERNEL_FUNCS_IMP ...

情况二:注释掉代码:#undef GAUSSIAN_KERNEL_FUNCS_IMP,
操作A也可得到GAUSSIAN_KERNEL_FUNCS_IMP的声明位置列表,列表如下:
#define GAUSSIAN_KERNEL_FUNCS_IMP ...
GAUSSIAN_KERNEL_FUNCS_IMP(double,.....
GAUSSIAN_KERNEL_FUNCS_IMP(float,.....

此列列表中有真正确位置:#define GAUSSIAN_KERNEL_FUNCS_IMP ...

以上两种情况均不能精确指向:#define GAUSSIAN_KERNEL_FUNCS_IMP ... 



Sep 23, 2010
#3 xxy...@sohu.com
你提供的代码完成插件另外一个问题是,对函数参数变量、宏参数变量均的定位均不准确,还有就是对#include 头文件parse太慢(如果IDE中的预搜索头文件太多的话)。

个人的一点小建议:
    我想对于系统头文件的parse一次就够了,parse结果以文件形式保留在codeblocks的安装目录下,对于该文件的修改可以随codeblocks的有关设置变化。对于工程中的文件完整parse一次也应该可以,结果也可以文件的形式保存在工程文件目录下,再随相关操作进行对parse文件的修改,这样应该会加快对 “头文件”的自完成工能,而且在打开工程文件的时候也会加快parse速度。否则如果工程中包含文件太多的话,发现打开速度非常慢,而且会发生codeblocks崩溃的状况。
Sep 23, 2010
#4 xxy...@sohu.com
不过总体来说,你提供的这一插件,相较原来的插件已经有很大的改进,试用很舒服,对你的工作表示感谢

Powered by Google Project Hosting