Inno Setup 编译器编辑功能增强版 (build 121216)

Inno Setup 中的编译器编辑程序 Compil32.exe 进行的部分修改,使它尽量适合 [code] 段代码的编写。
:)
PS: 以后的修改方向是把 [code] 段的代码编写变得更容易,但是不会费时间实现 ISTool 一样的功能。因为实在是太花时间了,一般如果动用到这个编译器来编辑脚本,都是因为要调试 [code] 段代码的。
附图:






build 050925
1. 基于 Inno Setup 5.1.5 重新编译。
2. 在编译级别汉化本程序,汉化资源使用了莫名的汉化资源,在此感谢莫名提供汉化资源,减少了本人不少的工作量。
3. 稍微修改了调试时的显示方式。跟 Delphi 更加的接近。
4. 增加部分的关键字,参数的高亮显示,跟 ISTOOL 相同。
5. 增加复制为 UBB 代码的功能,方便论坛发帖使用。
6. 为方便编程控制事件,把里面部分控件换为 Delphi 5.0 有的更高级的控件。


build 051002
1. 修正向导中的一个BUG。(汉化时产生)
2. 加入代码模板功能。可以快速输入 INNO 一些常用代码,可自己添加。
(例如: 你有一些经常使用的代码,你可以为它们建立自己的代号,然后就很容易快速输入该段代码)

附图:


build 080428
1.添加一个代码分析视图,所有区段分析。code 段是重点,因为实现自动完成代码功能的前期工作都在这个视图中实现了,包括每个 procedure 和 function 的局部变量也被枚举了出来,只是没有在视图中显示。
2.修正中文显示问题。
3.改善一些界面上的显示。

附图:

1. 区段分析。
2. 必须选项。
3. record 类型。
4. 全局 var 变量。
5. 全局 const 常量。
6. procedure 分析。
7. funciton 分析。
8. 内部支持过程。
9. 结构有问题的 function 或者 procedure。


build 080502
1.添加书签标记。
2.开放了大部分在 VNISEdit 中同样存在的编辑器选项。
3.显示缩进竖线,方便代码阅读。
4.修正部分编辑器的显示问题。

附图:



build 080503
1.添加列块缩进处理,Tab 和 Shift+Tab 快捷键。
2.添加注释选择文本功能,“;”和“/”控制,会自动检测所属区段的注释是用“;”还是“/”符号。只需要按“;”或者“/”键即可按照所属区段所使用的注释符号注释大量文本。
2.开放了编辑器语法颜色选项。
3.添加另存为 HTML 格式。并且开放 UBB 和 HTML 复制的几个选项。

附图:


build 080508
1.添加对 set of(集合) 和 array of(数组) 结构的代码分析。
2.开放视图的高级提示,可显示过程函数明细,例如局部变量。(菜单中打开此功能)
3.添加对 Bracket 的支持。包括 begin, end, (, ),的对应。如果你用过 Visual Assist X ,就知道这个功能对于代码编写有多大的作用。颜色设置里面也可以设置该功能的颜色。错误配对也会显示红色。



build 080511
1.完善 Type, var 代码结构分析。
2.添加 try end 配对显示。
3.恢复功能:拖放文件,ESC 关闭查找替换窗口。


build 080513
1.修正配对显示在自动换行下的显示问题。
2.添加 Type , var 中关于 function 和 procedure 的定义。至此,基本完成了 Inno Setup 所有我知道的定义类型的视图分析,如果还有未能正确分析的请告诉我。
3.添加 HotLink 实现技术,但是目前并无实际效用,因为并未加诸应用。以后将会用在变量,函数,类型,过程等等的跳转。同样能够进行颜色设定。(功能键:Ctrl + 鼠标左键点击,类似 Delphi)
4.修正编辑器粘贴时的显示问题。


build 080519
1.修正显示、操作问题,尤其在 Win98 下测试发现的问题一并处理。
2.修正新版本 SynEdit 控件的 BUG,包括语法高亮,覆盖编辑,撤销重做问题。
3.添加一页,内部支持函数,过程,类,的声明页面,不可编辑,只是以后用来作为脚本跳转时源头,自动完成列表提取源头。
4.修正多 code 段时的处理方法。


build 080525
1.修正代码模版的执行方法,撤消重做无论在任何编辑器选项下都能正常使用了。并且增加模版每一项的描述。所以之前的模版文件在这版本中不能使用,需要替换掉。
2.修正双击选择中文的问题。
3.更改除 code 段外所有区段代码的分析算法,力求更高效和更完整的分析,以备以后有需要的时候使用,可能以后会拿 Setup 段来实现 ISTool 的功能,不过不会扩展到所有区段,这部分是无责任烂尾,只是用来实验 ISTool 如何实现功能而已。开放了所有区段的高级视图提示。
4.改善切换页面时的效率问题。
5.经测试后,之前版本存在严重内存泄漏问题,这版本基本去除已发现的内存泄漏,不过线程处理很容易造成内存偶尔泄漏,所以接下来需要长时间的压力测试。就目前来说未再发现泄漏。


build 080530
1.修正一个视图显示的问题。
2.修正一个 begin end 配对的显示问题。
3.增加一个当前光标竖线颜色设置的选项,对于我自己来说,经常编写多层 begin end 代码,所以我最终还是忍受不住太多的竖线仍然让我看得眼花缭乱,必须把我想知道的竖线加深颜色以便查看。
4.模板菜单中显示模板的描述,可方便初期使用时知道那些缩写究竟代表什么代码。
5.修正批量注释时的处理方法。
6.修正多处视图错误分析。
7.自动参数提示,包括内部支持过程函数和当前编辑脚本中的过程函数的参数提示。至于“#include”的包含文件方式,以后会想办法解决。


build 080608
1.实现了近乎完美的弹出参数提示算法,已经能在任何输入下(包括中间夹杂了,字符串,注释,内含括号的计算公式,函数中再包含函数等等的影响),都能正确标注出当前的要输入的第几项参数,同时也允许在换行输入下继续提示参数而不再消失。
2.修正编辑器的中文显示问题。
3.增加 Inno Setup 内部支持类成员函数和过程的参数弹出提示,CreateOleObject 创建的 Com 对象除外,至此,基本建立了一个较为完整的检索类声明的分析体系,想来接下来的弹出列表应该问题不大了,with do 结构以后想办法处理。
4.在内部支持页中补全了所有支持的类型,变量,常量声明,部分在帮助中并未提及。
5.修正常量声明语法分析和部分视图分析的问题。


build 080609
1.修正在无语法高亮时的中文显示问题。
2.增加内部支持类所属的属性,过程,函数的自动完成列表。



build 080618
1.修正参数提示弹出算法。
2.修正属性列表显示问题,弹出算法,支持 function 返回类的弹出列表,例如
  CreateInputQueryPage(AfterID,ACaption,ADescription,ASubCaption).Description
  这样的返回类弹出列表,支持 function 和 Class 混合语法分析弹出属性列表和函数参数提示,例如这种
  function_return_class().property_return_class.property_function() 。
  所以把 Mainform 和 WizardForm 声明修正为 function。
3.增加“function UninstallProgressForm: TUninstallProgressForm;”声明,使 UninstallProgressForm 能正常使用参数弹出和属性列表弹出。
4.增加弹出列表排序功能。


build 080628
1.修正函数参数弹出算法。同时增加快捷键 Ctrl+Shift+Space 激活参数提示。
2.当行后无字符时,当输入“(”的时候,同时检测到之前的标识符属于支持函数,将会自动补充一个“)”字符。
3.增加 #include 包含文件中的代码分析。支持多层包含文件代码分析,例如在一个包含文件中又包含另外一个包含文件。包含文件被修改后,重新返回该编辑器编辑的时候也会自动更新代码分析,当检测到包含文件循环崁套或者多次包含都只会载入一次以避免进入死循环。


