Board logo

Subject: CnBeautifierWizard的前世今生 [Print This Page]

Author: lextm    Time: 2005-5-21 19:56     Subject: CnBeautifierWizard的前世今生

Ø        现阶段的安装方法
由于本人还没有加入CnPack开发组,本专家也没有正式加入CnWizards,安装还是需要CnPack源代码。
打开相应的CnWizards工程,加入CnBeautifierWizard.pas和CnBeautifierFrm.pas两个文件。
在CnWizConsts.pas里面添加下面的常量:
SCnBeautifierWizardName: string='代码美化专家';
SCnBeautifierWizardHint: string='代码美化专家';
SCnBeautifierWizardComment: string='Delphi/C++Builder 代码美化专家';
ScnBeautifierWizRunConfigCaption: string='选项(&O)';
SCnBeautifierWizRunConfigHint: string='代码美化专家选项';
SCnBeautifierWizRunBeautifierCurrentCaption: string='美化当前文件';
SCnBeautifierWizRunBeautifierCurrentHint: string='美化当前文件';
SCnBeautifierWizRunJcfNotFound: string='请确认已经安装并且设置 Jcf.';
SCnBeautifierWizRunAStyleNotFound: string='请确认已经安装并且设置 AStyle.';
SCnBeautifierWizRunFileModified: string='请先存盘.';
SCnBeautifierWizRunFileNotOpen: string='当前没有文件被打开.';

再编译即可。安装了这个DLL之后,打开IDE就可以使用了。
为了启动多语言,需要手工在三种语言的CnWizards.txt文件,加入下面的内容:
1028:
TCnBeautifierForm.Label1.Caption=正在格式化...
TCnBeautifierConfigForm.Caption=代碼美化專家設置
TCnBeautifierConfigForm.btnOK.Caption=絋﹚(&O)
TCnBeautifierConfigForm.btnCancel.Caption=??(&C)
TCnBeautifierConfigForm.btnHelp.Caption=腊?(&H)
TCnBeautifierConfigForm.grpAStyle.Caption=C++ 美化-AStyle
TCnBeautifierConfigForm.lblAStyleExe.Caption=AStyle 程式位置:
TCnBeautifierConfigForm.btnAStyleExe.Caption=瀏覽(&B)
TCnBeautifierConfigForm.grpJCF.Caption=Delphi 美化-Jedi Code Format
TCnBeautifierConfigForm.lblJcfExe.Caption=JCF 程式位置:
TCnBeautifierConfigForm.btnJcfExe.Caption=瀏覽(&S)
TCnBeautifierConfigForm.rbAStyleDefault.Caption=默認樣式
TCnBeautifierConfigForm.rbJava.Caption=Java 樣式
TCnBeautifierConfigForm.rbAnsi.Caption=ANSI 樣式
TCnBeautifierConfigForm.rbKernighanRitchie.Caption=Kernighan 和 Ritchie 樣式
TCnBeautifierConfigForm.rbJcfDefault.Caption=默認樣式(Borland 樣式)
TCnBeautifierConfigForm.rbLinux.Caption=Linux 樣式
TCnBeautifierConfigForm.rbGnu.Caption=GNU 樣式
TCnBeautifierConfigForm.OpenDialog1.Filter=可執行程式 (*.exe)|*.exe
SCnBeautifierWizardName=代碼美化專家
SCnBeautifierWizardHint=代碼美化專家
SCnBeautifierWizardComment=Delphi/C++Builder 代碼美化專家
ScnBeautifierWizRunConfigCaption=選項(&O)
SCnBeautifierWizRunConfigHint=代碼美化專家選項
SCnBeautifierWizRunBeautifierCurrentCaption=美化當前文件
SCnBeautifierWizRunBeautifierCurrentHint=美化當前文件
SCnBeautifierWizRunJcfNotFound=請確認已經安裝並且設置 Jcf.
SCnBeautifierWizRunAStyleNotFound=請確認已經安裝並且設置 AStyle.
SCnBeautifierWizRunFileModified=請先存盤.
SCnBeautifierWizRunFileNotOpen=當前沒有文件被打開.

1033:
TCnBeautifierForm.Label1.Caption=Beautifying...
TCnBeautifierConfigForm.Caption=Beautifier Options
TCnBeautifierConfigForm.btnOK.Caption=&OK
TCnBeautifierConfigForm.btnCancel.Caption=&Cancel
TCnBeautifierConfigForm.btnHelp.Caption=&Help
TCnBeautifierConfigForm.grpAStyle.Caption=for C++ - AStyle
TCnBeautifierConfigForm.lblAStyleExe.Caption=AStyle exe:
TCnBeautifierConfigForm.btnAStyleExe.Caption=&Browse
TCnBeautifierConfigForm.grpJCF.Caption=for Delphi - Jedi Code Format
TCnBeautifierConfigForm.lblJcfExe.Caption=JCF exe:
TCnBeautifierConfigForm.btnJcfExe.Caption=Brow&se
TCnBeautifierConfigForm.rbAStyleDefault.Caption=Default
TCnBeautifierConfigForm.rbJava.Caption=Java
TCnBeautifierConfigForm.rbAnsi.Caption=ANSI
TCnBeautifierConfigForm.rbKernighanRitchie.Caption=Kernighan&&Ritchie
TCnBeautifierConfigForm.rbJcfDefault.Caption=Default (Borland style)
TCnBeautifierConfigForm.rbLinux.Caption=Linux
TCnBeautifierConfigForm.rbGnu.Caption=GNU
TCnBeautifierConfigForm.OpenDialog1.Filter=Executable (*.exe)|*.exe
SCnBeautifierWizardName=Beautifer
SCnBeautifierWizardHint=Code Beautifier
SCnBeautifierWizardComment=Delphi/C++Builder Code Beautifier
ScnBeautifierWizRunConfigCaption=&Options
SCnBeautifierWizRunConfigHint=Beautifier Options
SCnBeautifierWizRunBeautifierCurrentCaption=Beautify Current
SCnBeautifierWizRunBeautifierCurrentHint=Beautify current file
SCnBeautifierWizRunJcfNotFound=Please install and configure JCF.
SCnBeautifierWizRunAStyleNotFound=Please install and configure AStyle.
SCnBeautifierWizRunFileModified=Please save the file first.
SCnBeautifierWizRunFileNotOpen=No file is open.

2052:
TCnBeautifierForm.Label1.Caption=正在格式化...
TCnBeautifierConfigForm.Caption=代码美化专家设置
TCnBeautifierConfigForm.btnOK.Caption=确定(&O)
TCnBeautifierConfigForm.btnCancel.Caption=取消(&C)
TCnBeautifierConfigForm.btnHelp.Caption=帮助(&H)
TCnBeautifierConfigForm.grpAStyle.Caption=C++ 美化-AStyle
TCnBeautifierConfigForm.lblAStyleExe.Caption=AStyle 程序位置:
TCnBeautifierConfigForm.btnAStyleExe.Caption=浏览(&B)
TCnBeautifierConfigForm.grpJCF.Caption=Delphi 美化-Jedi Code Format
TCnBeautifierConfigForm.lblJcfExe.Caption=JCF 程序位置:
TCnBeautifierConfigForm.btnJcfExe.Caption=浏览(&S)
TCnBeautifierConfigForm.rbAStyleDefault.Caption=默认样式
TCnBeautifierConfigForm.rbJava.Caption=Java 样式
TCnBeautifierConfigForm.rbAnsi.Caption=ANSI 样式
TCnBeautifierConfigForm.rbKernighanRitchie.Caption=Kernighan 和 Ritchie 样式
TCnBeautifierConfigForm.rbJcfDefault.Caption=默认样式(Borland 样式)
TCnBeautifierConfigForm.rbLinux.Caption=Linux 样式
TCnBeautifierConfigForm.rbGnu.Caption=GNU 样式
TCnBeautifierConfigForm.OpenDialog1.Filter=可执行程序 (*.exe)|*.exe
SCnBeautifierWizardName=代码美化专家
SCnBeautifierWizardHint=代码美化专家
SCnBeautifierWizardComment=Delphi/C++Builder 代码美化专家
ScnBeautifierWizRunConfigCaption=选项(&O)
SCnBeautifierWizRunConfigHint=代码美化专家选项
SCnBeautifierWizRunBeautifierCurrentCaption=美化当前文件
SCnBeautifierWizRunBeautifierCurrentHint=美化当前文件
SCnBeautifierWizRunJcfNotFound=请确认已经安装并且设置 Jcf.
SCnBeautifierWizRunAStyleNotFound=请确认已经安装并且设置 AStyle.
SCnBeautifierWizRunFileModified=请先存盘.
SCnBeautifierWizRunFileNotOpen=当前没有文件被打开.

