`
helian
  • 浏览: 17192 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

IDEA9 的超酷新DSL支持

阅读更多

原帖:http://groovy.dzone.com/articles/custom-groovy-dsl-support

 

 

作者想秀一下IDEA9的新功能,并取得一些反馈。

上图就是在IDEA9中写groovy代码时写下数字加点的代码提示,竟然是币种提示。这是怎么出来的呢?

 

只要在项目classpath下加入后缀为gdsl的groovy文件,就可以实现这种效果。比如把以下代码存入一个.gdsl:

 

 

def ctx1 = context(ctype: "java.lang.Number")

contributor(ctx1) {
    property name: "eur", type: "test.Money"
    property name: "usd", type: "test.Money"
    property name: "chf", type: "test.Money"
    property name: "rur", type: "test.Money"
}

 

就实现了上面数字后的币种代码提示。

 

方法提示

 

除了上面例子里的property提示,还可以加入方法提示。

 

比如我们给ReentrantLock注入一个withLock的方法,该方法接受一个闭包,在运行闭包内代码前加锁,运行完后解锁。

 

 

ReentrantLock.metaClass.withLock = {nestedCode ->
    delegate.lock()
    try {
        nestedCode()
    } finally { delegate.unlock() }
}

 在.gdsl文佳内加入以下代码

 

def ctx2 = context(ctype: "java.util.concurrent.locks.ReentrantLock")

contributor(ctx2) {
    method name: 'withLock', type: 'void', params: [closure: { } ]
}

 在IDEA9中就会出现代码提示和自动补全:

 

这个新功能还在试验中,想了解更多的话请去 JetBrains wiki 以及 mrhaki's blog. 如果大家有什么想法的,联系作者

分享到:
评论
18 楼 tinsn 2009-11-19  
还在使用netbeans。。。
17 楼 helian 2009-11-19  
看了一下spring sts,基本上还是eclipse上原来的groovy grails插件。跟IDEA的jetgroovy插件完全不似一条街上的。
16 楼 samfisher 2009-11-19  
不错,配置文件都用groovy写最合适不过了。随着idea开源,java ide的三国演义开始了,呵呵
15 楼 helian 2009-11-18  
netfishx 写道
helian 写道

。。。。。。不过说道grails groovy IDEA绝对是老大。


你确定不是人家spring的sts?


正在下载。。。
从featrue来看肯定不如IDEA,不过既然是东家出的,将来搞不好后来居上。
14 楼 netfishx 2009-11-18  
helian 写道

。。。。。。不过说道grails groovy IDEA绝对是老大。


你确定不是人家spring的sts?
13 楼 helian 2009-11-18  
jayo 写道
我是喜欢搞新东西的人,开始接触IDEA有点点排斥,不过慢慢的去了解她,发现很多功能出乎我的意料,可以狂妄的说,Eclipse能做的,IDEA绝不放过!


IDEA比白板eclipse要好多了,毕竟是商用的,对主流框架、web service、xml等支持的极强。说起IDE的历史的话,IDEA是前辈。各色框架工具支持eclipse的比较多,比如drool什么的。不过说道grails groovy IDEA绝对是老大。
12 楼 jayo 2009-11-18  
我是喜欢搞新东西的人,开始接触IDEA有点点排斥,不过慢慢的去了解她,发现很多功能出乎我的意料,可以狂妄的说,Eclipse能做的,IDEA绝不放过!
11 楼 jayo 2009-11-18  
来了新公司,一直用IDEA了,感觉还不错,跟eclipse各有各的好,不了解IDEA的人觉得很多东西都比不上eclipse,其实不然,IDEA功能其实更强大,不过个人感觉IDEA的svn提醒没有Eclipse明细,也就是界面设计差一点吧!
10 楼 q56454589 2009-11-18  
用了一两个月  不怎么样!
9 楼 jansel 2009-11-18  
leejon 写道
说实话,现在Eclipse系列已经占据我的思想。记得之前用纯记事本,后来JCreator,然后一直用Eclipse了。NetBeans也不习惯使用。


同样的经历啊,记得刚开始编写代码就是用的记事本,然后敲命令编译和运行。这种情况持续了近半年,不得不佩服自己的毅力。半年下来之后好多类和类的方法记得清清楚楚,也算锻炼了


IDEA 一直永不习惯,不知道为什么,感觉就是对不上头。
8 楼 helian 2009-11-18  
swen00 写道
IDEA切换中英文输入法,经常莫名其妙的关闭,害的重新启动,打开时又要重新编译,尤其这个重新编译,耗时太长了,不知LZ遇到此问题没?


关闭没遇见过。有时google输入法会跟ctrl+space快捷键冲突,导致我最喜欢的代码提示出不来,改改快捷键就好了。
IDEA启动已经比以前快多了。当然如果非正常关闭导致引用很多jar包的项目重新建索引的话是很慢。
7 楼 nickycheng 2009-11-18  
swen00 写道
IDEA切换中英文输入法,经常莫名其妙的关闭,害的重新启动,打开时又要重新编译,尤其这个重新编译,耗时太长了,不知LZ遇到此问题没?


以前用搜狗拼音在eclipse下会莫名的关闭,换了个输入法就好了。应该是ide和输入法的冲突造成的。
6 楼 swen00 2009-11-18  
IDEA切换中英文输入法,经常莫名其妙的关闭,害的重新启动,打开时又要重新编译,尤其这个重新编译,耗时太长了,不知LZ遇到此问题没?
5 楼 nj_first 2009-11-18  
helian 写道
leejon 写道
说实话,现在Eclipse系列已经占据我的思想。记得之前用纯记事本,后来JCreator,然后一直用Eclipse了。NetBeans也不习惯使用。


多数人都是习惯用第一次接触的IDE,刚工作就是用的IDEA,后来用eclipse用是能用,就是不喜欢。



多用用,各有各的好处。
4 楼 helian 2009-11-17  
leejon 写道
说实话,现在Eclipse系列已经占据我的思想。记得之前用纯记事本,后来JCreator,然后一直用Eclipse了。NetBeans也不习惯使用。


多数人都是习惯用第一次接触的IDE,刚工作就是用的IDEA,后来用eclipse用是能用,就是不喜欢。
3 楼 leejon 2009-11-17  
说实话,现在Eclipse系列已经占据我的思想。记得之前用纯记事本,后来JCreator,然后一直用Eclipse了。NetBeans也不习惯使用。
2 楼 whaosoft 2009-11-17  
我还是第一次听到这个东西
1 楼 helian 2009-11-17  
看来用IDEA玩groovy的人太少了。。。咋都看贴不回贴捏

相关推荐

    idea(IntelliJ IDEA)支持yml文件

    在标题提到的"idea(IntelliJ IDEA)支持yml文件"中,我们主要探讨的是IntelliJ IDEA如何处理和编辑YAML(YAML Ain't Markup Language)格式的文件。 YAML是一种数据序列化语言,常用于配置文件,如在服务器配置、...

    换了最新的idea如何将原来旧版本的idea设置导进新的idea中

    IntelliJ IDEA是一款广受欢迎的Java集成开发环境(IDE),由JetBrains公司开发。随着新版本的不断更新,用户可能需要将旧版本的...此外,如果你在旧版本中使用了一些不再支持的插件,可能需要在新版本中寻找替代方案。

    IntelliJ_IDEA_设置 idea9

    【标题】"IntelliJ IDEA 设置详解 - idea9" 【正文】 IntelliJ IDEA,作为一款广受欢迎的Java集成开发环境(IDE),以其强大的代码智能提示、高效的项目管理和丰富的插件支持深受开发者喜爱。在idea9这个版本中,...

    泛微E9表结构,E9开发环境搭建IDEA篇

    - **安装IntelliJ IDEA**:首先,你需要下载并安装IntelliJ IDEA,这是一个功能强大的Java IDE,支持多种语言和框架,对于E9开发提供了丰富的插件和工具支持。 - **配置JDK**:在IDEA中,确保已经正确配置了JDK...

    流程引擎之compileflow idea 2024.*插件支持

    虽然描述中提到的是compileflow-idea-designer-1.0.17版本,但根据插件的惯例,通常会不断更新以支持新版本的IDEA。如果需要其他版本的插件支持,可以在相关社区或资源平台留言寻求帮助。 6. 插件的优势 - 提高效率...

    解决idea9 开机 jvm无法启动的错误

    这里我们遇到了一个关于Idea9的常见问题,即“开机jvm无法启动”的错误。这个问题可能阻碍了用户正常使用IDE,但不用担心,我们可以通过一些步骤来解决它。 首先,我们需要理解什么是JVM(Java Virtual Machine)。...

    E9开发环境搭建IDEA篇. 不懂得可以私我

    Ecology9是泛微E9开发环境搭建的核心组件,本文将指导您如何使用IDEA搭建E9开发环境。 知识点1:SVN下载最新的Ecology9代码 在开始之前,需要从SVN上下载最新的Ecology9代码,这一步骤非常重要,因为它将影响后续...

    IntelliJ IDEA 使用教程

    - **插件市场**:IntelliJ IDEA支持广泛的插件扩展,用户可以根据需要安装额外的功能组件。 - **特定插件案例**:例如JRebel插件,用于实现Java应用程序的热部署,无需重启即可查看更改效果。 #### 十一、高级特性 ...

    最新IDEA, 2024.1.4 Windows版

    9. **插件更新**:IntelliJ IDEA拥有丰富的插件生态系统,新版本可能会对一些流行插件进行升级,或者推出新的插件以扩展IDE的功能。 10. **教学与学习资源**:对于初学者,IDEA通常会提供教程和引导,帮助他们快速...

    IDEA TFS支持组件-idea-tfs-203

    **IDEA TFS支持组件-idea-tfs-203** 在软件开发过程中,源代码管理工具扮演着至关重要的角色,而Team Foundation Server (TFS) 和 IntelliJ IDEA 是两个广泛使用的工具。TFS 是微软提供的一个强大的版本控制系统,...

    idea maybatis插件 支持xml自动提示

    3. **动态SQL支持**:MybatisX插件还支持动态SQL标签的智能提示和高亮显示,如`if`, `choose`, `when`, `otherwise`, `trim`, `where`, `foreach`等,让开发者在处理复杂的条件判断和循环逻辑时更加得心应手。...

    Idea React 模板插件

    1. **自动支持React语法**:Idea React模板插件的核心特性是能够识别并自动高亮显示React的JSX语法。JSX是JavaScript的一个扩展,允许在JavaScript中书写类似HTML的结构,以声明式的语法创建React组件。插件对JSX的...

    IDEA新版本2020.3的TFS插件

    标题中的“IDEA新版本2020.3的TFS插件”指的是IDEA 2020.3版本中针对TFS的专门插件,该插件旨在帮助用户无缝地在IDEA环境中与TFS进行交互,实现代码的版本控制、变更跟踪、分支管理等功能。描述中的"IDEA TFS支持...

    IDEA 2020 无法启动的解决办法(启动崩盘)附IDEA 2020 新功能

    2. **JDK14支持**:IDEA 2020支持JDK14,并且能够识别和处理新引入的语法,比如record,这可以帮助开发者更好地利用新语言特性。 3. **数据流分析辅助调试**:在调试器中引入了数据流分析,使开发者能更清晰地理解...

    IDEA的彩虹屁插件(支持2021.3版本)

    该插件特别强调支持IDEA的2021.3版本,这意味着它已经针对该版本的IDEA进行了优化和适配,确保了与最新版本的兼容性和稳定性。对于使用IDEA 2021.3的用户来说,安装并启用Rainbow Fart插件可以享受到更多定制化的...

    2024年IDEA新手使用教程:详解,让你轻松上手!

    内容涵盖IDEA的下载安装、创建新项目、编写和运行代码、使用版本控制、使用Maven或Gradle、配置数据库、调试代码、使用插件、使用Terminal、使用Live Templates、代码自动完成、代码重构、代码片段、性能监控、云端...

    idea导入项目-idea-master.zip

    在IT行业中,IntelliJ IDEA是一款非常流行的Java集成开发环境(IDE),被广泛用于编写Java应用程序和其他支持的语言,如Kotlin、Groovy等。当我们谈论"idea导入项目"时,通常指的是将现有的代码仓库或者代码结构引入...

    一套配置良好的 IDEA 设置导出文件,支持 IDEA 2020及以后版本

    6. **项目模板**:自定义的新建项目模板,便于快速启动新项目。 "DarkPurpleTheme.jar"是一个颜色主题文件,用于改变IDEA的界面颜色。暗紫色主题可能提供了一种舒适、低对比度的视觉体验,减轻长时间编码的视觉疲劳...

    IDEA最新版2020.1的maven工程本地依赖仓库无法使用问题(已解决)

    "IDEA最新版2020.1的maven工程本地依赖仓库无法使用问题解决方案" 本文主要介绍了IDEA最新版2020.1的maven工程本地依赖仓库无法使用问题的解决方案。这篇文章详细介绍了 IDEA最新版2020.1的maven工程本地依赖仓库...

    snippets插件 IDEA代码块插件 IDEA代码片段插件

    idea原生代码片段管理插件Live Templates无法可视化管理,...snippets插件支持右键快速添加、目录树的管理、代码插入,目录树支持右键维护,同时代码片段支持鼠标拖拽。就让snippets IDEA插件开启你的收藏代码之旅吧!

Global site tag (gtag.js) - Google Analytics