# IDEA

# flag

# 每次启动进入欢迎界面

IDEA_startup

# 格式化代码时自动换行

# 去掉提示重复代码

# 去掉大小写敏感提示

# 自定义创建文件头部注释

  • File->Settings->Editor->File and Code Templates->Includes->File Header中添加
/**
 * 
 * @Description: 
 * @Author: ${USER}
 * @File: ${NAME}.java
 * @Version: 1.0.0
 * @Time: ${DATE} ${TIME}
 * @Project: ${PROJECT_NAME}
 * @Package: ${PACKAGE_NAME}
 * @Software: ${PRODUCT_NAME}
 */
  • 在文件模板中引用:#parse("File Header.java")

  • JavaScript头部注释

File->Settings->Editor->File and Code Templates->Includes->+中添加一个File Header后缀为js

/**
 * 
 * @Description: 
 * @Author: ${USER}
 * @File: ${NAME}.js
 * @Version: 1.0.0
 * @Time: ${DATE} ${TIME}
 * @Project: ${PROJECT_NAME}
 * @Package: ${PACKAGE_NAME}
 * @Software: ${PRODUCT_NAME}
 */


  • JavaScript File文件模板中引用:#parse("JavaScript Header.js")

# 预定义模板变量

  • ${PROJECT_NAME} - 当前项目的名称

  • ${PACKAGE_NAME} - 当前所在包名

  • ${NAME} - 在创建文件期间在新建文件对话框中指定的文件名称

  • ${USER} - 系统的当前用户登录名称

  • ${DATE} - 当前系统日期

  • ${TIME} - 当前系统时间

  • ${YEAR} - 当前年份

  • ${MONTH} - 当前月份

  • ${DAY} - 当前月的日期

  • ${HOUR} - 当前时刻

  • ${MINUTE} - 当前分钟

  • ${PRODUCT_NAME} - 将被创建文件所在的IDE名称

  • ${MONTH_NAME_SHORT} - 月份名称的前3个字母,例如: Jan, Feb, etc.

  • ${MONTH_NAME_FULL} - 月份全称,例如: January, February, etc.

# 自定义类文件创建模板

#if (${PACKAGE_NAME} && ${PACKAGE_NAME} 
!= "")package ${PACKAGE_NAME};#end


import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

#parse("File Header.java")

public class ${NAME} {

     private static final Logger logger = LoggerFactory.getLogger(${NAME}.class);
     
     
}

# 自定义方法注释模板

  • 默认方法注释快捷键:/**+Enter

  • Template text

**
 * 
 * 
$params$
 * @return $ruturns$
 * @Description 
 * @author claer bajins.com
 * @date $date$ $time$
 */
  • @param参数获取代码Groovy脚本
// 使用tab作为参数后缀间隔符
groovyScript("def result=''; def params=\"${_1}\".replaceAll('[\\\\[|\\\\]|\\\\s]', '').split(',').toList(); for(i = 0; i < params.size(); i++) {result+=' * @param ' + params[i]+'\\b'+ ((i < params.size() - 1) ? '\\n    ' : '')}; return result", methodParameters())
// 使用一个空格作为参数后缀间隔符,格式化时可以自动把所有参数对齐(推荐)
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参数获取代码Groovy脚本
// 如果有返回参数使用一个空格作为参数后缀间隔符
groovyScript("def result=\"${_1}\"; if(result == 'void'){return '';}else{return result+' ';}", methodReturnType())

使用时,直接在方法上输入/加上你的Abbreviation名字,再按Tab键即可获取方法上的参数

  • 示例

# 鼠标悬停查看方法注释

# 自动优化导包

  • FileSettingsGeneralAuto ImportPythonShow import popup

Add unambiguous imports on the fly 自动帮我们优化导入的包,比如自动去掉一些没有用到的包。

Optimize imports on the fly 自动帮我们导入需要用到的包。但是对于同名的包,需要手动Alt + Enter进行导入。

# 热部署策略

  • 顶部菜单Run->Edit Configurations->SpringBoot->目标项目->勾选Update classes and resources

# 自动编译

  • 同时按住Ctrl + Shift + Alt + /然后进入Registry,勾选自动编译并调整延时参数。

  • 打开顶部工具栏File->Settings->Default Settings->Build->Compiler 然后勾选Build project automatically

# 去掉SQLXML局部背景色

  • 1.快捷键ctrl + alt+ s打开Settings。找到Editor -> Inspections的配置页面,去掉SQL中No data sources configured(没有配置数据源) 选项 和 SQL dialect detection(SQL方言检测) 选项。

  • 2.去掉背景。找到Editor -> Color -> General的配置页面,选择Code -> Injected language fragment,去掉最右边的Background选项。

