写 bug 速度提升200%!吊爆的 IDEA 使用技巧

这篇具有很好参考价值的文章主要介绍了写 bug 速度提升200%!吊爆的 IDEA 使用技巧。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

背景

Java 开发过程经常需要编写有固定格式的代码,例如说声明一个私有变量,logger或者bean等等。

对于这种小范围的代码生成,我们可以利用 IDEA 提供的 Live Templates功能。

刚开始觉得它只是一个简单的Code Snippet,后来发现它支持变量函数配置,可以支持很复杂的代码生成。

下面我来介绍一下Live Templates的用法。

基本使用

IDEA 自带很多常用的动态模板,在 Java 代码中输入fori,回车就会出现

 

for (int i = 0; i < ; i++) {

}

按Tab可以在各个空白处跳转,手动填值。

写 bug 速度提升200%!吊爆的 IDEA 使用技巧

自定义 Template

官方自带模板毕竟不能满足我们个人编码风格的需要,Live Templates提供了变量函数的方式供我们自定义。

简单用法

新增自定义模板,首先需要填写触发单词(即 Abbreviation),描述是可选的,然后定义模板的上下文,点击define选择Java,这样在编辑 Java 的时候就会触发当前模板,定义完上下文之后,就可以填写模板了。

写 bug 速度提升200%!吊爆的 IDEA 使用技巧

下面列举几个我常用的简单模板

 

