IDEA 好用的插件分享

一、常用篇

1. CamelCase(大小写格式转换)


在这里插入图片描述

  • 功能:将名字转换成你想要的格式,例如(驼峰HelloWorld,下划线hello_world)
  • 快捷键:Alt + Shift + U
  • 设置
    在这里插入图片描述

2. Translation (翻译插件)


在这里插入图片描述

  • 功能:可以选定想要翻译的词语或句子,右键进行翻译。
  • 快捷键:Ctrl + Shift + Y

3. GitToolBox (git工具箱)


在这里插入图片描述

  • 功能:可以快速查看每一行代码的提交日志
  • 例子
    在这里插入图片描述

4. CodeGlance Pro(代码缩略图)


在这里插入图片描述

  • 功能:右侧会出现代码的缩略图,可以快速点击定位到大概位置。
    在这里插入图片描述

5. fittencode(代码补全)


在这里插入图片描述

  • 功能:可以根据上下文,来预测你接下来要写的代码,一键代码补全
  • 快捷键:tab
  • 例子
    在这里插入图片描述

6. Alibaba Java Coding Guidelines(代码规范检查)


在这里插入图片描述

  • 例子
    在这里插入图片描述

7. Adapter for Eclipse Code Formatter(代码格式化工具)


在这里插入图片描述

  • 功能:根据模板来格式化代码
  • 设置
    在这里插入图片描述
  • 备注:需要格外用到一个xml文件eclipse-codestyle.xml,大家自行创建。文件我放在文章的最后。

8. Vuesion Theme(主题风格,非常推荐)


在这里插入图片描述

  • 功能:特别好看简约大方的一个主题,清新悦目的感觉。

  • 例子
    在这里插入图片描述

二、其他插件

1. CheckStyle-IDEA (代码风格检查工具)


在这里插入图片描述

2. Json Parser (json格式化工具)


在这里插入图片描述

3. SonarLint(查找和修复代码)


在这里插入图片描述

4. TONGYI Lingma (AI助手)


在这里插入图片描述

三、附件

1. eclipse-codestyle.xml


文件内容如下:

<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<profiles version="12">
    <profile kind="CodeFormatterProfile" name="P3C-CodeStyle" version="13">
        <!--可变参数的... Idea没有对应的配置项,强制insert-->
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_ellipsis" value="insert"/>
        <!--枚举值之间 Idea没有对应的配置项,强制insert-->
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
 
        <!--org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=Java:SPACE_BEFORE_COMMA-->
        <!--org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=Java:SPACE_BEFORE_COMMA
        由于IDEA只有一个SPACE_BEFORE_COMMA选项,所以统一设置 insert_space_before_comma 为 do not insert
        -->
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters"
                 value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments"
                 value="do not insert"/>
 
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression"
                 value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits" value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws"
                 value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer"
                 value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation" value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters"
                 value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments" value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters"
                 value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces"
                 value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference"
                 value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations"
                 value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments"
                 value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations"
                 value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments" value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments"
                 value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws"
                 value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations"
                 value="do not insert"/>
        <!--insert_space_before_comma end-->
 
        <!--org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=Java:SPACE_AFTER_COMMA_IN_TYPE_ARGUMENTS-->
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments" value="insert"/>
        <!--IDEA只有一个配置项SPACE_AFTER_COMMA,insert_space_after_comma*统一设置成insert-->
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters"
                 value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments" value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations"
                 value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments"
                 value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter" value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits" value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference"
                 value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations"
                 value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces" value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments"
                 value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws"
                 value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression" value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters"
                 value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws"
                 value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments"
                 value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters" value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation" value="insert"/>
        <!--insert_space_after_comma end-->
 
 
        <!--org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=Java:SPACE_BEFORE_COLON-->
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert" value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for" value="insert"/>
 
        <!--org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=Java:SPACE_AFTER_COLON-->
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert" value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for" value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
 
        <!--IDEA不支持配置,默认do not insert-->
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement"
                 value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
        <!--这个在Eclipse也没有找到配置的地方-->
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case" value="do not insert"/>
 
        <!--org.eclipse.jdt.core.formatter.insert_space_before_semicolon=Java:SPACE_BEFORE_SEMICOLON
        程序导入的时候强制将SPACE_BEFORE_SEMICOLON设置为false
        -->
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources"
                 value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
 
        <!--SPACE_AFTER_SEMICOLON=true-->
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
        <setting id="org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_re