# 项目目录设置

# 错误解决

# idea无限indexing解决方法

tengj

# OutOfMemoryError

idea Exception in thread "http-apr-8080-exec-2" java.lang.OutOfMemoryError: PermGen space

  • Vm options中输入
-Xms2048m -Xmx2048m -XX:MaxPermSize=4096m -Drebel.spring_plugin=true -Drebel.spring_mvc_plugin=true -Drebel.hibernate_plugin=true

# 插件

  • Free Mybatis plugin

https://github.com/wuzhizhan/free-idea-mybatis

  • mybatis-plus

https://github.com/mustfun/mybatis-plus

  • MyBatisCodeHelper-Pro

MybatisCodeHelperPro试用key获取

  • .ignore

https://plugins.jetbrains.com/plugin/7495--ignore

生成各种ignore文件,一键创建git ignore文件的模板,免得自己去写

  • Maven Helper

https://plugins.jetbrains.com/plugin/7179-maven-helper

一键查看maven依赖,查看冲突的依赖,一键进行exclude依赖

  • GsonFormat

https://plugins.jetbrains.com/plugin/7654-gsonformat

google出的一键根据json文本生成java类,非常方便

  • FindBugs-IDEA

https://plugins.jetbrains.com/plugin/3847-findbugs-idea

检测代码中可能的bug及不规范的位置,检测的模式相比p3c更多,写完代码后检测下 避免低级bug,强烈建议用一下,一不小心就发现很多老代码的bug

  • Lombok plugin

https://plugins.jetbrains.com/plugin/6317-lombok-plugin

支持lombok的各种注解,从此不用写getter setter这些 可以把注解还原为原本的java代码,除此之外还有其他更多注解以减少代码

  • p3c

https://plugins.jetbrains.com/plugin/10046-alibaba-java-coding-guidelines

阿里巴巴出品的java代码规范插件,可以扫描整个项目 找到不规范的地方 并且大部分可以自动修复

  • VisualVM Launcher

https://plugins.jetbrains.com/plugin/7115-visualvm-launcher

运行java程序的时候启动visualvm,方便查看jvm的情况 比如堆内存大小的分配,某个对象占用了多大的内存,jvm调优必备工具

  • GenerateAllSetter

https://plugins.jetbrains.com/plugin/9360-generateallsetter

一键调用一个对象的所有set方法并且赋予默认值 在对象字段多的时候非常方便

  • Rainbow Brackets

https://plugins.jetbrains.com/plugin/10080-rainbow-brackets

彩虹颜色的括号,看着很舒服 敲代码效率变高

  • Translation

https://plugins.jetbrains.com/plugin/8579-translation

最好用的翻译插件,功能很强大,界面很漂亮

  • Markdown Navigator

https://github.com/vsch/idea-multimarkdown

带有GFM 的Markdown插件和匹配的预览样式。

# PyCharm

# Python Script生成文件头注释

预定义模板变量

  • File->Settings->Editor->File and Code Templates->Includes->File Header中添加
#!/usr/bin/env python
# -*- encoding: utf-8 -*-
#
# @Description: 
# @PreInstall: 
# @Author : ${USER}
# @File : ${NAME}.py
# @Version: 1.0.0
# @Time : ${DATE} ${TIME}
# @Project: ${PROJECT_NAME}
# @Package: ${PACKAGE_NAME}
# @Software: ${PRODUCT_NAME}


  • Python Script文件模板中引用:#parse("File Header")

  • 默认函数注释快捷键:"""+Enter

# 自动导包

  • FileSettingsGeneralAuto ImportPythonShow import popup

# GoLand

# Go File生成文件头注释

预定义模板变量

  • File->Settings->Editor->File and Code Templates->Includes->File Header中添加
/**
 * 
 * @Description: 
 * @Author: ${USER}
 * @File: ${NAME}.go
 * @Version: 1.0.0
 * @Time: ${DATE} ${TIME}
 * @Project: ${PROJECT_NAME}
 * @Package: ${PACKAGE_NAME}
 * @Software: ${PRODUCT_NAME}
 */


  • Go File文件模板中引用:#parse("File Header")

# WebStorm

# JavaScript File生成文件头注释

预定义模板变量

  • File->Settings->Editor->File and Code Templates->Includes->File Header中添加
/**
 * 
 * @Description: 
 * @Author: ${USER}
 * @File: ${NAME}.js
 * @Version: 1.0.0
 * @Time: ${DATE} ${TIME}
 * @Project: ${PROJECT_NAME}
 * @Package: ${PACKAGE_NAME}
 * @Software: ${PRODUCT_NAME}
 */


  • JavaScript File文件模板中引用:#parse("File Header")

  • 默认函数注释快捷键:/**+Enter