`
dcaoyuan
  • 浏览: 307402 次
社区版块
存档分类
最新评论

ErlyBird - Erlang IDE based on NetBeans - 最新版本 0.15.0

    博客分类:
  • Java
阅读更多
正在开发中的NetBeans 6.0新近增加了一个模块叫GLF(Generic Language Framework),俺在这个基础上写了一个Erlang的编辑器模块,项目名称叫ErlyBird,目前支持的功能有:


    语法检查;
    语法高亮;
    代码折叠;
    函数导航(在Navigator窗口中);
    缩进


附件中解压后有两个NetBeans的nbm文件,从Tools->Update Center中选Install Manually Downloaded Modules(.nbm Files),将这两个文件添加进去,重新启动NetBeans。(要求NetBeans 6.0 M7以上)

因为GLF还不稳定,所以目前的版本仅提供编译后的文件供测试。待稳定后将正式发布源码。


  • 大小: 89.3 KB
分享到:
评论
68 楼 dennis_zane 2007-09-21  
very cool

格式化代码的功能期待了许久,感谢。
67 楼 dcaoyuan 2007-09-21  
ErlyBird 0.15.0,  大小17.6M

CHANGELOG:

* 重新格式化代码 (Ctrl+Shift+F).
* 标示某个变量或函数的使用位置.
* 更好的配对高亮,支持'try-catch-end', 'if-end' 等.
* "-import" 语法现在可以被正确解析,象RabbitMQ的代码现在能正确显示.
* Bug fixes

下栽
http://sourceforge.net/project/showfiles.php?group_id=192439
66 楼 dcaoyuan 2007-08-12  
今天正好有时间,改好了,下载附件后Update,有问题请及时告知。
65 楼 dcaoyuan 2007-08-12  
Arbow 写道
Erlybird的语法解析跟Eclipse不太相同,Eclipse中一部分代码语法出错,一般不会导致后面所有代码解析出问题,但是在Erlybird里面,由于import这里出错,后面的代码除了关键字,变量等可以正确显示颜色,函数和宏都无法识别了。


关于这个问题,我看过Erlide的代码,它把Erlang语法定义稍做改动后可以做到。ErlyBird下一步也要做到这一点,不过因为与Erlide用LALR语法定义不同,ErlyBird现在用的是LL(k),可能需要一些tricks
64 楼 dcaoyuan 2007-08-12  
我可以给你一个quick patch,等下周吧。
63 楼 Arbow 2007-08-12  
是的,在《Program Development Using Erlang -
Programming Rules and Conventions》里面就有 “6.6 Don’t use import”。
问题在于很多现成的代码里面,都使用了import,我现在正在用Erlybird来看Rabbitmq的代码就有这个问题。Erlybird的语法解析跟Eclipse不太相同,Eclipse中一部分代码语法出错,一般不会导致后面所有代码解析出问题,但是在Erlybird里面,由于import这里出错,后面的代码除了关键字,变量等可以正确显示颜色,函数和宏都无法识别了。
62 楼 dcaoyuan 2007-08-12  
Arbow 写道
hi, caoyuan

在解析
-import(application).
-import(gen_server).
-import(mnesia).

这样的语法时会提示出错


我依据的是Erlang Specification 它对import attribute的定义是:
- Import ( ModuleName, FunctionNameList ) FullStop
没有提到FunctionNameList是可选项。

我再核实一下。

不过我不建议使用import,因为不像Java里的import,Java里import后,至少你还要在先申明对象类型,然后方法调用前都会有个对象名或类型名。Erlang里import进来的函数直接调,有时靠模块名一起界定函数名的意思的那些函数就会意思不明了。比如:session:get_value(Key, Props)变成get_value(Key, Props)就没那么清楚的含义了。

好像Joe还是谁也曾有过这个观点。
61 楼 Arbow 2007-08-12  
hi, caoyuan

在解析
-import(application).
-import(gen_server).
-import(mnesia).

这样的语法时会提示出错
60 楼 dcaoyuan 2007-08-12  
刚更新到0.12.1,性能有了进一步提高,索引整个OTP库的时间减少到一半。

这个版本在我的机器上运行起来总算足够顺畅了。
59 楼 dcaoyuan 2007-08-09  
ErlyBird 0.12.0 发布,这个版本主要是改Bug和提高性能。

这个版本只以单独的IDE形式提供,不提供插件包。

下载请到:
http://sourceforge.net/project/showfiles.php?group_id=192439

安装:
1、解压erlybird-bin-0.12.0.zip到某处。Windows用户:'bin\erlybird.exe',*nix用户,"\bin\erlybird";
2、检查OTP安装路径:菜单:[Tools]->[Options]->"Miscellanous"->"Erlang Installation",设成erl或erl.exe的全路径,比如:"C:\erl\bin\erl.exe"
3、默认JVM的-Xmx设成了256M,如果你想增加,编辑etc\erlybird.conf的行"default_options="之"-J-Xmx"项,

第一次运行时照例会索引OTP库,需时从30到60钟不等。

注意:如果你安装了以前的版本,请先将用户目录删除,位置在:
    * *nix: "${HOME}/.erlybird/dev"
    * mac os x: "${HOME}/Library/Application Support/erlybird/dev"
    * windows: "C:\Documents and Settings\yourusername\.erlybird\dev"

ChangeLog:

    # 显示性能提高
    # unbound和unused变量会显示为灰色.
    # macros and records的自动补齐.
    # 跳转到-include 和 -include_lib的源文件.
    # Mac OS X 下的Erlang shell可以了
    # Bugs修订.
58 楼 dcaoyuan 2007-08-08  
dcaoyuan 写道
Arbow 写道
提个意见,貌似ErlyBird即时解析的频率比Erlide大的多。经常只打了几个字符,语法解析开始了,关键字颜色之类变化,打了几个字符又恢复。在程序比较大的时候感觉编码很卡


是有这个问题。主要是Generic Language Framework是这样做的,这个框架现在根本还没开始做优化,希望他们在6.0正式出来前能够做一些。我看过GLF的代码,也提交过一个相关的issue,工作量应该不是太大。


GLF最近开始作优化,他们昨天的改进不错,显示的性能大幅提高,这个问题可能解决了不少。

顺利的话周末发新版本。
57 楼 dcaoyuan 2007-07-15  
coderplay 写道
很奇怪为什么没有comment&comment block功能?  我觉得这个对于开发人员来说是挺实用的说, 而且实现起来应该不难. emacs的erlang-mode这方面以及gen_fsm, gen_server各种模板做得不错的说


我不太记得了:-) 我现在的版本是有这个功能,但0.11.2呢?如果没有的话就等最近要发的版本吧。
56 楼 coderplay 2007-07-15  
很奇怪为什么没有comment&comment block功能?  我觉得这个对于开发人员来说是挺实用的说, 而且实现起来应该不难. emacs的erlang-mode这方面以及gen_fsm, gen_server各种模板做得不错的说
55 楼 dcaoyuan 2007-07-15  
song8159 写道
在SourceForge.net上还是0.11.2版本的(2007-5-18).
尽快放出来吧!


等前面提到的那个内存泄露问题解决掉就可以先发布一个版本,这个泄露问题他们已经开始查。
54 楼 song8159 2007-07-14  
在SourceForge.net上还是0.11.2版本的(2007-5-18).
尽快放出来吧!
53 楼 dcaoyuan 2007-07-14  
song8159 写道
你的ErlyBird进展如何?


最近完成了:
1、跳转到include/include_lib文件;
2、对各种语句的详细语义解析,这样可以根据语句的scope判断一个变量是否从未使用或者是unbound,然后显示为灰色;
3、已经索引了define和record,下一步加上对使用的跟踪和自动补齐;
4、帮Generic Languages Framework修订了一个bug,这样索引时对源文件的解析可以到99%以上(剩下的1%是由于Macro对语法的影响,这种情况在OTP库中很少,如果出现在你的程序中,正好提醒你最好不要用太复杂的 Macro)
5、刚找到一个Common Scripting Framework的bug,可以让索引时间减少到一半左右(包括Ruby模块也应该可以受益)。



52 楼 song8159 2007-07-14  
你的ErlyBird进展如何?
51 楼 dcaoyuan 2007-07-13  
dcaoyuan 写道

2、NetBeans中的Generic Language Framework有一个bug,如果源文件没有在编辑器中打开,有些token居然会被不处理,这导致在索引时有些库文件不能被完整解析。

第二个问题我还没向NetBeans反映,所以一时半会解决不了。不过以我现在天天用ErlyBird的经验看,大部分OTP库还是会给我提示的。


昨天给他们发了一个 patch,今天已经加进trunk里,这个问题算是解决了,当然,因为解析正确的内容比原来多了,做索引的时间也长了,在我现在的机器上要40分钟。

GLF框架该开始做优化了。
50 楼 dcaoyuan 2007-06-23  
Arbow 写道
提个意见,貌似ErlyBird即时解析的频率比Erlide大的多。经常只打了几个字符,语法解析开始了,关键字颜色之类变化,打了几个字符又恢复。在程序比较大的时候感觉编码很卡


是有这个问题。主要是Generic Language Framework是这样做的,这个框架现在根本还没开始做优化,希望他们在6.0正式出来前能够做一些。我看过GLF的代码,也提交过一个相关的issue,工作量应该不是太大。
49 楼 Arbow 2007-06-23  
提个意见,貌似ErlyBird即时解析的频率比Erlide大的多。经常只打了几个字符,语法解析开始了,关键字颜色之类变化,打了几个字符又恢复。在程序比较大的时候感觉编码很卡

相关推荐

Global site tag (gtag.js) - Google Analytics