### 如何在 IntelliJ IDEA 中实现大小写转换 在 IntelliJ IDEA 中,可以通过开发自定义插件来实现选定文本的大小写转换功能。这种插件的核心目标是让用户能够通过简单操作(如菜单选项或快捷键),将所选文本快速切换为大写或小写形式。 以下是关于如何构建这样一个插件的关键点: #### 插件设计概述 为了实现这一功能,可以参考一个基本的 IntelliJ IDEA 插件开发流程[^1]。该插件的主要工作原理如下: - 创建一个新的 IntelliJ IDEA 插件项目。 - 定义动作类 (Action),用于处理用户的交互行为。 - 使用 `AnAction` 类及其方法 `actionPerformed` 来获取当前编辑器中的选定文本并执行相应的转换逻辑。 #### 功能实现细节 下面是一个简单的代码示例,展示如何编写一个将选定文本转换为大写或小写的插件: ```java import com.intellij.openapi.actionSystem.AnAction; import com.intellij.openapi.actionSystem.AnActionEvent; import com.intellij.openapi.editor.Document; import com.intellij.openapi.editor.Editor; public class TextCaseConverter extends AnAction { @Override public void actionPerformed(AnActionEvent e) { Editor editor = e.getRequiredData(Editor.DATA_KEY); Document document = editor.getDocument(); String selectedText = editor.getSelectionModel().getSelectedText(); if (selectedText != null && !selectedText.isEmpty()) { int startOffset = editor.getSelectionModel().getSelectionStart(); int endOffset = editor.getSelectionModel().getSelectionEnd(); // 转换为大写或小写 boolean toUpperCase = true; // 假设默认转换为大写 String convertedText = toUpperCase ? selectedText.toUpperCase() : selectedText.toLowerCase(); // 替换原始文本 document.replaceString(startOffset, endOffset, convertedText); // 移动光标位置以便继续编辑 editor.getCaretModel().moveToOffset(endOffset); } } @Override public void update(AnActionEvent e) { Editor editor = e.getData(Editor.DATA_KEY); e.getPresentation().setEnabled(editor != null && editor.getSelectionModel().hasSelection()); } } ``` 上述代码实现了以下功能: - 获取用户在编辑器中选择的文本。 - 将其转换为大写或小写形式。 - 更新文档内容以反映更改后的文本。 #### 快捷键绑定 除了手动触发外,还可以为该插件设置快捷键以提高效率。例如,在某些现有插件中已经提供了类似的快捷键支持,比如 `⇧ + ⌥ + U / Shift + Alt + U` 可用于变量名样式之间的快速转换[^2]。对于新开发的插件,可通过以下路径为其分配快捷键: - 打开 **File -> Settings -> Keymap**。 - 寻找已注册的动作名称,并指定新的键盘组合。 #### 已有解决方案 如果不想自行开发此类插件,则可考虑利用现有的第三方扩展程序完成相同需求。例如,“MyBatis Tools” 提供了丰富的增强特性,虽然主要针对数据库映射文件管理,但也可能间接满足部分场景下的字符串操作诉求[^3];而像 “CodeGPT” 则具备强大的智能化辅助能力,甚至可以根据自然语言指令生成特定格式化代码[^4]。 另外需要注意的是,有时我们希望调整系统的全局行为而非依赖额外组件——在这种情况下,只需进入相关配置页面即可禁用不必要的区分度校验机制[^5]。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

JAVA开发区

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值