想栈长我当初从 Eclipse 转用 IDEA 真是纠结,放弃然后尝试了N次,不过现在已经算是转型成功了,可以完全脱离 Eclipse 撸码了,虽然说我现在真的撸得非常少了。。

说到 IDEA 的痛点,我觉得注释配置就不是很人性化。Eclipse 可以很方便的设置和导入公共的自定义注释模板、格式化模板,但在 IDEA 中确实有点蹩脚,有点头大,配置起来甚至有点高级,还需要用到 Grovvy 脚本。。

废话不说了,来看下如何解决 Intellij IDEA 最头大的问题:自定义注释模板。。

IDEA 中有以下两种配置模板。

下面介绍下这两种的使用方法。

File and Code Templates

File and Code Templates 用来配置文件和代码模板,即文件在创建的时候自动会按文件模板生成代码注释。

下面来演示一下如何自动生成 Java 类注释。

依次打开下面这个菜单:

Editor > File and Code Templates > files

里面自带了很多文件的注释模板,只不过要自己设置,这个 class 里面的内容就是自带的,里面有一个 #parse 的代码。

#parse("File Header.java")

这个 File Header.java 哪里来的呢?

依次打开下面这个菜单:

Editor > File and Code Templates > files > Includes

其实这个 Includes 就是前面 Files 模板里面 parse 引用的片段而已。File Header 这里默认是空的,然后在这个片段里面编辑模板即可,支持一些预定义的变量,如:DATE、TIME、USER 等,上图给的是配置示例。

从上图也可以看到,这里的模板配置用的是 Apache Velocity 模板语言,其中的 #parse 就是 Velocity 模板语言的关键字。

所以,这里的 Java 类自动生成类注释就配置完那个 File Header 就行了,配置完后,随便创建一个类就会自动带上注释。

其他的文件配置方式不再撰述。

Live Templates

Live Templates 用来配置动态模板,可以在指定位置使用缩写字母自动生成注释。下面演示两个创建示例,手动生成类注释、方法注释。

上面演示的是创建类的时候自动添加注释,如果想手动添加类注释,怎么加?

首先打开 Live Templates 菜单:

Editor > Live Tempaltes

上面截图的已经配置好了 cc 和 mc,代表我输入 cc 和 mc 后会自动带出来类注释、方法注释。

右上角有个 + 号,点击选择 Live Template 添加一个动态模板,依次配置下面的内容。

Template Text 里面美元符号包起来的是变量,需要点击 Edit variable 按钮来设置这些变量。

另外,就是设置模板使用的场景,如以下所示,点击 Define 链接,设置类模板只能在 Java 语言下使用。

方法注释和类注释配置一致,配置示例如下:


唯一不同的是,方法里面的 params 变量需要用以下 Groovy 表达式来配置,比较麻烦。。

groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {result+=' * @param ' + params[i] + ((i < params.size() - 1) ? '\\n' : '')}; return result", methodParameters())

而且方法注释这里还有一个坑,使用 mc 时不能在方法上面,要在方法里面使用,不然 @param 带出来的是 null, 而不是具体的参数名称。

好了,今天就深圳了 Intellij IDEA 如何配置文件代码模板、类和方法注释,更多的就去研究这两个菜单吧。

关注Java技术栈微信公众号,栈长将继续分享 Intellij IDEA 的实战教程,公众号第一时间推送,持续关注。在公众号后台回复:idea,获取栈长整理的更多的 Intellij IDEA 教程,都是实战干货,以下仅为部分预览。

如果你喜欢 IDEA, 可加入我们的知识星球《Java技术栈》,我会经常在上面分享 IDEA 的使用小技巧,对 IDEA 有什么不懂的也可以在上面向我和大家提问。

最近干货分享

Spring Cloud Gateway VS Zuul 怎么选择?

46张PPT弄懂JVM、GC算法和性能调优!

数据库怎么分库分表,垂直?水平?

Zookeeper怎么实现分布式锁?

分享一份Java架构师学习资料

一个人学习、工作很迷茫?

点击「阅读原文」加入栈长的小圈子!