build 080724
1.当输入“@”符号时,提供当前声明的 proc 和 func 列表以供选择。
2.调整在 proc 和 func 定义错误时的局部变量和全局变量的判断。尽可能的避免局部变量的定义变成了全局变量定义。
3.修正参数弹出算法,调整参数显示算法,当太多参数的时候,会自动根据屏幕宽度调整参数换行。
4.增加一个打开当前脚本文件夹的菜单。
5.修正最后一个 function 段的分析。
6.修正 Chr 和 ord 的声明分析。
7.增加 record 类型的成员弹出列表。
8.允许列表弹出设置弹出延迟时间。
9.增加编辑器一些选项。例如设置成较为女性化的编辑器底色。


build 080921
仍然没有增加新的功能,只是修正大量错误。这里不一一细述了。
稍微调整的就是能自动分辨增强版编译器,以使用新的声明。


build 090110
1.with do 结构分析。支持多层 with do 结构分析。
2.修正多处参数,属性列表弹出代码分析错误算法,更加精准。
3.改善 Vista 下的界面显示效果。



build 090115
1.with do 结构分析: 能够分析诸如 with TButton.Create(WizardForm) do 这样的结构
2.增加 2 种关键字匹配方式,务求更快捷的输入代码。

3.改善 Vista 下的界面显示效果。


build 090215
1.改善部分语法分析,不过目前来说仍然有不太完善的地方,慢慢改。
2.增加所有标识符的弹出列表。编辑器选项中可以设置弹出延迟时间。

3.如果上面的弹出列表显得太厌烦可以关闭自动弹出,已经增加了快捷键 Ctrl+J 弹出列表。
4.高亮当前行。选项可以设置是否高亮。
5.补充完整一些常量,类型声明。


build 090308
1.修正部分语法分析算法,处理 with do 结构内的所有标识符弹出列表算法。
2.添加窗口菜单以方便切换到已经打开的脚本。
3.解决了进程间的通信方式问题,将会自动检索已经打开的脚本,不会重复打开。
(这也是代码跳转,乃至脚本间代码跳转的前期工作)
4.添加支持 FullVCL 编译版本的编译器内核的所有弹出列表的处理。


build 090319
1.修正部分语法分析算法。
2.修正几处列表弹出算法。
3.窗口激活,窗口切换。窗口重排。
4.代码跳转算法,可以遍及整个 Code 段的代码跳转。包括,函数,参数,局部变量,全局
  变量,记录,类型,集合,控件类、属性、函数。包含文件的脚本间的代码跳转也一并实现。
  (使用方法:Ctrl + Mouse Click)



build 090505
1.修正部分语法分析算法。
2.修正几处列表自动完成算法。
3.改善一些界面效果。
4.处理代码段所有标识符的提示,分为调试状态和非调试状态,在非调试状态下,提示同样遍及整个 Code 段的代码提示。包括,函数,参数,局部变量,全局变量,记录,类型,集合,控件类、属性、函数。



build 090506
紧急修正一个严重错误。

build 090824
1. 修正多处语法高亮显示算法,能更好的以多种颜色显示代码。
2. 修正多处自动完成代码语法分析算法,更有效率,尽可能少的影响代码录入的速度。
3. 分析了 ISPP 预处理代码的语法分析,在视图中显示出来。(暂时还不能在预处理代码中实现代码自动完成功能)
4. procedure 可分列 External 类声明。
5. 同步更新至 5.3.4 代码。


build 091007
1. 修正多处语法高亮显示算法。
2. 修正 ISPP 分析算法。
Unicode 版本更新:
同步所有 ANSI 版本的功能,但是由于自动换行会影响程序打开速度,所以禁止了默认使用自动换行,但是换行功能仍然保留。


build 091103
1.增加断开调试器的功能。
2.工具菜单下增加插入颜色功能,同时为颜色对话框提供颜色拾取功能。

3.工具菜单下增加所有内部支持事件的定位功能。
4.增加当前标识符的高亮显示。

5.修正多处语法高亮显示的问题。
6.增加直接打开生成安装程序所在目录的功能。


build 091128
1. 修正多处语法高亮显示算法。
2. 编辑器文字显示针对非等宽但视觉上同样等宽的字体(例如:宋体,新宋体等等)提供紧凑显示模式。



build 100102
1. 修正了多处语法高亮问题。
2. 增加了 WizardForm 的可视化设计功能,我可以大胆的说一句,目前没有任何的安装程序制作工具能够有 Inno Setup 那样大的界面设计自由度。
3. 查找替换框增加了“从脚本起始处开始”的选项。



