Intellj Idea 插件推荐

写在最前面的话:

插件仁者见仁智者见智,适合的才是最好的。
还有,开启过多插件时,idea加载会慢,请合理控制数量。

现在idea插件的帖子已经很多了,这里主要指个路。

本文模式为【给出介绍idea插件的网址,然后对该网址中的部分插件进行评价】。
注:原网址包含,而本文未出现的插件,原因大多是笔者没有用过,故不做评论;也有部分插件没有介绍的必要(比如主题美化插件Material Theme UI)

程序员常用工具总结

Alibaba Java Coding Guidelines

必装。阿里代码规范不解释。

Codota

推荐。加强智能代码提示,可以搜索某方法的使用样例(点击方法名,然后ctrl+shift+o)。

Auto filling Java call arguments

可装。自动拷贝同名参数到调用的方法中,节约时间。

GenerateO2O、GenerateAllSetter Lombok

他推荐的是生成,而Lombok一个@Data注解,直接解决所有的get、set、toString等等。具体请看官方样例,看下面的样例也可以,我挑选了两个有代表性的,@EqualsAndHashCode和@Data。

【@EqualsAndHashCode注解——使用Lombok的代码】

@EqualsAndHashCode(callSuper=true,exclude={"address","city","state","zip"})
public class Person extends SentientBeing {
    enum Gender { Male, Female }
 
    @NonNull private String name;
    @NonNull private Gender gender;
 
    private String ssn;
    private String address;
    private String city;
    private String state;
    private String zip;
}

【@EqualsAndHashCode注解——等价的代码】

public class Person extends SentientBeing {
    enum Gender {
        /*public static final*/ Male /* = new Gender() */,
        /*public static final*/ Female /* = new Gender() */;
    }
    @NonNull
    private String name;
    @NonNull
    private Gender gender;
    private String ssn;
    private String address;
    private String city;
    private String state;
    private String zip;
 
    @java.lang.Override
    public boolean equals(final java.lang.Object o) {
        if (o == this) return true;
        if (o == null) return false;
        if (o.getClass() != this.getClass()) return false;
        if (!super.equals(o)) return false;
        final Person other = (Person)o;
        if (this.name == null ? other.name != null : !this.name.equals(other.name)) return false;
        if (this.gender == null ? other.gender != null : !this.gender.equals(other.gender)) return false;
        if (this.ssn == null ? other.ssn != null : !this.ssn.equals(other.ssn)) return false;
        return true;
    }
 
    @java.lang.Override
    public int hashCode() {
        final int PRIME = 31;
        int result = 1;
        result = result * PRIME + super.hashCode();
        result = result * PRIME + (this.name == null ? 0 : this.name.hashCode());
        result = result * PRIME + (this.gender == null ? 0 : this.gender.hashCode());
        result = result * PRIME + (this.ssn == null ? 0 : this.ssn.hashCode());
        return result;
    }
}

【@Data注解——使用Lombok的代码】

@Data(staticConstructor="of")
public class Company {
    private final Person founder;
    private String name;
    private List<Person> employees;
}

【@Data注解——等价的代码】

public class Company {
    private final Person founder;
    private String name;
    private List<Person> employees;
 
    private Company(final Person founder) {
        this.founder = founder;
    }
 
    public static Company of(final Person founder) {
        return new Company(founder);
    }
 
    public Person getFounder() {
        return founder;
    }
 
    public String getName() {
        return name;
    }
 
    public void setName(final String name) {
        this.name = name;
    }
 
    public List<Person> getEmployees() {
        return employees;
    }
 
    public void setEmployees(final List<Person> employees) {
        this.employees = employees;
    }
 
    @java.lang.Override
    public boolean equals(final java.lang.Object o) {
        if (o == this) return true;
        if (o == null) return false;
        if (o.getClass() != this.getClass()) return false;
        final Company other = (Company)o;
        if (this.founder == null ? other.founder != null : !this.founder.equals(other.founder)) return false;
        if (this.name == null ? other.name != null : !this.name.equals(other.name)) return false;
        if (this.employees == null ? other.employees != null : !this.employees.equals(other.employees)) return false;
        return true;
    }
 
    @java.lang.Override
    public int hashCode() {
        final int PRIME = 31;
        int result = 1;
        result = result * PRIME + (this.founder == null ? 0 : this.founder.hashCode());
        result = result * PRIME + (this.name == null ? 0 : this.name.hashCode());
        result = result * PRIME + (this.employees == null ? 0 : this.employees.hashCode());
        return result;
    }
 
    @java.lang.Override
    public java.lang.String toString() {
        return "Company(founder=" + founder + ", name=" + name + ", employees=" + employees + ")";
    }
}

毋庸置疑,Lombok非常强大。但是也有缺点,也有人不推荐。请移步Lombok介绍、使用方法和总结。该文章详细讲述了Lombok,且评论区的意见两极分化挺严重的(笑),有参考价值。

个人比较推荐该插件,毕竟代码简洁了许多。还是写在最开始的那句话,仁者见仁智者见智,你觉得好就用,觉得不好就不用,没必要批判另一方。

Rainbow Brackets

必装。如果只是单纯地“彩虹括号”功能,那也许没什么。但是它除了配对括号相同颜色这个功能,还实现了选中区域代码高亮,这就很有用了。

ctrl+鼠标右击 可以将指定区域高亮。
alt+鼠标右击可以将其他区域变暗。

以上都在Rainbow Brackets的github有动图展示。

Maven Helper

必装。解决依赖问题。

SequenceDiagram

必装。看别人代码没有这个能行???

JRebel

推荐。热更新,用SpringBoot的话一定要装这个。

使用方法参照如下几篇文章。
安装流程:Intellij热部署插件JRebel
破解,生成GUID:JRebel 破解最简单的使用
项目部署:Idea+JRebel远程热部署Spring Boot项目

Translate Translation

必装。翻译文档,因为文档前面有 * ,所以翻译的时候很烦。右击,选择Translate Documentation即可翻译Java Doc。Translate和Translation都具有该功能。

而Translate主要是输入框太小了,不方便。使用Translation的话,ctrl+shift+o呼出翻译框,输进去以后右边会自动显示翻译。中文会自动翻译英文,英文自动翻译中文,很方便。

Free Mybatis Plugin

可装。Mapper 接口与 xml 的相互跳转, Mybatis Generator 功能等。

IntelliJ Idea 常用11款插件(提高开发效率),附优秀主题插件

Mybatis Log Plugin

推荐。直接得到经过处理(即将“?”替换为具体的值)的完整sql语句。
原文下面有破解链接

Grep Console

可装。可以设置不同级别log的字体颜色和背景色。

CodeGlance

必装。代码缩略图什么的都无所谓,主要是拖动方便(本末倒置

aiXcode

可装。但是代码格式化其实有很多了,它跟codota二选一就行,还能加快启动速度。
个人还是推荐codota。
因为idea本身智能推荐就已经很强了,codota用的很好,而aiXcode的智能提示感觉有些摸不到头脑。
以上仅代表个人观点,自己下载下来试试看就知道了。

未完待续。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值