This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CCSTUDIO: CCS中如何设置formatter避免异常换行

Part Number: CCSTUDIO

在CCS中使用自带的formatter进行代码风格设置。

使用默认的ccs风格后发现会对一段比较长的函数进行不正常换行。如下所示:

    CanbMailBoxConfigure(CANMB_INV_CONFIG_REQUEST, CANID_INV_CONFIG_REQUEST,BitCANTxEnable,FrameStandrad);

可能变成下面这样的格式

CanbMailBoxConfigure(CANMB_INV_CHARGE_RESPONSE, CANID_INV_CHARGE_RESPONSE,
BitCANTxEnable,
                                      FrameStandrad);

因此希望在CCS风格基础上进行重新设计。

但是不知道造成上述情况的原因,因此无法修改。

还请了解的人不吝指教

  • 可否看一下您目前formatter中的示例,我将您的这一行代码拷贝到ccs中看了一下,没有出现异常换行,我这边也是使用的默认设置。

  • 您好!
    很感谢您的回复!
    CCS.xml
    <?xml version="1.0" encoding="UTF-8" standalone="no"?>
    <profiles version="1">
    <profile kind="CodeFormatterProfile" name="CCS" version="1">
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_exception_specification" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_for" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_brace_in_array_initializer" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_for" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.indent_statements_compare_to_body" value="true"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_colon_in_base_clause" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_array_initializer" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_switch" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.alignment_for_conditional_expression" value="2"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_colon_in_labeled_statement" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.indent_empty_lines" value="false"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_cast" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_prefix_operator" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments" value="true"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_closing_paren_in_cast" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_declaration" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_invocation" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.alignment_for_throws_clause_in_method_declaration" value="0"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_enum_declarations" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_binary_operator" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_semicolon" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.alignment_for_binary_expression" value="16"/>
    <setting id="org.eclipse.cdt.core.formatter.brace_position_for_method_declaration" value="next_line"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_semicolon_in_for" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.brace_position_for_array_initializer" value="end_of_line"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_method_declaration" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_method_declaration" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_braces_in_array_initializer" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.brace_position_for_switch" value="next_line"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_expression_list" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.keep_else_statement_on_same_line" value="false"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_base_clause" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_base_types" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.use_tabs_only_for_leading_indentations" value="false"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_method_invocation" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.keep_then_statement_on_same_line" value="false"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_new_line_at_end_of_file_if_missing" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.comment.line_up_line_comment_in_blocks_on_first_column" value="false"/>
    <setting id="org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_namespace_header" value="false"/>
    <setting id="org.eclipse.cdt.core.formatter.keep_empty_array_initializer_on_one_line" value="false"/>
    <setting id="org.eclipse.cdt.core.formatter.indent_access_specifier_extra_spaces" value="0"/>
    <setting id="org.eclipse.cdt.core.formatter.comment.never_indent_line_comments_on_first_column" value="true"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_else_in_if_statement" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_expression_list" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.brace_position_for_block" value="next_line"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_bracket" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.alignment_for_base_clause_in_type_declaration" value="83"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_parameters" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_throws" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.alignment_for_member_access" value="0"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_if" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.brace_position_for_namespace_declaration" value="next_line"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_block" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_for" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.alignment_for_parameters_in_method_declaration" value="18"/>
    <setting id="org.eclipse.cdt.core.formatter.lineSplit" value="80"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_default" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.number_of_empty_lines_to_preserve" value="1"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_brackets" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_angle_bracket_in_template_arguments" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_declaration_throws" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_bracket" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_arguments" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_arguments" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.alignment_for_compact_if" value="16"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_prefix_operator" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.alignment_for_declarator_list" value="16"/>
    <setting id="org.eclipse.cdt.core.formatter.alignment_for_expressions_in_array_initializer" value="16"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_declaration" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_while" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_between_empty_parens_in_exception_specification" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_cast" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.continuation_indentation_for_array_initializer" value="2"/>
    <setting id="org.eclipse.cdt.core.formatter.comment.min_distance_between_code_and_line_comment" value="1"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_bracket" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.alignment_for_constructor_initializer_list" value="0"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_case" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_switch" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_catch" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_exception_specification" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_brace_in_array_initializer" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_declarator_list" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_catch" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_angle_bracket_in_template_parameters" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_type_declaration" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_semicolon_in_for" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_if" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.brace_position_for_block_in_case" value="next_line"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_postfix_operator" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_parameters" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.compact_else_if" value="true"/>
    <setting id="org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_switch" value="false"/>
    <setting id="org.eclipse.cdt.core.formatter.alignment_for_overloaded_left_shift_chain" value="18"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_identifier_in_function_declaration" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_new_line_in_empty_block" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_declaration" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_declarator_list" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_labeled_statement" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.indent_statements_compare_to_block" value="true"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_brace_in_namespace_declaration" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.indent_access_specifier_compare_to_type_header" value="false"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_parameters" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_if" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.alignment_for_conditional_expression_chain" value="18"/>
    <setting id="org.eclipse.cdt.core.formatter.tabulation.char" value="space"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_new_line_after_template_declaration" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_colon_in_constructor_initializer_list" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_enum_declarations" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_catch_in_try_statement" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.brace_position_for_type_declaration" value="next_line"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_assignment_operator" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_binary_operator" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.keep_imple_if_on_one_line" value="false"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.continuation_indentation" value="2"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_new_line_before_while_in_do_statement" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.put_empty_statement_on_new_line" value="true"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_closing_brace_in_block" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.format_guardian_clause_on_one_line" value="false"/>
    <setting id="org.eclipse.cdt.core.formatter.indentation.size" value="4"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_parameters" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_switch" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.alignment_for_expression_list" value="0"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_method_invocation" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_colon_in_conditional" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_unary_operator" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_array_initializer" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_colon_in_case" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_base_types" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_assignment_operator" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.indent_breaks_compare_to_cases" value="true"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_array_initializer" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.indent_switchstatements_compare_to_cases" value="true"/>
    <setting id="org.eclipse.cdt.core.formatter.indent_declaration_compare_to_template_header" value="false"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_angle_bracket_in_template_arguments" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_opening_paren_in_catch" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.alignment_for_arguments_in_method_invocation" value="18"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_while" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_exception_specification" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_question_in_conditional" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_opening_paren_in_switch" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_unary_operator" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.join_wrapped_lines" value="true"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_colon_in_conditional" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_postfix_operator" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.alignment_for_assignment" value="16"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_while" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_comma_in_template_arguments" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_after_closing_angle_bracket_in_template_arguments" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_comma_in_template_parameters" value="do not insert"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_question_in_conditional" value="insert"/>
    <setting id="org.eclipse.cdt.core.formatter.indent_body_declarations_compare_to_access_specifier" value="true"/>
    <setting id="org.eclipse.cdt.core.formatter.alignment_for_enumerator_list" value="49"/>
    <setting id="org.eclipse.cdt.core.formatter.tabulation.size" value="space"/>
    <setting id="org.eclipse.cdt.core.formatter.insert_space_before_closing_paren_in_method_invocation" value="do not insert"/>
    </profile>
    </profiles>
    
    我使用的是ccs自带的format文件,附件里是我从系统里导出的CCS文件,请查收!难道是我无意中修改了系统中CCS format的格式设置?
    您可以尝试这两行代码:
       CanbMailBoxConfigure(CANMB_INV_CHARGE_RESPONSE, CANID_INV_CHARGE_RESPONSE, BitCANTxEnable,
                            FrameStandrad);
       CanbMailBoxConfigure(CANMB_INV_TELEMETRY_TEMP, CANID_INV_TELEMETRY_TEMP, BitCANTxEnable,
                            FrameStandrad);
    敬待您的回信!
  • 我是新建了一个空工程测试的,看一下截图。

  • 请问您在这个项目中再进行一次format,是否会导致FrameStandrad向前缩进?变成下面这样子?

    CanbMailBoxConfigure(CANMB_INV_TELEMETRY_TEMP, CANID_INV_TELEMETRY_TEMP, BitCANTxEnable,
    FrameStandrad);

  • 再进行一次format是什么意思?我只看到截图中的formatter设置。

  • CanbMailBoxConfigure(CANMB_INV_TELEMETRY_TEMP, CANID_INV_TELEMETRY_TEMP, BitCANTxEnable, FrameStandrad);

    在代码窗口进行上面截图的操作两次,第一次会导致长代码换行,变成两行,效果可能如您回复的一样

    CanbMailBoxConfigure(CANMB_INV_TELEMETRY_TEMP, CANID_INV_TELEMETRY_TEMP, BitCANTxEnable,
                                         FrameStandrad);

    ;执行第二次是否会让第二行代码如下面所示:

    CanbMailBoxConfigure(CANMB_INV_TELEMETRY_TEMP, CANID_INV_TELEMETRY_TEMP, BitCANTxEnable,
    FrameStandrad);

  • 我试了一下第一次会换行,第二次没有变化。

  • 哦,可能是我format文件修改出了问题,我将它恢复恢复为默认情况。辛苦了