build 100121
同步到 5.3.7 版本,并添加支持多个属于增强版本的控件的可视化设计,未来将会完善更多控件和属性的可视化设计。

build 100212
1. 支持 Interface 结构的解释,具体可查看 Inno Setup 例子中的 CodeAutomation2.iss 脚本。
2. 其他大量的可视化设计功能中的修正,这里就不一一细述了。



build 100221
1. 同步至 5.3.8。
2. WizardForm Designer 中支持 TRichEditViewer.RTFText 属性的可视化编辑。



build 100322
1. 添加多语言界面支持。
2. 为 WizardForm Designer 改善多处功能。



build 100608
同步至 5.3.9 版本。并进行一些功能上的修正。

build 100707
同步至 5.3.10 版本。并进行一些功能上的修正。

build 101205
同步至 5.4.0 版本。并进行一些功能上的修正。


build 101211
增加 Bitmap 和 Icon 的可视化处理。并修正一个影响 Unicode 版本可视化编辑的问题。


build 101226
增加 控件事件 的可视化处理。并把原版的例子 CodeClasses.iss 修改成可视化版本,在这个例子中,你可以充分体验到可视化编辑带来的方便易用性,可以随意修改界面上控件的位置属性,而且非常方便的定位到相关控件的事件中。


build 110102
修正多处可视化设计中的 BUG。

build 110103
1.继续修正多处可视化设计中的 BUG。
2.增加扩展控件 TTimer 的可视化设计。
3.增加非可视化控件的创建顺序的调整。


build 110116
1.增加扩展控件 TImageList 的可视化设计。
2.修正并调整语法高亮中的一些问题。并增加 Code 段语法高亮中的字符串内显示{#XXX}的特殊颜色。
3.修正复制 UBB 和 HTML 代码时自动检测是否只复制 Code 段代码以便采用 Pas 高亮颜色处理。
4.修正在可视化处理时,某些时候会出现令到可视化设计界面部分消失的情况。
5.修正一处小的内存泄漏。
6.修正一处自动完成列表弹出功能中的BUG。


build 110123
1.修正一处自动完成列表算法中的问题。
2.修正一些可视化设计中的问题。
3.增加控件 TNewNotebook 的可视化设计。


build 110202
1.对于原 WizardForm 控件提供了改变父控件的方法。
2.修正一些可视化设计中的问题。



build 110208
1.修正脚本向导中的一个错误。
2.可视化设计中修正“更改父控件”中的一个错误。
3.可视化设计中增加控件的锁定功能,防止控件被不小心的移位。
4.增加“TNewSpeedButton”的可视化设计。
5.修正可视化设计中部分控件的 OnMouseEnter 和 OnMouseLeave 的事件显示。


build 110209
1.修正可视化设计中的一些错误。
2.可视化设计中添加缩放功能。
3.在 Unicode 版本中,脚本可以强制保存为 UTF-8 编码格式。


build 110213
同步至 5.4.1 版本,由于编辑器修改的程度已经日渐增大,以 Compil32Ex.exe 的名字出现, 复制到原版中使用,不再以覆盖的方式使用,所以请用户自行选择编辑器使用。

build 110301
修正多处可视化编辑中的问题。

build 110319
同步至 5.4.2, 并进行一些小的修正。

build 120112
同步至 5.4.3, 并进行一些小的错误修正和显示上的改善。

build 120808
同步至 5.5.1, 并进行一些小的错误修正,增加了一点对增强版编译器的控件属性支持。

build 121002
1.编辑菜单增加只读的选项,可以设置文件的只读属性,方便在参照脚本编辑时防止误编辑了被参照脚本。
2.可视化设计生成代码时可以选择是否生成 Name 属性的代码,这个可在“设计器选项”中设置。
3.修正生成代码时的一些问题。


build 121216
同步至 5.5.2。

下载地址:
适用于 5.1.5 版本 功能扩展到 build 051002
http://restools.hanzify.org/inno/InnoCompiler051002.zip

适用于 5.2.3 版本 功能扩展到 build 090506
http://restools.hanzify.org/inno/InnoCompiler090506.zip
For English:
http://restools.hanzify.org/inno/InnoCompiler090506_English.zip

适用于 5.2.4 - 5.4.0 版本 功能扩展到 build 110209
Multilanguage support: English, Chinese
http://restools.hanzify.org/inno/InnoCompiler110209(7zip).zip

适用于 5.4.1 - 5.4.3 版本 功能扩展到 build 120112
Multilanguage support: English, Chinese
http://restools.hanzify.org/inno/InnoCompiler120112(7zip).zip

适用于 5.5.0 - 5.5.2 版本 功能扩展到 build 121216
Multilanguage support: English, Chinese, Russian
http://restools.hanzify.org/inno/InnoCompiler121216(7zip).zip



评论: 189 | 引用: 0 | 查看次数: 94600
moko [2016-09-04 11:06 PM]
快5年没更新了,强烈期盼阿信更新.更新到支持windows10就踏实了.
WERT [2016-01-15 04:28 PM]
感谢阿信坚持更新了这么久的增强版本,不知道能否继续坚持更新下,已经有 5、6 个版本没有更进了,在此谢谢了[wink]
mylove [2014-06-29 07:37 AM]
阿信还在么?好久没更新了 3年了.
xiaofanzi [2014-05-24 10:33 PM]
增强版停止更新了吗??快两年了。 怎么办?
xiaofanzi [2014-05-24 10:27 PM]
增强版停止更新了吗??快两年了。
X-NET [2014-05-24 06:13 AM]
添加针对Windows8.1的支持。在长增加了正式版。[sad]
秋风的萧瑟 [2013-12-25 12:29 AM]
windows8.1系统,newricheditview 富文本控件 和isskin.dll插件配合,垂直下拉条不能使用。请阿信帮忙看看。。。
WLDNA [2013-11-14 05:55 PM]
  with WizardForm.DirBrowseButton do
  begin
    Parent := WizardForm.Surface;
  end;

今天第一个看到右键可以修改父控件,结果用了一下就杯具了,呵呵
WLDNA [2013-05-09 11:09 AM]
【bug】[ISFormDesigner]
WizardForm=FF0A005457495A415244464F524D0030102702000054504630F10B5457697A617264466F726D0A57697A617264466F726D0C436C69656E744865696768740368010B436C69656E74576964746803F1010C4578706C696369744C65667402000B4578706C69636974546F7002000D4578706C6963697457696474680301020E4578706C69636974486569676874038E010D506978656C73506572496E636802600A54657874486569676874020D00F2020106544C6162656C0A4C626C5F437573746F6D044C656674021003546F70034701055769647468023706486569676874020D0743617074696F6E060A4C626C5F437573746F6D0B5472616E73706172656E7408074F6E436C69636B07134C626C5F437573746F6D4261636B436C69636B0000F2020206544C6162656C0E4C626C5F437573746F6D4261636B044C656674027803546F70034701055769647468024D06486569676874020D0743617074696F6E060E4C626C5F437573746F6D4261636B0B5472616E73706172656E7408074F6E436C69636B07134C626C5F437573746F6D4261636B436C69636B0000F10C544E65774E6F7465626F6F6B0D4F757465724E6F7465626F6F6B00F110544E65774E6F7465626F6F6B506167650B57656C636F6D65506167650D4578706C69636974576964746803F1010E4578706C6963697448656967687403390100F10E544E6577537461746963546578740D57656C636F6D654C6162656C32074F6E436C69636B071257656C636F6D654C6162656C32436C69636B0000000000

里面的两个新增加的Label的click事件被绑定了,会一起发生改变,请查看,谢谢
WLDNA [2013-04-10 04:08 PM]
设计器中的Tlabel的Transparent默认被设为了True。但实际上是False的,请检查
发表评论
昵 称:
密 码: 游客发言不需要密码.
验证码: 验证码
内 容:
选 项:
虽然发表评论不用注册,但是为了保护您的发言权,建议您注册帐号.
字数限制 5000 字 | UBB代码 开启 | [img]标签 关闭