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

Write an IDE in One Month - ErlyBird 0.11.0 Released

阅读更多

Updated Apr 24: The indexing feature is based on Lucene indexing from Common Scripting Framework now. But there won't be new release soon, since Generic Language Framework changes rapidly.

Updated Apr 21: There are several source files under \lib\megaco-3.5.3\src\text, which are with size > 300k, if you can not pass indexing procedure (ErlyBird hangs), please rename them something that are not end with ".erl" or ".hrl".

Updated Apr 20: Due to a severe bug that prevents setting Erlang Installation path, I've re-pack a new release 0.11.1 that fixed it. Don't forget to set the Erlang Installation path to full path of erl.exe or erl file, for instance, "C:\erl\bin\erl.exe".

Updated Apr 20: There is a bug, if your OTP is not installed as C:\erl, you can not set Erlang Installation. I'll update the bin package.

Updated Apr 20: erlybird-bin-0.11.0-ide.zip has been uploaded to sourceforge.net.

I'm newbie to IDE, to Erlang, to compilers principles. But, based on the works from NetBeans's guys, I wrote an almost complete Erlang IDE in one month.

With features:

  • Syntax checking.
  • Syntax highlighting.
  • Functions navigator.
  • Code-folding.
  • Indentation.
  • Completion for built-in/remote function call. (Ctrl+Space for suggestion) (new)
  • Go to declaration for remote function call (press down Ctrl and click on the function name). (new)
  • Project management - create/manage/build project tree. (new)
  • Compilation error locate. (new)
  • Auto indexing OTP libs and project sources. (new)
  • Interactive Erlang Console. (new)

And with known Issues:

  • ErlyBird is memory eager so far, it needs at least -Xmx256m set, 500m or more is recommended for big source files. Check the config file of NetBeans that is located at etc/netbeans.conf, make sure you've set -J-Xmx256m in line of 'netbeans_default_options'
  • Run project button does not work yet, if you press run project button, will show an interactive erlang shell only.
  • When indexing OTP libs, there may be Exceptions pop-ups, which indicate out of heap space, you can just ignore it.
  • Do not open/go to declaration too big source file in ErlyBird, this will also cause out of heap space.

And lacking features:

  • Debugging
  • ...

The parsing and editing features is based on Generic Language Framework.

The project management and indexing features is based on Common Scripting Framework.

To integrate editing feature, which is from Generic Language Framework, with Comman Scripting Framework, I had to lightly modify the Common Scripting Framework source code, the modified files are available from svn trunk folder: gsf-diff-ref.

And as I'm not yet familiar with Lucene index engine, which is used by Common Scripting Framework, I just wrote a sql db index engine and plug-in it to Common Scripting Framework. I will rewrite it based on LuceneIndex lately.

To download, please go to:

http://sourceforge.net/project/showfiles.php?group_id=192439

There are two installation options now, you can choose one of them:

The first one: A pre-packed NBMs kit: erlybird-bin-0.11.1-kit-nbms.zip(about 2.8M). To install:
Downloaded NetBeans IDE 6.0 M8+ via:
http://www.netbeans.info/downloads/dev.php
Select 'Milestone' in 'Build Type'.
After NetBeans IDE installed, unzip erlybird-bin-0.11.1-kit-nbms.zip first, then:

  1. From menu: Tools -> Update Center
  2. In the "Select Location of Modules" pane, click "Install Manually Downloaded Modules(.nbm Files)", then "Next"
  3. Click [Add...] button, go to the path to select all *.nbm files.
  4. Following the instructions to install updated modules.
  5. Restart NetBeans.
  6. Set your OTP path. From [Tools]->[Options], click on 'Miscellanous', then expand 'Erlang Installation', fill in the full path of your 'erl.exe' or 'erl' file, for instance: "C:/erl/bin/erl.exe"

The second one: A standalone ErlyBird IDE: erlybird-bin-0.11.1-ide.zip(about 18M). Notice: Please wait for me to upload it to sf.net :-) It does not need NetBeans IDE. To install:

  1. Just unzip it to somewhere, then execute 'bin/erlybird.exe' for windows, 'bin/erlybird' for *nix.
  2. Set your OTP path. From [Tools]->[Options], click on 'Miscellanous', then expand 'Erlang Installation', fill in the full path of your 'erl.exe' or 'erl' file, for instance: "C:/erl/bin/erl.exe"

If you are new to NetBeans, there are some docs for user:

http://www.netbeans.org/kb/55/quickstart.html
http://www.netbeans.org/kb/55/using-netbeans/index.html

It may not be stable yet, feedback and bug reports are welcome.

分享到:
评论

