yidabu 2007-5-8 10:01
D语言Scite自动完成设置
D语言Scite自动完成设置知识若不分享 实在没有意义 http://www.d-programming-language-china.org 20070508点击下面网址查看原文:http://www.d-programming-language-china.orgtag:scite api,scite配置,d语言编辑器 D语言是门新兴语言,相关配套的D语言库很缺乏,很多时候我们要调用操作系统api来完成一些工作。 在写代码时,手工重复地输入一些类似代码会让人烦。比如Windows gui编程通常有个WinMain函数,虽然我们可以从已有代码中copy,paste,但有没有更方便的办法呢 办法是有的,就是文本编辑器的自动完成功能。 文本编辑器中,基本上SciTe算得上是最强的了。关于SciTe的配置,见D语言论坛 http://www.d-programming-language-china.org 相关文章,这里yidabu不再重复。 d-programming-language-china.org写了一个函数,自动把D语言函数替换成scite自动完成文件格式。使用方法: 1 把相关D语言函数保存到单独文件中 比如D:\scite\abbrev.properties 2 函数格式 每个函数前面加上//函数名= 每个函数后面加上//=函数名 例如:( 本文出处: http://www.d-programming-language-china.org ) [Copy to clipboard] [ - ]CODE: //WinMain= extern (C) void gc_init(); extern (C) void gc_term(); extern (C) void _minit(); extern (C) void _moduleCtor(); extern (C) void _moduleUnitTests(); extern (Windows) int WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { }//=WinMain 3 执行下面函数 把D:\scite\abbrev.properties作为参数传给函数: [Copy to clipboard] [ - ]CODE: //自动替换函数成scite缩写形式 // p=文件路径 char[] abbrevd(char[] p) { //~ char[] p = r"D:\AutoIt\config\abbrev.properties"; assert(exists(p)); char[] s = cast(char[]) read( p ); //~ s = std.regexp.sub(s,r"\s*//[^\r\n]+","","g"); //delete comment //bbs.d-programming-language-china.org注 D语言的正则表达式不支持反向引用//$1//,也不支持.跨行,所以用[\s\S]来代替. s = std.regexp.sub(s, r"//((\w+)=[\s\S]+?//=\w+)", delegate char[] (RegExp m) { char[] ss = m.match(1); //tab ss = std.regexp.sub(ss,r"\r\n\t",r"\n\t","g"); ss = std.regexp.sub(ss,r"\r\n\t{2}",r"\n\t\t","g"); ss = std.regexp.sub(ss,r"\r\n\t{3}",r"\n\t\t\t","g"); ss = std.regexp.sub(ss,r"\r\n\t{4,}",r"\n\t\t\t\t","g"); //替换4个space成tab ss = std.regexp.sub(ss,r"\r\n\x20{4}",r"\n\t","g"); ss = std.regexp.sub(ss,r"\r\n\x20{8}",r"\n\t\t","g"); ss = std.regexp.sub(ss,r"\r\n\x20{12}",r"\n\t\t\t","g"); ss = std.regexp.sub(ss,r"\r\n\x20{16,}",r"\n\t\t\t\t","g"); //newline ss = std.regexp.sub(ss,r"\r\n",r"\n","g"); //bbs.d-programming-language-china.org注,在SciTe缩写文件中,|表示光标位置,所以用||来表示| ss = std.string.replace(ss,r"|",r"||"); return ss; }, "img"); return s; } 返回值就是SciTe缩写形式。 在SciTe里点击菜单Options,Open Abbreviations File,会打开abbrev.properties文件,把D语言缩写内容加到后面去就行了。 http://bbs.d-programming-language-china.org是用写了代码自动添加的。 然后在写D语言代码时输入WinMain,再按Ctrl+b就自动完成输入了整个WinMain函数。( lastupdate:20070508 最新文章请访问http://www.d-programming-language-china.org )关于一大步成功社区:yidabu提倡在交流中学习,在分享中提高收集感兴趣的知识,写下心得,通过网络与别人一起分享理解一点就实践一步,收获什么就分享什么,成功就是这样一点点一步步累积起来的网络只是一个工具,只有自己身心提高才是实实在在的。d-programming-language-china.org为大家提供一个学习交流各种知识的平台