一时不便之处还请谅解。本人自当努力,争取早日加入CnPack开发组J

Ø        CnBeautifierWizard的Help——参照CnWizards其他专家的帮助写成

代码美化专家
该专家用于美化C++/Delphi文件代码,支持多种预设的样式,但暂时不支持自定义,详见后面样式说明。
专家支持Delphi/C++Builder,暂无默认快捷键。
如果系统没有安装AStyle和JEDI Code Format,执行该专家会提示用户安装和设置。
专家菜单如图所示:

l        美化当前代码:将当前窗口的文件按照预设的样式格式化。
参数设置
代码美化专家的设置界面如下图所示:

l        C++ 美化-AStyle:
š        AStyle 程序位置:单击浏览按钮,选择AStyle.exe文件。
š        样式:选择使用的样式。
l        Delphi 美化-Jedi Code Format
š        JCF程序位置:单击浏览按钮,选择JCF.exe文件。
š        样式:选择使用的样式,暂时只支持Borland样式。
现有样式的说明:
l        Java样式:依据Sun公司java.sun.com上面的代码样式说明。
class foospace {
    int Foo() {
        if (isBar) {
            bar();
            return 1;
        } else
            return 0;
    }
}
l        ANSI样式:依据ANSI C++文档样式。
namespace foospace
{
    int Foo()
    {
        if (isBar)
        {
            bar();
            return 1;
        }
        else
            return 0;
    }
}
l        Kernighan 和 Ritchie样式:依据其经典作品《The C Programming Language》一书的样式。
namespace foospace {
    int Foo() {
        if (isBar) {
            bar();
            return 1;
        } else
            return 0;
    }
}
l        Linux样式:依据Linux代码样式。
namespace foospace
{
        int Foo()
        {
                if (isBar) {
                        bar();
                        return 1;
                } else
                        return 0;
        }
}
l        GNU样式:依据GNU文档样式。
namespace foospace
  {
    int Foo()
      {
        if (isBar)
          {
            bar();
            return 1;
          }
        else
          return 0;
      }
}
l        默认样式(AStyle):是K&R样式。
l        默认样式(JCF):是Borland样式,依据Charles Calvert所写BDN文档《Object Pascal Style Guide》一文建立的样式。


AStyle和JEDI Code Format在Sourceforge.NET上面可以下载。Required.rar里面有详细说明。

Attachment: CnBeautifierWizard.zip (2005-5-21 19:56, 7.96 K) / Download count 458
http://bbs.cnpack.org/attachment.php?aid=64

Attachment: REQUIRED.RAR (2005-5-21 19:56, 446.38 K) / Download count 483
http://bbs.cnpack.org/attachment.php?aid=65
Author: qet006    Time: 2005-5-28 10:56

怎么没人顶呢
支持
Author: lextm    Time: 2005-6-1 12:50     Subject: 最近的一些情况

本人在做毕业设计,故而没有时间改错和加强这个东西。所以,希望大家多多试用,自己解决一些小问题。
    经过管理员的讨论,考虑到JCF和DelForExp都有Delphi的插件,这个东西就不会加入今后的CnWizards发布了。所以需要使用的同志,比如C++Builder的用户,请按照上面的说明自行安装。我也会在结束论文答辩后尽快给出新的版本,比如1.0。
  谢谢支持。
Author: lextm    Time: 2005-9-19 15:26

论文答辩结束已经好长一段时间了,自己零零碎碎的更新了一点,但是突然发现CnPack的更新更快,我先前的代码居然和CnPack不兼容了。问题的表现是出现CnWizards菜单失灵的结果。没有时间查找错误。所以又回到了自己当时那个Jcf Integration Expert 1.0的基础上,升级到了2.0。

请喜欢的用户查阅“关于代码自动排版(美化,或者格式化)的一系列问题 ”一贴
Author: MSTAR    Time: 2005-9-19 16:37     Subject: 希望 CNPACK 早日加入 类似功能

就是这样的要求了
Author: 秋伊水    Time: 2005-9-20 09:29



QUOTE:
Originally posted by MSTAR at 2005-9-19 04:37 PM:
就是这样的要求了

就是啊,这种功能结合在cnwizards中我觉得应该更加有利于cnwizards的发展也方便用户不要安装更多的插件,况且DelForExp有什么问题都找不到作者




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