相关推荐

    flannel-v0.11.0-linux-arm64.tar.gz

    flannel-v0.11.0-linux-arm64.tar.gzflannel-v0.11.0-linux-arm64.tar.gzflannel-v0.11.0-linux-arm64.tar.gz

    flannel-v0.11.0-amd64.tar

    flannel:v0.11.0-amd64.tar镜像tar包,使用 docker load -i flannel-v0.11.0-amd64.tar进行导入

    flannel-v0.11.0-linux-amd64.tar.gz插件所需yml和镜像.rar

    docker import flannel-v0.11.0-linux-amd64.tar.gz kubectl create -f kube-flannel.yml 查看安装是否成功 kubectl get pod -n kube-system 如果STATUS不是running则失败删除重装 kubectl delete -f kube-...

    gophish-v0.11.0-windows-64bit.zip

    《gophish-v0.11.0-windows-64bit.zip:开源网络钓鱼平台的探索与使用》 gophish-v0.11.0-windows-64bit.zip 是一个专为Windows 64位操作系统设计的安装包,包含了开源网络钓鱼平台gophish的组件。gophish是一款...

    flannel-v0.11.0-linux-amd64.tar.gz

    下载完之后通过以下命令导入docker中,不能用 docker load 导入 cat flannel-v0.11.0-linux-amd64.tar.gz | sudo docker import flannel-v0.11.0-linux-amd64.tar.gz

    hudi-hadoop-mr-bundle-0.11.0.jar

    hudi-hadoop-mr-bundle-0.11.0.jar 配合文档

    xpack-openocd-0.11.0-3-win32-x64.zip

    【标题】"xpack-openocd-0.11.0-3-win32-x64.zip" 提供的是OpenOCD(Open On-Chip Debugger)的一个版本,它是一个开源的调试工具,主要用于嵌入式系统,特别是针对微控制器进行芯片级调试。OpenOCD支持多种硬件接口...

    moco-runner-0.11.0-standalone

    在使用"Moco Runner 0.11.0 Standalone"时,你需要做的第一步是下载并引入`moco-runner-0.11.0-standalone.jar`到你的项目中。然后,你可以使用Java API或者JSON配置文件来定义你的模拟服务。例如,通过Java代码,你...

    lannel-v0.11.0-amd64.tar与flannel-v0.11.0-linux-amd64.tar.gz

    k8s.gcr.io/flannel:v0.11.0-amd64镜像tar包,使用 docker load --input flannel_v0.11.0-amd64.tar进行导入,包含了flannel_v0.11.0-amd64.tar和flannel-v0.11.0-linux-amd64.tar.gz两个包。服务器安装手动导入

    paleo-core-0.11.0.jar和markdown_to_asciidoc-1.0.jar

    标题中的“paleo-core-0.11.0.jar”和“markdown_to_asciidoc-1.0.jar”是两个Java档案(JAR)文件,它们分别属于不同的软件库或工具。在Java编程环境中,JAR文件是将类文件和其他资源打包在一起的容器,便于分发和...

    apollo-client0.11.0-CSDN下载

    <groupId>com.ctrip.framework.apollo</groupId> <artifactId>apollo-client <version>0.11.0 </dependency>

    flanneld-v0.11.0-amd64.docker

    k8s.gcr.io/flannel:v0.11.0-amd64镜像tar包,使用 docker load --input flannel_v0.11.0-amd64.tar进行导入

    xpack-openocd-0.11.0-4

    **XPack OpenOCD 0.11.0-4: STM32的开源调试仿真利器** Open On-Chip Debugger (OpenOCD) 是一款强大的开源工具,它为嵌入式系统开发人员提供了芯片级调试和编程的支持。在这个特定的版本——"xpack-openocd-0.11.0...

    moco-runner-0.11.0-standalone.jar

    moco-runner-0.11.0-standalone.jar

    pandas-0.11.0.win32-py2.6.exe

    pandas-0.11.0.win32-py2.6.exe pandas-0.11.0.win32-py2.6.exe pandas-0.11.0.win32-py2.6.exe pandas-0.11.0.win32-py2.6.exe pandas-0.11.0.win32-py2.6.exe pandas-0.11.0.win32-py2.6.exe pandas-0.11.0.win32-...

    pandas-0.11.0.win-amd64-py3.2.exe

    pandas-0.11.0.win-amd64-py3.2.exe pandas-0.11.0.win-amd64-py3.2.exe pandas-0.11.0.win-amd64-py3.2.exe pandas-0.11.0.win-amd64-py3.2.exe pandas-0.11.0.win-amd64-py3.2.exe pandas-0.11.0.win-amd64-py3.2....

    pandas-0.11.0.win-amd64-py3.1.exe

    pandas-0.11.0.win-amd64-py3.1.exe pandas-0.11.0.win-amd64-py3.1.exe pandas-0.11.0.win-amd64-py3.1.exe pandas-0.11.0.win-amd64-py3.1.exe pandas-0.11.0.win-amd64-py3.1.exe pandas-0.11.0.win-amd64-py3.1....

    pandas-0.11.0.win-amd64-py2.7.exe

    pandas-0.11.0.win-amd64-py2.7.exe pandas-0.11.0.win-amd64-py2.7.exe pandas-0.11.0.win-amd64-py2.7.exe pandas-0.11.0.win-amd64-py2.7.exe pandas-0.11.0.win-amd64-py2.7.exe pandas-0.11.0.win-amd64-py2.7....

    pandas-0.11.0.win-amd64-py2.6.exe

    pandas-0.11.0.win-amd64-py2.6.exe pandas-0.11.0.win-amd64-py2.6.exe pandas-0.11.0.win-amd64-py2.6.exe pandas-0.11.0.win-amd64-py2.6.exe pandas-0.11.0.win-amd64-py2.6.exe pandas-0.11.0.win-amd64-py2.6....

    paleo-core-0.11.0.jar

    paleo-core-0.11.0.jar

Global site tag (gtag.js) - Google Analytics