登录  /  注册
首页 > 常见问题 > 正文

idea怎么格式化代码

青灯夜游
发布: 2023-03-15 15:56:37
原创
29288人浏览过

idea格式化代码的方法:1、直接使用快捷键“ctrl+alt+l”格式化代码。2、打开打开idea,依次点击“file”-“settings”-“plugins”,搜索并安装“eclipse code formatter”;然后导入配置文件“eclipse-codestyle.xml”;最后使用快捷键“ctrl+shift+alt+l”格式化代码。

idea怎么格式化代码

本教程操作环境:windows10系统、IDEA2020.1.3、Dell G3电脑。

IDEA 全称 IntelliJ IDEA,是java编程语言的集成开发环境。IntelliJ在业界被公认为最好的Java开发工具,尤其在智能代码助手、代码自动提示、重构、JavaEE支持、各类版本工具(git、svn等)、JUnit、CVS整合、代码分析、 创新的GUI设计等方面的功能可以说是超常的。IDEA是JetBrains公司的产品,这家公司总部位于捷克共和国的首都布拉格,开发人员以严谨著称的东欧程序员为主。它的旗舰版还支持HTML,CSS,PHP,MySQL,Python等。免费版只支持Java,Kotlin等少数语言。

idea格式化代码的方法

方法1:原生方法

在IDEA中,可以使用Ctrl+Alt+L快捷键格式化代码。

1.png

使用Ctrl+Alt+L快捷键格式化代码,这时代码格式会变得很工整。

2.png

方法2:利用插件

是否遇到过使用快捷键“Ctrl+Alt+L”后代码几乎没变化,格式化后的结果没有达到预期效果,不妨试试配置代码格式化模板。

一、idea格式化模板配置步骤

1、安装插件:EclipseCodeFormatter

阿里配置文件只是针对eclipse,所以导入配置文件之前需要先安装EclipseFormatter插件

打开idea编辑器:File->Settings->Plugins,搜索 eclipse code formatter

3.png

我这是已经安装好的页面

2、导入配置文件 eclipse-codestyle.xml

