论坛风格切换切换到宽版
  • 51111阅读
  • 168回复

InnoSetup编译器功能增强 (build 091128) [复制链接]

上一主题 下一主题
离线JunJun

发帖
438
金钱
180
威望
18
只看该作者 80 发表于: 2008-06-18
restools~啥时候更新一下NSIS的哦
离线youth9999

发帖
201
金钱
0
威望
0
只看该作者 81 发表于: 2008-06-18
看来VNISEdit也该更新一下了噢~~
离线restools

发帖
2848
金钱
1430
威望
143
只看该作者 82 发表于: 2008-06-19
QUOTE(swlove @ 2008年 06月 18日 09时 14分) [snapback]347456[/snapback]

我貌似没有遇到过内存泄露的问题

相对于CnWizard我还是比较喜欢CodeFast,用的比较多就自动完成和代码格式化,有这两样我觉得就足够了

嘿嘿,什么时候Inno里有代码格式化


格式化功能如果要写相信也要写相当大的篇幅,而我又不想象 CodeFast 那样调用一个外部 DLL 来完成这个功能,我用过那个功能,对于我来说似乎作用不大,因为我试着去格式化我的代码,几乎都没什么效果(可能我写代码的格式已经相当标准了吧),反而我觉得仅有的几个修改地方它改得多余了(因为那些地方是我的特殊要求才写成那样的)。我认为格式化不应该由别人来处理,是要自己一开始写代码就养成好的习惯,所以这功能我认为是没必要去处理的。或许隔一段时间后再考虑吧。

估计再更新 2 到 3 次之后就会把这个东西暂停一段时间,剩下的几次更新估计会处理完 with do 结构,#include 文件处理,类似 CodeFast 的自动代码完成功能吧。

Delphi 6 下试用 CodeFast (我在盒子下的2007最新版本),里面的模板用空格执行自动完成有点不可取,还是用 Shift+Space 来激活比较合适,否则如果使用了这些标识符做变量就会造成输入混乱。自动完成代码部分还不完善,弹出列表后,按 ESC 取消后,就不能再弹出,必须要做点其他事情,例如输入“(”之后才能再次使用这个弹出列表的功能,还有,输入“(”后,无论后面是否有字符都会自动给补上“)”,不可取,有时候在插入代码时就会觉得它这动作在画蛇添足(所以我在 Inno 的编译器中做自动完成时都是象 Delphi 那样看看后面是否跟字符才去补括号和分号的,还要判断是否是 procedure 还是 function 才去补分号)。
CodeFast 几乎大部分编辑增强功能我都用不上或者没用几次,这些编辑功能都在意料之中,唯一觉得可以让我借鉴的不错功能是模板的多点输入(使用多个“|”),这想法相当有创意。
所以总体来说应该可以一用的辅助工具。个人感觉应该比 cnwizard 更容易让我接受。
我的BLOG:   http://restools.hanzify.org (Inno Setup 增强版, 插件 发布站点)
离线swlove
发帖
102
金钱
0
威望
0
只看该作者 83 发表于: 2008-06-19
QUOTE(restools @ 2008年 06月 19日 00时 53分) [snapback]347469[/snapback]

QUOTE(swlove @ 2008年 06月 18日 09时 14分) [snapback]347456[/snapback]

我貌似没有遇到过内存泄露的问题

相对于CnWizard我还是比较喜欢CodeFast,用的比较多就自动完成和代码格式化,有这两样我觉得就足够了

嘿嘿,什么时候Inno里有代码格式化


格式化功能如果要写相信也要写相当大的篇幅,而我又不想象 CodeFast 那样调用一个外部 DLL 来完成这个功能,我用过那个功能,对于我来说似乎作用不大,因为我试着去格式化我的代码,几乎都没什么效果(可能我写代码的格式已经
......
所以总体来说应该可以一用的辅助工具。个人感觉应该比 cnwizard 更容易让我接受。


对于代码格式化,我通常是在看别人的代码时用的,复制粘贴网上的代码,经常都是乱七八糟的,所以有时候还是用得上。

对于CodeFast的自动完成的确不是很完善,有时候如果后面跟有字符的话也不弹出列表,还有就是对于“{}”"()"之类配对符号的处理正如你所说的过于画蛇添足了

PS:请教一下CodeFast里的那个格式化DLL,在Delphi里怎样调用,查看过导出的函数,一大堆而且又不知道参数!
离线swlove
发帖
102
金钱
0
威望
0
只看该作者 84 发表于: 2008-06-19
搜索了一下,CodeFast里的那个DLL ,出自DelForExp这个代码格式化工具,在盒子上有得下,希望对你有帮助
离线爱和承诺

发帖
100
金钱
10
威望
1
只看该作者 85 发表于: 2008-06-19
前辈又更新了啊,谢谢。
离线swlove
发帖
102
金钱
0
威望
0
只看该作者 86 发表于: 2008-06-20
080618版的函数参数自动提示貌似不行(内部函数),印象中前几个版本都可以

系统XP SP3
离线restools

发帖
2848
金钱
1430
威望
143
只看该作者 87 发表于: 2008-06-20
测试过,应该没问题的。

估计你是随便找个位置来测试。

080618 已经把检测做得比较完善,所以在 procedure 和 function 的范围外是不接受参数提示的,还有如果是脚本内定义的函数需要在声明之后使用才会弹出提示,同样需要在 procedure 和 function 的 begin 和 end 内才能使用。这是我加的限制,我不想在任何地方都能让它弹出。

现在唯一发现的问题是当初步写 code 段时,例如
刚开始写
CODE

function test: boolean;
begin
         exec(

后面没有任何代码时,这时候不能弹出提示,这个后续版本会修正。
但是如果后面只要有其他 的 procedure 和 function 代码,即使 test 函数没有完整的 begin end 结构,exec 都会认为是在 test 函数内,能够正常弹出参数提示,还有其他情况都能很好的弹出提示。
所以暂时解决方法就是为 test 提供完整的 begin end 结构,也就是说在 exec 后预先补足 end 令到这个脚本中的 test 函数形成完整的 begin end 结构。(通常都是这个脚本的最后一个函数才需要这样做,其他之前的函数即使 begin end 不完整也能正常弹出提示),这个问题我会修正的。
我的BLOG:   http://restools.hanzify.org (Inno Setup 增强版, 插件 发布站点)
离线swlove
发帖
102
金钱
0
威望
0
只看该作者 88 发表于: 2008-06-20
QUOTE(restools @ 2008年 06月 20日 02时 03分) [snapback]347499[/snapback]

测试过,应该没问题的。

估计你是随便找个位置来测试。

我使用的深度6.2,SP3精简版

截图境况如下所示:
[attachmentid=24568]
离线restools

发帖
2848
金钱
1430
威望
143
只看该作者 89 发表于: 2008-06-21
不知道它精简了什么,我在 LTM mini xp 3.0 精简系统中使用也能弹出(完全按照你输入的代码),你确认之前的编译器版本能弹出参数提示吗?你在完整XP系统中也测试过了么?
下面是一个修改了一点点代码的临时版本。
增加了 Shift+Ctrl+Space 激活参数弹出快捷键(在括号中直接按这个快捷键,如果不能弹出,就是系统精简的问题了),修正最后一个函数弹出参数的区域检测。还有如果你测试之前的版本可以正常使用,而这个版本不能的话,我就暂时修改了一下右键菜单的代码,你看看是否也还是不能弹出。
我的BLOG:   http://restools.hanzify.org (Inno Setup 增强版, 插件 发布站点)