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

新的Scala for NetBeans提供测试

阅读更多
重新写过的Scala for NetBeans现在可以在NetBeans 6.1RC或者最新的Nightly Build上测试,你可以从NetBeans Update Center获得,方法是:
"Tools"->"Plugins", 检查"Setting"看"Last Development Build"是否在Update Centers列表中, url是: http://deadlock.netbeans.org/hudson/job/javadoc-nbms/lastSuccessfulBuild/artifact/nbbuild/nbms/updates.xml.gz

如果你用的是Beta/RC/Release NetBeans 6.1, 你需要手工添加上述"Last Development Build" Update Center。

支持的功能有:

    * Syntax highlighting
    * Auto-indentation
    * Brace completion
    * Formatter
    * Outline navigator
    * Occurrences mark for local variables and function
    * Instance rename for local variables and function
    * Go-to-declaration for local variables and function
    * Scala project
    * Basic debugger


已知的问题有:

    * Auto-completion it not full supported yet and not smart
    * There is no parsing errors recovering yet
    * Semantic errors are not checked on editing, but will be noticed when you build project
    * Due to the un-consistent of Scala's grammar reference document, there may be some syntax broken issues


另外,Fortress的编辑插件也可以以同样的方法获得和安装,不过,这个插件还很弱。

Erlang的插件现在也可以同时安装在同一个NetBeans 6.1RC和Nightly Build上,不需要另外下栽ErlyBird了,同时,Indexing的性能有了很大提高,在我的机器上大约5分钟就行了。

Erlang插件将来也会重写。
分享到:
评论
5 楼 dcaoyuan 2008-04-23  
因为NetBeans的几个基础模块在Trunk里有与6.1不兼容的的变化,所以现在Scala plugins只能安装在Nightly Build上了。现在Trunk里的代码目标是是7.0,在多语言支持方面会有较大的重构。

写语言插件的信息恐怕就是我的英文blog上比较多了。你可以跟一下我的Scala代码。

4 楼 dcaoyuan 2008-04-19  
自言200801 写道
dcaoyuan 写道
自言200801图中的错误刚改掉了,明天下午Update一下Scala Editing插件就行了。


呵呵,速度真快,还3小时不到就改好啦。

不过我有点好奇:

你为Scala、Erlang做NetBeans上的插件,上次你说这插件主体是语言的parser,
那这parser是要做到什么程度呢?只是完成语法错误检查就行了吗?
语义层次的错误能检查出来吗?

NetBeans是内置javac的,
我去年跟“歆渊”在javaEye里讨论过了,
NetBeans里内置的javac能检测到数据流分析层次的错误(比如一个final变量是否正确赋值都能在editor中提示出来),

Scala、Erlang都是编译型的语言,按理说也能做到NetBeans内置的javac一样,
如果只是一个语法层次的parser,是不是显得功能弱了点?
如果做得再往下深几层,又差不多实现大半个编译器了,这样的话你不借助官方编译器提供接口自己实现难度不小。


Scala目前的official compiler对IDE的支持不行,eclipse的插件就是基于它的,可是连Type都不能检测出来。这个Official compiler对于IDE的主要问题在于:
1、它是一个global builder,就是说哪怕你只敲了一个字符,如果想得到现在的AST就要做一次Global builder,这对IDE来说,性能是无法接受的,所以eclipse的插件只好让你保存时才做解析;
2、很吃内存,恐怕500M内存的机器根本不能跑;
3、Lexer的结果好像不能单独得到,而对于IDE来说,很多操作最好能在lexer层次就完成,比如着色、缩进、括号匹配等,甚至lexer还最好是增量的,这样才有好的性能。

目前我自己写的lexer和parser有这样一些特点:
1、lexer是增量的,
2、Parser的性能基本与文件大小是线性的,这样即使打开很大的文件,性能也是可预测和线性的;
3、Parser的内存消耗非常小;
4、Parse后AST的位置信息只是一个参考,随后转换成lexer的对应Token,这是非常重要的,因为我可以在将来实现增量的Parser;
5、Parser是自动由语法定义文件产生,我可以很快跟上Scala语言的变化

自己写Parser的一个最大的好处就是我已经慢慢积累了一些可以重用的类,这样,支持一门新的语言非常容易,这些类可以逐渐成为一组API,为NetBeans提供更好的扩展。

至于以IDE为目的的Parser和以编译、运行为目的的Parser的区别,简单说,就是IDE的parser不需要最后编译成字节码或解释运行,其他的功能指向也全都是IDE,目标明确。以Scala为例,在Parser上之上,我首先实现了一个语义分析器,目前的功能在一周左右的业余时间完成,接下来是一个比较完整的类型分析和检查。

没错,语义分析和类型分析compiler本来都已经做得好好的,但就象前面说的,除非象javac一样与IDE的开发人员密切合作,否则,还是没多大用处,IDE开发人员还是需要一次、两次地遍历这些结构,来产生IDE需要的信息。

语义层次的错误检查和类型检查都需要Global的信息,但我自己的做的好处是顺便与IDE的索引功能一起完成,反正都要做,干脆自己来。

IDEA和Eclipse为Scala的插件都干了很久了(若干年了),但实际结果证明,我的途径不是比他们都快吗?有一点你说的没错,我就是个实干家,喜欢动手、马上动手,喜欢推翻自己,喜欢从头再来,这样总比等别人来推翻好吧:-),软件不是房子,没有几十年都屹立在那里的,甚至越久越古典,当然理论除外。
3 楼 dcaoyuan 2008-04-18  
自言200801图中的错误刚改掉了,明天下午Update一下Scala Editing插件就行了。
2 楼 dcaoyuan 2008-04-18  
自言200801 写道