上面步骤操作完页面不要关,找到下面的Other Settings->Adapter eclipse code formatter路径,按照图片位置找到eclipse-codestyle.xml文件保存的位置,添加进去就行了(文件放文章后面

4.png

二、格式化代码只格式化我修改的代码不格式化未修改的代码

只格式化自己写的代码,不格式化版本仓库里面的代码,防止代码评审或者代码对比出现大量不一致的代码
快捷键:Ctrl+Shift+Alt+L

5.png

  • 在默认情况下,Scope 选项是 Whole file ,也就是格式化当前窗口的全部代码
  • Only changes uncommitted to VCS表示只格式化我修改的,不格式化我未修改的代码
  • 我们也可以设置在自动保存的时候触发代码格式化。 操作方法:File->Settings->Tools->Actions on Save 中进行设置。
    注意在勾选完Reformat code 之后后面的 Whole file 这里要改为 Changed lines

6.png

eclipse-codestyle.xml文件自取,记得一键三连哦0.0

<?xml  version="1.0" encoding="UTF-8" standalone="no"?><profiles>
    <profile>
        <!--可变参数的... Idea没有对应的配置项,强制insert-->
        <setting></setting>
        <!--枚举值之间 Idea没有对应的配置项,强制insert-->
        <setting></setting>

        <!--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></setting>
        <setting></setting>

        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <!--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></setting>
        <!--IDEA只有一个配置项SPACE_AFTER_COMMA,insert_space_after_comma*统一设置成insert-->
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <!--insert_space_after_comma end-->


        <!--org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=Java:SPACE_BEFORE_COLON-->
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <!--org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=Java:SPACE_AFTER_COLON-->
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <!--IDEA不支持配置,默认do not insert-->
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <!--这个在Eclipse也没有找到配置的地方-->
        <setting></setting>

        <!--org.eclipse.jdt.core.formatter.insert_space_before_semicolon=Java:SPACE_BEFORE_SEMICOLON
        程序导入的时候强制将SPACE_BEFORE_SEMICOLON设置为false
        -->
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <!--SPACE_AFTER_SEMICOLON=true-->
        <setting></setting>
        <setting></setting>

        <!--IDEA不支持配置,do not insert-->
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <!--IDEA不支持,使用默认-->
        <setting></setting>
        <setting></setting>

        <!--org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=Java:<Programmatic>-->
        <setting></setting>
        <setting></setting>

        <!--IDEA不支持配置,使用如下值,两者对应-->
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <setting></setting>
        <setting></setting>

        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <!--Java:SPACE_BEFORE_OPENING_ANGLE_BRACKET_IN_TYPE_PARAMETER-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=Java:SPACE_AFTER_CLOSING_ANGLE_BRACKET_IN_TYPE_ARGUMENT-->
        <setting></setting>

        <!--org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=Java:<Programmatic>-->
        <setting></setting>

        <!--IDEA使用了对应的配置:Java:SPACE_WITHIN_ARRAY_INITIALIZER_BRACES,但感觉不太好,IDEA默认不插入,Eclipse也使用不插入-->
        <setting></setting>

        <!--use default insert-->
        <setting></setting>

        <!--use default do not insert -->
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>


        <!--use default insert-->
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>


        <!--org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=Java:SPACE_BEFORE_SWITCH_LBRACE-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=Java:SPACE_BEFORE_CLASS_LBRACE-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=Java:<Programmatic>-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=Java:SPACE_BEFORE_ARRAY_INITIALIZER_LBRACE-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=Java:SPACE_BEFORE_METHOD_LBRACE-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=Java:SPACE_AFTER_QUEST-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=Java:SPACE_BEFORE_QUEST-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=Java:SPACE_BEFORE_ANOTATION_PARAMETER_LIST-->
        <setting></setting>

        <!--use default do not insert-->
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <setting></setting>
        <setting></setting>


        <!--下面两个对应IDEA中的一个配置Java:SPACE_AROUND_ASSIGNMENT_OPERATORS,使用insert-->
        <setting></setting>
        <setting></setting>

        <!--org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=Java:SPACE_BEFORE_CATCH_PARENTHESES-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=Java:SPACE_BEFORE_METHOD_CALL_PARENTHESES-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=Java:SPACE_BEFORE_TRY_PARENTHESES-->
        <setting></setting>

        <!--下面两个对应IDEA中的一个配置Java:SPACE_AROUND_UNARY_OPERATOR,使用do not insert-->
        <setting></setting>
        <setting></setting>

        <!--org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=Java:SPACE_BEFORE_IF_PARENTHESES-->
        <setting></setting>

        <!--org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=Java:SPACE_BEFORE_WHILE_PARENTHESES-->
        <setting></setting>

        <!--org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=Java:SPACE_AFTER_TYPE_CAST-->
        <setting></setting>

        <!--org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=Java:SPACE_BEFORE_METHOD_PARENTHESES-->
        <setting></setting>

        <!--org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=Java:SPACE_BEFORE_FOR_PARENTHESES-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=Java:SPACE_BEFORE_SYNCHRONIZED_PARENTHESES-->
        <setting></setting>

        <!--org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=Java:SPACE_BEFORE_SWITCH_PARENTHESES-->
        <setting></setting>

        <!--下面两个对应IDEA中的一个配置Java:SPACE_AROUND_LAMBDA_ARROW,使用insert-->
        <setting></setting>
        <setting></setting>
        <!--SPACE_WITHIN_EMPTY_ARRAY_INITIALIZER_BRACES-->
        <setting></setting>

        <!--Idea -> Wrapping And Braces -> Simple classes in one line -->
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <!--Idea -> Wrapping And Braces -> Simple method in one line -->
        <setting></setting>
        <!--因为Idea不支持配置,所以设置为 Idea默认值-->

        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <!--Idea可以通过Wrap Always实现 TODO-->
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <!--Idea -> Wrapping And Braces -> Simple block in one line -> do not select -->
        <setting></setting>

        <!--Idea -> Wrapping And Braces -> try statement -> catch.... (Java:CATCH_ON_NEW_LINE)-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=<Programmatic>-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=Java:ARRAY_INITIALIZER_RBRACE_ON_NEXT_LINE-->
        <setting></setting>
        <!--#org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=Java:ARRAY_INITIALIZER_LBRACE_ON_NEXT_LINE-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=Java:ELSE_ON_NEW_LINE-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=Java:WHILE_ON_NEW_LINE-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=Java:FINALLY_ON_NEW_LINE-->
        <setting></setting>

        <!--comment start-->
        <setting></setting>
        <!--ENABLE_JAVADOC_FORMATTING-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=<Programmatic>-->
        <setting></setting>
        <!--IDEA无对应设置,所以关闭对block comment的格式化 -->
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <!--org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=Java:KEEP_FIRST_COLUMN_COMMENT-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.use_on_off_tags=FORMATTER_TAGS_ENABLED-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.disabling_tag=FORMATTER_OFF_TAG-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.enabling_tag=FORMATTER_ON_TAG-->
        <setting></setting>

        <!--下面的没有IDEA对应项,在代码里面对IDEA中使用默认值即可,LINE_COMMENT_AT_FIRST_COLUMN BLOCK_COMMENT_AT_FIRST_COLUMN设置为false-->
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <setting></setting>


        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <setting></setting>
        <setting></setting>

        <setting></setting>
        <!--和IDEA保持一致,注释换行-->
        <setting></setting>
        <setting></setting>


        <!--comment end-->

        <!--org.eclipse.jdt.core.formatter.blank_lines_after_imports=Java:BLANK_LINES_AFTER_IMPORTS-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.blank_lines_before_imports=Java:BLANK_LINES_BEFORE_IMPORTS-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.blank_lines_after_package=Java:BLANK_LINES_AFTER_PACKAGE-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=Java:BLANK_LINES_AROUND_CLASS-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=Java:BLANK_LINES_BEFORE_METHOD_BODY-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=Java:<Programmatic>-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.blank_lines_before_field=Java:BLANK_LINES_AROUND_FIELD-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.blank_lines_before_method=Java:BLANK_LINES_AROUND_METHOD-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.blank_lines_before_package=Java:BLANK_LINES_BEFORE_PACKAGE-->
        <setting></setting>

        <!--下面IDEA没有对应设置,使用对应值即可-->
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <!--org.eclipse.jdt.core.formatter.indentation.size=Java:IndentOptions:INDENT_SIZE-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.continuation_indentation=Java:IndentOptions:<Programmatic>-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=Java:<Programmatic>-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=Java:IndentOptions:SMART_TABS-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=Java:INDENT_CASE_FROM_SWITCH-->
        <setting></setting>
        <!--KEEP_INDENTS_ON_EMPTY_LINES-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.tabulation.size=Java:IndentOptions:<Programmatic>-->
        <setting></setting>
        <!--Java:IndentOptions:<Programmatic>-->
        <setting></setting>


        <!--下面IDEA没有对应设置,使用对应值即可-->
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>


        <!--Java:<Programmatic>-->
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <!--下面没有对应的IDEA设置,Eclipse先使用对应值-->
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <setting></setting>


        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <!--IDEA默认配置在同一行,Eclipse使用对应值即可-->
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <!--Java:BINARY_OPERATION_SIGN_ON_NEXT_LINE-->
        <setting></setting>

        <!--ASSIGNMENT_WRAP 需要设置为 WRAP_AS_NEEDED  WRAP_AS_NEEDED . Add in jdt.core-3.12,it&#39;s not work in previous version -->
        <setting></setting>

        <!--IDEA无配置项,Eclipse使用对应值即可-->
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>

        <!--org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=Java:KEEP_CONTROL_STATEMENT_IN_ONE_LINE-->
        <setting></setting>
        <!--org.eclipse.jdt.core.formatter.compact_else_if=Java:SPECIAL_ELSE_IF_TREATMENT-->
        <setting></setting>
        <!--Java:ALIGN_GROUP_FIELD_DECLARATIONS-->
        <setting></setting>
        <!--Java:<Programmatic>-->
        <setting></setting>
        <setting></setting>

        <!--统一为end_of_lint,IDEA默认一致-->
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>
        <setting></setting>


        <!--        <setting id="org.eclipse.jdt.core.compiler.source" value="1.8"/>
                <setting id="org.eclipse.jdt.core.compiler.compliance" value="1.8"/>
                <setting id="org.eclipse.jdt.core.compiler.codegen.targetPlatform" value="1.8"/>
                        <setting id="org.eclipse.jdt.core.compiler.problem.enumIdentifier" value="error"/>
                                <setting id="org.eclipse.jdt.core.compiler.problem.assertIdentifier" value="error"/>
                                        <setting id="org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode" value="enabled"/>
                -->
        <!--Java:KEEP_SIMPLE_BLOCKS_IN_ONE_LINE-->
        <setting></setting>

        <!--Java:CLASS_BRACE_STYLE,统一使用end_of_line TODO-->
        <setting></setting>
        <setting></setting>

        <!--org.eclipse.jdt.core.formatter.lineSplit=RIGHT_MARGIN-->
        <setting></setting>
    </profile></profiles>
登录后复制

更多相关知识,请访问常见问题栏目!

以上就是idea怎么格式化代码的详细内容,更多请关注php中文网其它相关文章!

智能AI问答
PHP中文网智能助手能迅速回答你的编程问题,提供实时的代码和解决方案,帮助你解决各种难题。不仅如此,它还能提供编程资源和学习指导,帮助你快速提升编程技能。无论你是初学者还是专业人士,AI智能助手都能成为你的可靠助手,助力你在编程领域取得更大的成就。
来源:php中文网
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
作者最新文章
最新问题
关于CSS思维导图的课件在哪? 课件
凡人来自于2024-04-16 10:10:18
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号