Board logo

Subject: CnWizards 常见问题解答 [Print This Page]

Author: zjy    Time: 2005-9-1 16:45     Subject: CnWizards 常见问题解答

感谢大家几年来对 CnPack 的关注和支持!我们经常在论坛和邮件中看到热心的朋友们给我们的建议,同时也发现很多问题都是重复的。今天我整理了一下,把大家比较关心的一些问题列在这个帖子里,并不定期补充。

1.代码格式化工具的问题。
目前网上比较好的开源代码整理工具主要有 DelForEx 和 Jedi Code Formatter。前者历史悠久,使用也很广泛。后者则是基于语法分析的整理工具,由 Jedi 组开发。由于 DelForEx 本身存在不少缺陷,而 JCF 使用 MPL 协议不太方便整合,所以 CnPack 也有自己的 CnCodeFormatter 开发计划。该工具由 古月春秋 捉刀,目前已经有可运行的雏形了。但是由于代码整理涉及到一些比较复杂的算法和技术,特别是对条件编译的处理比较麻烦,加之负责该项目的成员精力有限,所以迟迟未对外发布,请大家耐心期待。

2.代码折叠功能。
Delphi2005 发布后,很多朋友提到了这个要求。代码折叠编辑技术本身并不复杂,但是由于代码编辑器作为 IDE 最重要的一个组成部分,涉及到后台和底层很多东西。要在现有的 IDE 代码编辑器中扩展折叠功能,需要做大量的测试和复杂的技术。如果用一个新的支持折叠的编辑器来取代现有的,又很难与代码提示、编译等现有功能整合。所以这个功能目前还只是可研阶段,请大家不要再提重复的建议。

3.用空格完成代码模板的功能。
很多用惯 CodeRush 的朋友,建议我们增加类似的功能。不过在 CnWizards 中,我们已经提供了代码输入助手这个特色功能,将不打算再增加使用空格来完成的代码模板了。两者各有所长,空格完成的好处是速度快,而代码助手虽然需要多敲几下键,但是可以不用记忆模板名称,而且可以自由选择列表项,避免误输入。这是使用习惯问题,请大家理解。

4.代码输入助手不能自动弹出的问题。
如果您使用的是未安装升级包的 Delphi2005,请安装最新的升级包。由于原始的 D2005 内部存在缺陷,会导致输入助手取不到必须的服务接口而无法正常工作。

另外,还有一种情况是如果您开启了某些输入法,在输入点号后,IDE 自己的自动完成将无法弹出,助手也不会出来。这是因为 IDE 自带的代码完成功能不支持这种情况,您可以在 IDE 编辑器设置中将 Code Completion 功能禁用掉,这样输入助手会自动取代它,并在您输入点号后弹出符号列表。

5.代码输入助手取到的符号不完全。
输入助手本身并不解析代码符号信息,而是通过 OTA 接口从 IDE 的自动完成功能中获取当前位置下的有效符号列表。IDE 本身在某些条件下无法列出所有有效符号,也会导致助手列出的符号不完全。当发现助手列出的符号中没有需要的项目时,请使用 Alt+Spc 键(IDE 默认是 Ctrl+Spc)弹出 IDE 自身的自动完成,如果这里面也没有需要的项目,则表明问题出在 IDE 本身。

6.代码重构功能。
这个功能也是很多朋友关心的。该功能已经在开发计划中了,请大家关注新更新信息。

附:关于论坛和邮件回复的问题
CnPack 项目主要是由开发组管理员和核心开发成员利用业余时间开发、维护的。特别是管理员,要负责绝大部分的开发和项目维护工作,所以没有多余的精力来回答与 CnPack 无关的问题,也请大家不要在 CnPack 论坛的非灌水区里讨论与 CnPack 无关的技术/非技术问题。

如果某些帖子或邮件回复迟了甚至遗漏,见谅!如果您发现有没有回复而对您来说比较重要的帖子或邮件,可以在论坛上发短消息,或者直接给我们发 QQ 消息等。

更新日期:2010.05.08
Author: Sword-Light    Time: 2005-9-3 07:23

我个人的观点是:
1、“代码格式化工具”没有必要加入
2、“代码折叠功能”根本就没有多少实际的意义!
3、“代码结构高亮功能”有必要加上,但似乎应该使用多种颜色块或其他方式,而不要使用Castalia的连线方式。
4、“代码模板的功能”虽好,但与过多的记忆难以调和,应该想想别的思路
5、“代码重构功能”应该加上
-------------------------------------------------------------------------
最好能加上类似CodeRush的Marks功能,实在是方便啊!

如果有时间,我将详述自己的观点。
Author: sunsjw    Time: 2005-9-28 16:41

当代码很多时,代码折叠绝对是一个非常不错的功能。
Author: yimanwk    Time: 2005-11-4 22:08

.代码输入助手不能自动弹出的问题。
我用的Delphi7 但其仍然不能自动弹出,delphi自带的code completion 可以
Author: animator    Time: 2005-11-24 00:17

二楼的前三点的观点,我完全反对!!
我觉得这三个功能太有用了,如果能做到,我是非常希望能加上去的。

当一个文件较大,结构复杂的时候,看得头晕目眩的时候,
代码折叠可以减轻你的关注负担,
代码结构高亮能够给你一个清晰明了的整体框架,
代码格式化可以让你从混乱的代码中解脱出来。
Author: Passion    Time: 2005-11-30 14:35

