D语言编辑器SciTE4D 0.18的新功能

D语言最好的编辑器SciTE4D 0.18已经基本完成,等Tango 0.99.8正式发布后将正式发布。

我的dwt已经切换到dwt2, 也就是和SWT模块命名保持一致的版本。新的dwt2导入模块名比较长,如果没有编辑器的自动完成功能,是比较烦琐的。于是就着手更新scite4d.

https://www.d-programming-language-china.org/d-bian-ji-qi-scite4d-0.18/

SciTE4D新版已经加入的模块名自动完成有:Phobos, Tango, DWin, dwt-win, dwt2, derelict等。如果你加入自己的自动完成模块名,可以这样操作:

  1. 进入SciTE4D安装目录

  2. 运行命令行:

     ybud impprtPath1;importPath2
    
    比如:
    ybud X:\d\dmd\phobos;X:\d\dmd\tango
    

    这样就可以自动把搜索到的模块名加入到SciTE4D\api\modules.api文件中去,搜索时用到的PCRE正则表达式在SciTE4D\ybud.conf中,比如现在是这样的:

    moduleName=(?>)(?im)^\s*module\s+([a-zA-Z]+(?: *\. *\w+)+);
    

D语言编辑器SciTE4D   http://scite4d.d-programming-language-china.org/中目前没有加入方法的自动完成和提示,如果你有兴趣,可以自己提取出方法名然后加入到modules.api文件中去。

SciTE4D 0.17版的正则表达式用的是Tango库的Regex, 经试用, 扫描速度非常慢,而且经常因为bug而无法使用,正则规则有些是不需要的另起炉灶,又没有禁止回溯选项。在0.18版中改用PCRE 正则表达式,比Tango的强大100倍。现在的Tango的正则表达式可以说是比较垃圾。

为什么用SciTE4D而不是其他D语言IDE, 或者D语言编辑器

  1. SciTE4D非常轻便,速度极快, 功能强大

  2. 同时支持bat文件编译,Makefile编译,DSSS编译
    简单的项目用bat编译,复杂的项目我喜欢用GNU Make编译,库我一般是用dsss编译。在SciTE4D中这些都一键搞定。

  3. 一键帮助, 对初学者来说,没有一键帮助的编辑器不是作考虑的

  4. 集成ddbg, 一键调试,知道出错所在行,双击错误提示跳转到指定行

D语言语言编辑器SciTE4D的配置文件

在SciTE4D安装目录下有个ybud.conf文件,就是SciTE4D的配置文件,几个主要的设置如下:

  1. 指定 D语言编辑dmd的路径

    默认的设置是:

    dmd=dmd
    
    如果你已经把dmd所在路径加入Windows Path 环境变量,这样就可以了。否则,可以在这里指定dmd的绝对路径。你想用特定版的dmd, 在这里指定非常方便,比如:
    dmd=X:\dmd\2.0\bin\dmd.exe
    
  2. 指定Windows bat编译文件名

    默认设置是:

    batfile=build
    
    也就是把build.bat作为编译文件名。你可以改成building或者mybuild等等。
  3. 指定GNU Make exe文件路径

    默认设置是:

    make=mingw32-make.exe
    
    也就是使用SciTE4D安装目录下的mingw32-make.exe, 你可以把mingw32-make.exe换成你的版本,或者在这里指定绝对路径。
  4. 指定D语言编译工具dsss的路径

    默认设置是:

    dsss=dsss
    
    如果dsss.exe所在目录已经加到path环境变量中去,这里可以不作修改,否则就要改成dsss.exe的绝对路径。当然,如果你不用dsss可以不用设置。
    注意,dsss的作者目前居说很忙,dsss已经很长时间没有更新。因此,如果你用的是比较新的dmd1.040以后的D语言编译器,可能要在这里设置dsss的绝对路径,因为dsss不知道dmd 1.040版本以后的文件夹的改变。

用D语言编辑器SciTE4D build项目

到底怎么用SciTE4D编译项目?这里再详细介绍一下。

如果你在D:\d\myproject\目录下新建了一个project.d文件,在SciTE4D里打开project.d, 然后按F7, SciTE4D就会这样工作:

  1. 查找bat编译文件

    1. 首先查找D:\d\myproject\build-project.bat, 其中build可以在ybud.conf中重新设置。

    2. 如果build-project.bat不存在,就查找build.bat

    3. 找到bat文件,如果其中内容包含project.d,就执行bat并退出

  2. 查找Makefile编译配置文件

    1. 首先查找D:\d\myproject\Makefile

    2. 找到Makefile, 如果其中内容包含project, 就执行Make编译再退出:

       mingw32-make -f D:\d\myproject\Makefile
      
  3. 查找dsss编译配置文件dsss.conf

    1. 首先查找D:\d\myproject\dsss.conf

    2. 如果找到,并其中含有节点[project.d]就执行dsss编译。

    3. 如果你在dsss.conf中配置了debugflags并按下F7,就是deubg编译

    4. 如果你在dsss.conf中配置了releaseflags并按下Ctrl+F7就是release编译

  4. 如果在源文件所在目录找不到编译配置文件,就到父级目录下继续查找

在bat编译中,区分得更详细,同目录下查找两个不同的bat文件,这是0.18版新加的功能。有什么用呢?

比如在test目录下新建dwt2.d, tan.d, win.d, 用来分别运行测试代码。我写好三个bat文件,分别命名为:

build-dwt2.bat  //编译dwt测试代码
build-tan.bat // 编译tango测试代码
build-win.bat    //编译dwin测试代码

不同的库,导入文件,所用到的lib,编译指令可能是不同的,如果共用一个bat文件就会显得比较混乱。

现在,如果要测试dwt的snippets,把代码粘贴进dwt2.d, 在SciTE4D中打开,一按快捷键F7, 就执行build-dwt2.bat编译。

如果要测试tango代码,把代码贴进tan.d, 在SciTE4D中打开,一按快捷键F7, 就执行build-tan.bat编译。

另外, SciTE4D中的一键帮助已经更新到了DMD 1.038, 你也可以从作者网站直接下载:
http://thecybershadow.net/d/docs/

这个网址被伟大的g f w 和谐了,你可能要用代理才能上去。

https://www.d-programming-language-china.org/d-bian-ji-qi-scite4d-0.18/
D语言编辑器SciTE4D 0.18的新功能

相关文章: