1. GitHub Copilot
    https://copilot.github.com/

    2. Key Promoter X 快捷键提示插件
    当代码很多的时候,方便查看,很有用。
    image.png
    每次都会在右下角弹窗提示,帮助我们快速熟悉快捷键。

    3. CodeGlance 显示代码缩略图插件

    image.png
    4. Mybatis Log打印sql

    5. Alibaba Java Coding Guidelines 阿里巴巴代码规范检查插件

    image.png
    会按照阿里Java开发手册上规范帮我们检查代码,然后对代码做不同颜色展示,鼠标放上去,会看到提示内容,帮助我们写出更规范的代码。

    6. CamelCase 驼峰命名和下划线命名转换

    image.png
    这几种风格的命名方式,用快捷键 ⇧ + ⌥ + U / Shift + Alt + U可以进行快速转换,当我们需要修改大量变量名称的时候很方便。

    7. MybatisX 高效操作Mybatis插件
    image.png

    8. SonarLint 代码质量检查插件

    image.png
    提示我不要用System.out输出,要用logger输出,诸如此类,帮助我们提升代码质量。

    9. Save Actions 格式化代码插件

    image.png
    可以帮忙我们优化包导入,自动给没有修改的变量添加final修饰符,调用方法的时候自动添加this关键字等,使我们的代码更规范统一。

    10. CheckStyle 代码风格检查插件

    功能跟Alibaba Java Coding Guidelines类似

    11. Grep Console 自定义控制台输出格式插件

    image.png

    12. MetricsReloaded 代码复杂度检查插件

    image.png

    13. Statistic 代码统计插件

    image.png

    14. Translation 翻译插件

    image.png

    image.png

    image.png

    15. Rainbow Brackets 彩虹括号插件
    可以通过设置页 Settings > Editor > Color scheme > Rainbow Brackets 自定义括号的颜色
    image.png

    image.png
    成对儿的括号显示相同的颜色,有了这个插件,我的近视都好了。

    16.Maven Helper
    image.png

    17.easycode-mybatiscodeHelper
    代码生成
    18.elasticsearch
    注意:收费软件

    19. Stackoverflow
    这个插件其实是最实用的插件,程序猿遇到的问题,基本都能找到回答,但是它使用的是google搜索引擎,所以你懂的。
    选中需要搜索的问题,然后,右键点击
    image.png
    狂拽屌指数:☆
    实用指数:★★★★★
    20、FindBugs
    Idea自带的检查工具已经很强大,如有需要也可以加上Alibaba Java Coding Guidelines的代码检查工具,但是,说白这些工具其实更多的是规范性检查,如果需要更深入的去检查异常,可以使用此插件~
    右键点击文件,包或者工程,会出现如下界面
    image.png
    狂拽屌指数:☆
    实用指数:★★★★★

    21、Nyan Progress Bar
    都说了,相亲见面第一印象很重要,如果你邀请设计,前端小姐姐老观看你的Idea,她肯定会觉得原来男孩子也会这么精致呀~
    形象陡然上升~
    就问你,这么绚丽多彩的颜色,哪个小姐姐不为你着迷~
    image.png
    狂拽屌指数:★★★★
    实用指数:★★☆

    22、Power Mode II
    Boom, Boom ,Boom, Boom 还有谁?!整个屏幕都在颤抖和炸裂,来来,跟随我的脚步,不如不如跳舞,免费蹦迪,玩的是心跳~
    image.png
    为了更加凸显,它的狂,拽,屌(自己不会弄动图,只能去网上盗图啦)
    image.png
    狂拽屌指数:★★★★★
    实用指数:☆

    23、String Manipulation

    24、GsonFormatPlus

    25、JUnitGenerator
    生成单元测试

    26、Sequence Diagram
    生成时序图
    27、 Restful Tool
    取代postman
    28、 EnvFile

    29.File Expander
    在idea打开tar.gz和zip,反编译jar

    30.GitToolBox
    在项目上提示还有多少本地文件没提交,远程还有多少文件没有拉取下来

    31.arthas idea
    阿里巴巴的java在线诊断工具

    # 修改全局配置,提升工作效率

    1. 优化导包配置

    image.png

    pom发生改变,立即导包可能会引起卡顿
    image.png

    2. 取消tab页单行显示

    image.png

    image.png

    多行显示更多的文件,方便查看。

    CTRL+鼠标滚轮缩放页面
    image.png

    3. 双斜杠注释改成紧跟代码头

    image.png

    image.png

    4. 选中复制整行

    image.png

    image.png

    原本只会复制你选中的代码,改完配置后,就能复制整行,无论你是否完全选中。

    5. 取消匹配大小写

    image.png

    取消勾选后,输入小写 s ,也能提示出 String

    6. 设置注释颜色
    image.png

    7. 创建文件时,自动生成作者和时间信息

    image.png

    1. /**
    2. * description
    3. * @author Raint
    4. * @date ${DATE} ${TIME}
    5. */

    8 . 显示行号和方法分割线

    image.png
    9 . 字体

    1. JetBrains Mono

    10.常用快捷键

    Ctrl+F 在本页查找
    ctrl+shift+f全局查找
    ctrl+shift+r全局替换
    Ctrl+Shift+N 按文件名搜索文件
    Ctrl+H 查看类的继承关系,例如HashMap的父类是AbstractMap,子类则有一大堆
    Ctrl+Alt+B 查看子类方法实现
    Ctrl+B 可以查看父类或父方法定义,但是不如ctrl+鼠标左键方便。但是在这里,Ctrl+B或ctrl+鼠标左键只能看见Map接口的抽象方法put的定义,不是我们想要的,这时候Ctrl+Alt+B就可以查看HashMap的put方法。
    Alt+F7 查找类或方法在哪被使用
    Shift+Shift 搜索任何東西

    shift+shift 非常强大,可搜索类、资源、配置项、方法等,还能搜索路径。其中搜索路径非常实用,例如你写了一个功能叫hello,在java,js,css,jsp中都有hello的文件夹,那我们可以搜索”hello/“找到路径中包含hello的文件夹。

    11.idea快捷键生成注释生成模板
    # 类注释

    打开 IDEA 的 Settings,点击 Editor—>File and Code Templates,点击右边 File 选项卡下面的 Class,在其中添加图中红框内的内容:
    /* @author jitwxs @date ${YEAR}年${MONTH}月${DAY}日 ${TIME} /

    image.png

    1. #if (${PACKAGE_NAME} && ${PACKAGE_NAME} != "")package ${PACKAGE_NAME};#end
    2. #parse("File Header.java")
    3. /**
    4. * @author Raint
    5. * @date ${YEAR}年${MONTH}月${DAY}日 ${TIME}
    6. */
    7. public class ${NAME} {
    8. }

    在我提供的示例模板中,说明了作者和时间,IDEA 支持的所有的模板参数在下方的 Description 中被列出来。

    保存后,当你创建一个新的类的时候就会自动添加类注释。如果你想对接口也生效,同时配置上图中的 Interface 项即可。

    # 方法注释

    不同于目前网络上互相复制粘贴的方法注释教程,本文将实现以下功能:

    1. 根据形参数目自动生成 @param 注解
    2. 根据方法是否有返回值智能生成 @Return 注解

    相较于类模板,为方法添加注释模板就较为复杂,首先在 Settings 中点击 Editor—>Live Templates。

    点击最右边的 +,首先选择 2. Template Group… 来创建一个模板分组:

    image.png

    在弹出的对话框中填写分组名,我这里叫做 userDefine:

    image.png

    然后选中刚刚创建的模板分组 userDefine,然后点击 +,选择 1. Live Template:

    image.png

    此时就会创建了一个空的模板,我们修改该模板的 Abbreviation、Description 和 Template text。需要注意的是,Abbreviation 必须为 *,最后检查下 Expand with 的值是否为 Enter 键。

    image.png

    上图中· Template text 内容如下,请直接复制进去,需要注意首行没有 /,且 * 是顶格的。

    1. /**
    2. * @description $description$
    3. $param$
    4. * @return $return$
    5. */

    注意到右下角的 No applicable contexts yet 了吗,这说明此时这个模板还没有指定应用的语言:

    image.png

    点击 Define,在弹框中勾选Java,表示将该模板应用于所有的 Java 类型文件。

    image.png

    还记得我们配置 Template text 时里面包含了类似于 $date$ 这样的参数,此时 IDEA 还不认识这些参数是啥玩意,下面我们对这些参数进行方法映射,让 IDEA 能够明白这些参数的含义。点击 Edit variables 按钮:

    image.png

    为每一个参数设置相对应的 Expression:
    image.png

    需要注意的是,date 和 time 的 Expression 使用的是 IDEA 内置的函数,直接使用下拉框选择就可以了,而 param 这个参数 IDEA 默认的实现很差,因此我们需要手动实现,param 代码如下:

    1. 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())

    return代码如下:

    1. methodReturnType()

    注:你还注意到我并没有勾选了 Skip if defined 属性,它的意思是如果在生成注释时候如果这一项被定义了,那么鼠标光标就会直接跳过它。我并不需要这个功能,因此有被勾选该属性。

    点击 OK 保存设置,大功告成!

    # 检验成果

    1 类注释

    类注释只有在新建类时才会自动生成,效果如下:

    image.png

    2 方法注释

    将演示以下几种情况:

    • 无形参
    • 单个形参
    • 多个形参
    • 无返回值
    • 有返回值

    image.png

    # Q & A

    (1)为什么模板的Abbreviation 一定要叫 * ?Expand with 要保证是 Enter 键?

    答:因为 IDEA 模板的生成逻辑是 模板名 + 生成键,当生成键是 Enter 时,我们输入 * + Enter 就能够触发模板。

    这也同时说明了为什么注释模板首行是一个 了,因为当我们先输入 /,然后输入 + Enter,触发模板,首行正好拼成了 /*,符合 Javadoc 的规范。

    (2)注释模板中为什么有一行空的*?

    答:因为我习惯在这一行写方法说明,所以就预留了一行空的写,你也可以把它删掉。

    (3)注释模板中$time$$param$ 这两个明明不相干的东西为什么紧贴在一起?

    答:首先网上提供的大部分 param 生成函数在无参情况下仍然会生成一行空的 @param,因此我对param 函数的代码进行修改,使得在无参情况下不生成 @param,但是这就要求 $param$ 要和别人处在同一行中,不然没法处理退格。

    (4)为什么 return 参数不使用methodReturnType(), 而要自己实现?

    答:methodReturnType() 在无返回值的情况下会返回 void,这并没有什么意义,因此我对 methodReturnType() 返回值进行了处理,仅在有返回值时才生成。

    (5)为什么$return$ 不是单独一行?

    答:因为当 methodReturnType() 返回 null 时,无法处理退格问题,原因同第三点。

    image.png

    12.工具栏
    image.png