Intellij IDEA 撸码最头大的问题。。的更多相关文章

  1. 推荐几个IDEA插件,Java开发者撸码利器(转载)

    推荐几个IDEA插件,Java开发者撸码利器.   这里只是推荐一下好用的插件,具体的使用方法不一一详细介绍. JRebel for IntelliJ 一款热部署插件,只要不是修改了项目的配置文件,用 ...

  2. 我和小美的撸码日记--基于MVC+Jqgrid的.Net快速开发框架

    前言:以前的帐号没有发首页的权限,特此把这篇文章从另外一个博客移过来,这篇是<我和小美的撸码日记>的序 一转眼务农6年了,呆过大公司也去过小作坊,码农的人生除了抠腚还是抠腚.在所有呆过的公 ...

  3. 响应国家号召,在家撸码之React迁移记

    最近这段时间新型冠状病毒肆虐,上海确诊人数每天都在增加,人人提心吊胆,街上都没人了.为了响应国家号召,近期呆在家里撸码,着手将项目迁移到React中,项目比较朴素,是一张线索提交页面,包含表单.图片滚 ...

  4. 免费获取 IntelliJ IDEA 激活码的 6 种方式!

    你还在满世界找 IntelliJ IDEA 激活码? 破解的不稳定,也是违法的,有安全风险还不一定,不建议大家使用来历不明的补丁. 今天栈长就分享免费获取 IntelliJ IDEA 的 6 种方式, ...

  5. 我和小美的撸码日记(2)之第一个基于MVC+Jqgrid的列表页面

    一.前言 “尼玛哥,上周你教我改了下OA系统UI,黄总看了很满意呀.”    “不错不错,看来小美进步很大,可以提前结束试用期,到时候加工资别忘了请我吃饭呀!”    “尼玛哥,你有女朋友了吗?” “ ...

  6. 我和小美的撸码日记(1)之软件也需靠脸吃饭,带您做张明星脸(附后台经典框架 DEMO 下载)

    众所周知程序员得靠技术吃饭,但是真的光靠技术就够了吗?Teacher苍,一位德艺双馨的艺术家,论技术她自然是炉火纯青,我觉得她桃李遍天下的原因不仅限于些,试想如果Teacher苍长得跟凤姐一样再带点乡 ...

  7. Mac OS X 操作系统下IntelliJ IDEA激活码(Activation code)破解

    Mac OS X 操作系统(版本:10.13.6)下载并安装IntelliJ IDEA: Version: 2018.2.4 Download IntelliJ IDEA 下一步对IntelliJ I ...

  8. IDEA 中用好 Lombok,撸码效率至少提升5倍!

    来 源:http://t.cn/EXhxRzV 以前的Java项目中,充斥着太多不友好的代码:POJO的getter/setter/toString:异常处理:I/O流的关闭操作等等,这些样板代码既没 ...

  9. intellij免费激活码

    IDEA官方下载地址:https://www.jetbrains.com/idea/nextversion/ IntelliJ IDEA 2019.2最新版本免费激活码 支持IDEA所有版本 正版授权 ...

随机推荐

  1. tomcat源码分析一之getCanonicalFile和getAbsolutePath的区别

    最近在看tomcat源码 1.getPath(): 返回定义时的路径,(就是你写什么路径,他就返回什么路径) 2.getAbsolutePath(): 返回绝对路径,但不会处理“.”和“..”的情况 ...

  2. 关于BUG管理工具的操作总结。(禅道)

    禅道是第一款国产的优秀开源项目管理软件.先进的管理思想,合理的软件架构,简洁实效的操作,优雅的代码实现,灵活的扩展机制,强大而易用的api 调用机制,多语言支持,多风格支持,搜索功能,统计功能——这一 ...

  3. 架构-软件系统体系结构-B/S架构:B/S架构

    ylbtech-架构-软件系统体系结构-B/S架构:B/S架构 B/S架构即浏览器和服务器架构模式.它是随着Internet技术的兴起,对C/S架构的一种变化或者改进的架构.在这种架构下,用户工作界面 ...

  4. python正则re

    import reline = "Catsaresmarterthandogs"matchObj = re.match( r'(.*)are(\w{2})(.*)', line, ...

  5. kmalloc vs vmalloc

    kmalloc分配物理上连续的空间,可以不是整页大小的. vmalloc分配逻辑上连接的空间,可以不是物理上连接的.

  6. Pandas中的DataFrame按指定顺序输出所有列的方法

    问题: 输出新建的DataFrame对象时,DataFrame中各列的显示顺序和DataFrame定义中的顺序不一致. 例如: import pandas as pd grades = [48,99, ...

  7. DNF邀请码开发再开发方案需求

    一.原因分析:   1.现实原因:主播粉丝量级有限,一定规模粉丝注册消耗完后无法进 行之后合作 2.主播资源有限,能合作主播数量少   3.直播粉丝真实接近核心用户,但是不能将其有效转化为平台流水   ...

  8. 使用tensorboard报错 ImportError: No module named past.builtins

    安装 future pip install future conda install future

  9. 2019-9-18-WPF-客户端开发需要知道的触摸失效问题

    title author date CreateTime categories WPF 客户端开发需要知道的触摸失效问题 lindexi 2019-09-18 15:30:38 +0800 2019- ...

  10. ulimit - 获取和改变用户的限制设定

    大纲 #include <ulimit.h> long ulimit(int cmd, long newlimit); 描述 警告: 这个函数已经被废弃. glibc 不再提供这个包含文件 ...