==========
<out>
----------
System.out.println($END$)
==========
<pfs>
----------
private final static String $varName$ = "$var$";`
==========
<privateField>
----------
/**
 * $COMMENT$
 */
@Getter
@Setter
private $TYPE$ $NAME$;
==========
<main>
----------
public static void main(String[] args) {
     $END$
}
==========

模板支持变量的定义,使用$$包围的字符表示一个变量。是一个特殊的预定义变量,表示光标最后跳转的位置。每个变量的位置都可以跳转过去。

高级用法

如果你用过 vim 的Code Sinppet插件,你会发现模板里面是可以执行函数的,强大的 Live Templates当然也支持,而且 IDEA 能够感知代码的语义,例如说当前编辑的函数的参数。但这一点就能够让我们玩出花来。我们从易到难来研究模板函数的功能。

写 bug 速度提升200%!吊爆的 IDEA 使用技巧

 

前面我们提到的变量可以绑定函数,配置方式如上图所示。

快速声明变量

声明变量是一个常用的操作,特别是需要声明变量需要加注解,注释的时候,这些代码写起来就很枯燥。下面是我定义的模板:

 

<osgiRef>
----------
/**
 * $END$
 */
@OsgiReference
@Setter
private $TYPE$ $NAME$;

乍一看这个模板跟我上面定义的privateField差不多,唯一的不同在于我给这些变量绑定了函数。

  • clipboard():返回当前粘贴板的字符串

  • decapitalize():将输入的字符串首字母变为小写

下面我们演示一下,我们先拷贝当前类名,然后输入osgiRef

写 bug 速度提升200%!吊爆的 IDEA 使用技巧

快速声明 logger

声明 logger 也是一个常用的操作,上面我们是利用了粘贴函数来快速声明变量,现在我们来利用另一个函数className(),顾名思义,它的作用就是返回当前类名。

 

<logger>
----------
/** logger */
private static final Logger LOGGER = LoggerFactory.getLogger($CLASS$.class);

最强大的 groovyScript()

如果说上面用到的函数提供的能力有限,不够灵活,那么groovyScript()提供了一切你想要的能力,它支持执行 Groovy 脚本处理输入,然后输出处理后的字符串。

 

groovyScript("code", ...)

| code |   一段Groovy代码或者Groovy脚本代码绝对路径 |
|  ... | 可选入参,这些参数会绑定到`_1, _2, _3, ..._n`, 在 Groovy 代码中使用。|

下面我们来看一下它的实际应用。

快速 bean 配置

新增一个服务都要在 Spring 中注册一个 bean,一般这个配置无非就是将指明id和class,由于我们是在 xml 中配置,所以不能利用className()函数,但是我们可以利用clipboard()函数获取到类的全引用,在 IDEA 中我们直接右键类名,点击Copy Reference就行。然后执行 groovy 脚本获取类名。

 

<bean>
----------
<bean id="$id$" class="$REF$" />

id绑定decapitalize(groovyScript("_1.tokenize('.')[-1]", clipboard())),首先取clipboard()的值得到类的全引用,然后执行 groovy 代码_1.tokenize('.')[-1](按.分割为字符串数组,然后取最后一个即可得到类名,然后用decapitalize()将首字母小写即可得到id。

写 bug 速度提升200%!吊爆的 IDEA 使用技巧

快速打印当前上下文信息

打印错误日志的时候需要打印当前上下文信息的,例如说入参,有时候入参很多的时候,写起来很痛苦,好在有模板函数methodParameters(),返回当前函数参数的列表,当然这个列表我们不能直接使用,需要结合groovyScript对它进行转化。

 

<printContext>
---------------
LogUtil.$TYPE$(LOGGER, "$MSG$ " + $params$);

将params绑定到groovyScript("'"' + _1.collect { it + ' = [" + ' + it + ' + "]'}.join(', ') + '"'", methodParameters()),就能够自动将当前函数的参数格式化后输出。

写 bug 速度提升200%!吊爆的 IDEA 使用技巧

总结

上面我们简单介绍了常用的模板函数,其实 IDEA 还有很多其它模板函数,具体参考Creating and Editing Template Variables。

IDEA 是一个很强大的工具,善用工具能够极大的提高工作效率,将精力投入到关键的事情上,而不是将时间浪费在编写重复代码上面。

一些更高级的用法还有待大家去发掘。最后推广一波我写的代码生成插件CodeMaker,好好利用也能节省很多重复编写代码的时间。文章来源地址https://www.toymoban.com/news/detail-478398.html

到了这里,关于写 bug 速度提升200%!吊爆的 IDEA 使用技巧的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 提升 Postman 使用技巧:完全掌握 Query、Path 和 Body 参数传递

    题解 | #密码验证合格程序# #include iostream#include vectorus   题解 | #数字颠倒# import java.util.Scanner;// 注意类名必须为 Main, 不要有任何 pa   淘天一面 面经 淘天一面:计算机开机的过程经历了什么?站在计算机这个视角,为什么要有操作系统?操作系统的虚拟化技术(   美团前端

    2024年04月13日
    浏览(51)
  • 【测试效率提升技巧】xmind测试用例转换为excel工具使用手册

    1.在命令行执行pip install xmind2testcase -U 2.到python中xmind2testcase的安装路径(我的路径是D:pythonLibsite-packagesxmind2testcase)下新建一个文件夹,命名为web 3.在命令行cd到刚刚创建的web文件夹,执行pip freeze requirements.txt 4.命令行执行pip install -r requirements.txt -U PS:请尽量使用xMind8 Up

    2024年02月12日
    浏览(41)
  • IDEA使用技巧

    目录结构: bin:容器,执行文件和启动参数等 这里以我的电脑系统(64 位 windows7, 16G 内存)为例,说明一下如何调整 VM 配置文件: 1、大家根据电脑系统的位数,选择 32 位的 VM 配置文件或者 64 位的 VM 配置文件 2、32 位操作系统内存不会超过 4G,所以没有多大空间可以调整,

    2024年02月07日
    浏览(42)
  • IDEA 使用技巧

    除了一些在Linux上用vim开发的大佬,idea算是很友好的集成开发工具了,功能全面,使用也很广泛。 记录一下我的 IDEA 使用技巧,以后想到什么会继续更新这个 我主要用IDEA开发java,不知道idea对其他语言是否也有这些支持,所以感兴趣的可以看一下 sout 快速生成Java打印语句

    2024年02月08日
    浏览(41)
  • idea插件MyBatisCodeHelper Pro免费使用,及使用技巧

    目前MyBatisCodeHelper Pro需要订阅收费使用。 配置 数据库用的tinyInt 或者 smallInt生成java类型是 byte 和 short 两种类型。在java代码里面操作 byte 和 short 类型比较麻烦,经常需要强制转换,下面是设置使用Integer 来替代byte和short还有使用Java8的日期时间类型 使用 Maven依赖 创建Maven项目

    2024年02月12日
    浏览(67)
  • IntelliJ IDEA 使用技巧 | 查看类的继承关系图

    快捷键CTRL+H查看 利用idea快捷键查看hierarchy,效果如下 好处:可以看向上和向下的继承关系 缺点:只能看继承关系,不能看实现了哪些接口 在指定类右键查看diagram 也可以使用快捷键ctrl+alt+u,更快捷 好处:可以看向上的继承关系 缺点:既能看继承关系,也能看实现了哪些接

    2024年02月07日
    浏览(50)
  • 【建议收藏】新到手的电脑Windows10/11系统优化、使用规范和技巧及软件推荐,提升范电脑性能和体验

    目录 一、了解电脑 1. 查看电脑和系统的基本信息  2. 电脑测评 二 、Windows10/11系统优化及设置 1. 控制面板、回收站等桌面图标显示设置 2. 任务栏管理 3. 桌面图标排列 4. 卸载程序 5. 关闭P2P分享(传递优化) 6. 电设置脑为高性能 7.  删除存储中的临时文件 8. 磁盘清理 9.

    2024年02月12日
    浏览(59)
  • WPF性能优化示例:使用VirtualizingStackPanel提升界面加载速度

      概述: WPF界面绑定和渲染大量数据可能导致性能问题。通过启用UI虚拟化、异步加载和数据分页,可以有效提高界面响应性能。以下是简单示例演示这些优化方法。 在WPF中,当你尝试绑定和渲染大量的数据项时,性能问题可能出现。以下是一些可能导致性能慢的原因以及优

    2024年04月12日
    浏览(40)
  • 使用GitHub当博客图床提升博客访问速度

    作为一个穷逼来说站长来说,只有一个1M宽带这样的小水管服务器,如果博客稍微放一点图片到本地,然后人多点访问网站基本就很卡了,但又不想去吧图片放到图床里然后复制链接到文章里面那么麻烦 如何解决这个问题呢?网上浏览了一下发现有很多插件我最后选择了[Gi

    2024年02月03日
    浏览(45)
  • 巧妙使用多个旧路由器无线中继提升网络速度

    一、设备选择 1、百兆旧路由器,3-4个,用于无线中继WIFI信号,输出给多WAN路由器(DI-8200) 历史遗留百兆旧路由器3个,型号分别为腾达FH456、TP-Link TL-WR845N、TL-WR941N,3个路由器都是好的,不过购买新产品淘汰。LAN 端口 IP 分别设置为192.168.101.1、192.168.102.1、192.168.103.1,便于管

    2024年02月09日
    浏览(37)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包