真是仁者见仁智者见智啊,
我们争取尽量满足尽可能多的用户的需求。
Author: lextm    Time: 2006-2-15 15:51     Subject: “代码格式化工具”有没有必要加入?

首先,现有的工具已经比较成熟,JCF支持现有全部的Delphi版本。

然后,C++和C#语言确实还需要一个格式化工具。

最后,没有格式化工具可以用Castalia 4的Tab和Alt+Tab快捷键,不是很麻烦。Castalia考虑在今后的版本里面内置格式化工具。GExperts已经这样做了。

我写的CBC2虽然可以初步的实现多语言格式化,但是仅仅支持BDS的各个版本,对于BCB6的用户爱莫能助。
Author: wujingping    Time: 2006-8-11 17:04     Subject: 可不可以加个小功能,每次编译自动增加小版本号

可不可以加个小功能,每次编译自动增加小版本号
Author: helpme5    Time: 2006-8-13 20:48

8楼说的功能Delphi自身就有的。
Author: wiseinfo    Time: 2006-8-15 15:11

代码折叠功能,代码结构高亮功能,我觉得既然这么难,就没有开发的必要了,毕竟现在DELPHI 2006已经有此功能,扔掉DELPHI7是迟早的事情,
Author: VictorWoo    Time: 2006-9-5 11:05

to 7楼:
JCF可以集成到delphi中么?谢谢
Author: lextm    Time: 2006-9-6 15:06

当然可以,
http://jedicodeformat.sourceforge.net/
下载的zip包里面有JCFIDE*.bpl,选择合适的版本安装就是了,和安装普通控件包一样的方法。
Author: VictorWoo    Time: 2006-9-7 16:01

能否指点一下
我安装JcfIde7.bpl,提示找不到某些文件。
http://jedicodeformat.sourceforge.net/ 中部的安装提示装了JCL,还是不够
又装了JVCL http://prdownloads.sourceforge.n ... zip?use_mirror=nchc
安装的过程有个很眩的gui。装完以后delphi中安了5大排控件-_|| 应该是我错装了控件包。那么JCL的design-time是哪个,怎么装?

另,这个工具为何做的这么复杂呢?有点望而却步了。DelForEx那种安装模式不是很简洁么?
再另,默认安装完jcfGui.exe去找JCF2Settings.cfg,而安装目录下是JCFSettings.cfg,少了个2,提示找不到文件,望修正。

谢谢
Author: lilor    Time: 2006-9-14 10:36

强烈反对2楼的前3条观点;

我用Delphi7,只使用DelforEx的整理代码和Castalia的结构高亮,但我仍寄希望于cnpack能够尽早实现这两个非常有用的功能
Author: VictorWoo    Time: 2006-9-15 12:44

Castalia的结构高亮的确拖慢了Delphi的速度,特别是不小心浏览到Windows等单元的时候。而且IDE关闭的时候经常报异常。
Castalia还有个对象/方法组合框,很好用。
Author: 水中央    Time: 2006-12-27 19:44     Subject: 强烈要求加入代码格式化功能

我永远支持你们
Author: jeanedli    Time: 2007-4-16 10:22

首先感谢这里的团队提供了非常好的增强工具。
小弟我是因为找 1.代码格式化工具 2.代码折叠功能。搜到这了。结果是看到了其他非常强大的功能,固然欣喜,但就人个希望来说是真的非常非常希望能有这两点。看到LZ此贴的邮后更新日期是“更新日期:2005.09.01日”,据今已经有近两年了,想问问,这两个功能你们最后决定是否要加的?谢谢!
Author: kendling    Time: 2007-4-16 16:24

D7下增加代码折叠功能是不可能了。
Author: Passion    Time: 2007-10-4 20:09

代码格式化倒是有点可能,但只支持Delphi 7 的Pascal语法,不支持新的.NET语法。
Author: hbxfwjww    Time: 2008-8-15 01:07

支持一下.
现在Castalia的功能CnPack已经有了,就等代码格式化这个了,其它的都已经不是问题了...
Author: yxsky    Time: 2008-10-8 12:41     Subject: 为什么在windows2008+Delphi7安装CnWizards后编译不了

CnWizards版本0.8.8.430,新建项目是可以通过的。我原来的项目的些大。程序Complie过后Link时就死在那里了。但没有安装CnWizards_0.8.8.430就没有问题。Link时内存占用达到了200M多就死在那里了。
Author: xingyongjian    Time: 2008-10-20 10:51

有没有"示例代码工具",
可以包括"参考模型","示例代码","经验总结",其他等;
Author: lb1979    Time: 2011-1-10 12:00     Subject: 辛苦了,斑竹!

斑竹不容易啊,要求太多了,不好弄哦!
Author: mekealy    Time: 2011-4-19 12:56

w1ye1我也进来学习学习咯
Author: boylong    Time: 2011-7-7 12:33

能否增加个功能:
删除函数时,能否把声明和实现一起删除。
Author: boylong    Time: 2011-7-7 15:49

还有修改函数时,也可以同步修改声明和实现的地方。
比如
procedure aaa(s: string);

procedure aaa(s: string);
begin
showmessage(s);
end;

如果我修改函数名aaa为bbb时,自动修改声明和实现,这样更加方便了。
我记得mmx插件就有这功能,不知道cnPack能否增加这样的功能。




Welcome to CnPack Forum (http://bbs.cnpack.org/) Powered by Discuz! 5.0.0