能否告知jline.dll的源码在哪里?

http://jline.sourceforge.net
1 楼 Eastsun 2008-04-18  
支持一下
PS:LS现在是用什么资料学习Scala呢?
习惯了命令式的编程,代码风格很难改变~

相关推荐

    scala netbeans 插件(2)

    scala netbeans 插件(2)scala netbeans 插件(2)scala netbeans 插件(2)

    scala netbeans 插件(3)

    scala netbeans 插件(3)scala netbeans 插件(3)scala netbeans 插件(3)scala netbeans 插件(3)scala netbeans 插件(3)

    scala netbeans 插件(1)

    scala netbeans 插件(1)scala netbeans 插件(1)

    Andriod for NetBeans 插件

    Android for NetBeans 插件是专门为开发者设计的一款集成开发环境(IDE)扩展,它使得开发者能够在NetBeans平台上进行Android应用的开发。这个插件的出现,弥补了NetBeans IDE在原生支持Android开发上的不足,使得...

    hibernate for netbeans 6.1

    总之,Hibernate for NetBeans 6.1为开发者提供了一个强大且便捷的平台,使他们能够在Java应用中轻松地管理和操作数据库,同时保持高效的开发流程。尽管它可能不适用于所有NetBeans版本,但对于使用NetBeans 6.1的...

    sde 4.4 for netbeans

    sde 4.4 for netbeans,netbeans uml 企业版插件,当然整个license也包括了eclipse版本的。 http://www.visual-paradigm.com/news/nb65/

    hibernate for netbeans5.5

    标题“Hibernate for NetBeans5.5”指的是在NetBeans 5.5集成开发环境中使用Hibernate框架的特定版本。Hibernate是一个开源的对象关系映射(ORM)框架,它允许开发者使用Java对象来操作数据库,从而简化了数据库操作...

    NetBeans IDE v7.4 for PHP 简体中文版.zip

    NetBeans IDE 是一个开发环境 - 供程序员编写、编译、调试和部署程序的一个工具。 它是用 Java 编写的 - 但却可以支持任何编程语言。 另外也有巨大数量的模块来扩展 NetBeans IDE,它是一个免费产品,不限制其使用...

    struts2 for netbeans 6.7

    综上所述,Struts2 for NetBeans 6.7的组合为Java Web开发提供了强大的工具和支持,让开发者能够高效地构建出结构清晰、易于维护的应用程序。通过深入了解这些知识点,你可以更好地利用这个平台来提升你的开发能力。

    netbeans-8.0-linux

    对于Java开发者,它提供了全面的Java SE、Java EE和Java ME支持,包括代码编辑、调试、测试和部署等功能。 在Linux环境下,NetBeans 8.0 提供了良好的系统集成,它可以无缝地与Linux的文件系统、版本控制系统(如...

    HIBERNATE FOR NETBEANS 数据操作方法

    **Hibernate for NetBeans 数据操作方法** Hibernate 是一个流行的开源对象关系映射(ORM)框架,它简化了Java应用程序与数据库之间的交互。NetBeans 是一款强大的集成开发环境(IDE),提供了丰富的功能来支持...

    Netbeans如何使用JUnit

    NetBeans IDE作为一个强大的开源集成开发环境,提供了对JUnit的内置支持,让开发者能够无缝地在NetBeans中进行单元测试。本篇文章将详细讲解如何在NetBeans中使用JUnit进行测试。 首先,确保你已经安装了支持JUnit...

    icefaces1.8 for netbeans6.7beta

    标题"icefaces1.8 for netbeans6.7beta"揭示了我们正在讨论的是一个专门针对NetBeans 6.7 Beta版本的IceFaces 1.8集成。IceFaces是一个开放源码的JavaServer Faces (JSF)组件库,它专注于提供富互联网应用程序(RIA...

    NetBeans数据库连接与测试视频录象

    它提供了丰富的工具和功能,包括对数据库的支持,使得开发者能够轻松地连接、管理以及测试数据库。本视频录像是针对NetBeans IDE如何进行数据库连接与测试的一个教程,旨在帮助用户更好地理解和掌握这一过程。 首先...

    jMaki Plug-in for NetBeans 5.5

    jMaki Plug-in for NetBeans 5.5

    nbscala:用于Scala的NetBeans插件

    用于Scala的NetBeans插件项目信息这是用于的Netbeans平台的插件。 对于Maven Scala项目,不需要在本地安装Scala。 它启用语法检查,语法突出显示,自动完成,漂亮的格式化程序,出现标记,花括号匹配,缩进,代码...

    NetBeans Platform for Beginners样章及全书代码

    NetBeans Platform for Beginners是2014年8月底才出版的书籍,与最新版的netbeans 8同步,目前还没有中文版及全书的电子版,只能找到样章。样章中,手把手地详解如何使用netbeans来开发应用及module,涉及到的概念...

    netbeans-8.2,Linux,x64

    - NetBeans有一个活跃的开发者社区,提供了大量的教程、论坛讨论和问题解答,帮助新用户快速上手。 - Oracle官方文档提供了详细的使用指南和API参考,是学习和解决问题的重要资源。 总之,NetBeans IDE 8.2是...

    NetBeans安装包.rar

    总的来说,NetBeans安装包.rar是一个包含完整JDK的NetBeans IDE 8.2中文版安装源,为用户提供了便捷的Java开发环境。无论你是新手还是经验丰富的开发者,都可以借助NetBeans的强大功能提高开发效率和代码质量。通过...

Global site tag (gtag.js) - Google Analytics