如何配置Uncrustify移除可空类型中问号前的空格?
如何修改Uncrustify配置移除可空类型问号前的空格
需要将以下代码:
private String ?user;
格式化为:
private String? user;
以下是当前的uncrustify.cfg配置:
# # My favorite format # newlines = LF # AUTO (default), CRLF, CR, or LF indent_with_tabs = 0 # 1=indent to level only, 2=indent with tabs input_tab_size = 8 # original tab size output_tab_size = 4 # new tab size indent_columns = output_tab_size # indent_label = 0 # pos: absolute col, neg: relative column indent_align_string = False # align broken strings indent_brace = 0 indent_class = true indent_namespace = true nl_start_of_file = remove # nl_start_of_file_min = 0 nl_end_of_file = force nl_end_of_file_min = 1 nl_max = 3 nl_before_block_comment = 2 nl_after_func_body = 2 nl_after_func_proto_group = 2 nl_assign_brace = add # "= {" vs "= \n {" nl_enum_brace = add # "enum {" vs "enum \n {" nl_union_brace = add # "union {" vs "union \n {" nl_struct_brace = add # "struct {" vs "struct \n {" nl_do_brace = add # "do {" vs "do \n {" nl_if_brace = add # "if () {" vs "if () \n {" nl_for_brace = add # "for () {" vs "for () \n {" nl_func_paren = remove nl_func_def_paren = remove nl_func_call_paren = remove nl_func_decl_start = remove nl_func_def_start = remove nl_func_def_start_multi_line = remove nl_func_decl_args = add nl_func_def_args = add nl_func_def_args_multi_line = false nl_func_decl_end = remove nl_func_def_end = remove nl_else_brace = add # "else {" vs "else \n {" nl_while_brace = add # "while () {" vs "while () \n {" nl_switch_brace = add # "switch () {" vs "switch () \n {" nl_var_def_blk_end_func_top = 1 nl_before_case = 1 nl_fcall_brace = add # "foo() {" vs "foo()\n{" nl_fdef_brace = add # "int foo() {" vs "int foo()\n{" nl_after_return = TRUE nl_brace_while = remove nl_brace_else = add nl_squeeze_ifdef = TRUE nl_brace_fparen = remove pos_bool = trail # BOOL ops on trailing end eat_blanks_before_close_brace = TRUE eat_blanks_after_open_brace = TRUE mod_paren_on_return = ignore # "return 1;" vs "return (1);" mod_full_brace_if = add # "if (a) a--;" vs "if (a) { a--; }" mod_full_brace_for = add # "for () a--;" vs "for () { a--; }" mod_full_brace_do = add # "do a--; while ();" vs "do { a--; } while ();" mod_full_brace_while = add # "while (a) a--;" vs "while (a) { a--; }" sp_before_byref = remove sp_before_semi = remove sp_cparen_oparen = remove # "if (a) {" vs "if (a){" sp_brace_fparen = remove sp_cond_colon = force sp_cond_question = ignore sp_balance_nested_parens = false # "(a + (b + c))" vs "(a + (b + c))" sp_paren_paren = remove # space between (( and )) sp_return_paren = force # "return (1);" vs "return(1);" sp_sizeof_paren = force # "sizeof (int)" vs "sizeof(int)" sp_before_sparen = force # "if (" vs "if(" sp_after_sparen = force # "if () {" vs "if (){" sp_after_cast = force # "(int) a" vs "(int)a" sp_inside_braces = force # "{ 1 }" vs "{1}" sp_inside_braces_struct = force # "{ 1 }" vs "{1}" sp_inside_braces_enum = force # "{ 1 }" vs "{1}" sp_inside_paren = remove sp_inside_fparen = remove sp_inside_sparen = remove sp_inside_for = force sp_inside_square = force sp_type_func = ignore sp_assign = force sp_arith = force sp_bool = force sp_compare = force sp_assign = force sp_after_comma = force sp_func_def_paren = remove # "int foo (){" vs "int foo(){" sp_func_call_paren = remove # "foo (" vs "foo(" sp_func_proto_paren = remove # "int foo ();" vs "int foo();" sp_func_class_paren = remove sp_before_angle = remove sp_after_angle = remove sp_inside_angle = remove sp_angle_shift = remove sp_sparen_brace = add sp_fparen_brace = add sp_after_ptr_star = remove sp_before_ptr_star = force sp_between_ptr_star = remove sp_return = force align_with_tabs = FALSE # use tabs to align align_on_tabstop = FALSE # align on tabstops align_enum_equ_span = 4 align_nl_cont = TRUE align_var_def_span = 1 align_var_def_thresh = 12 align_var_def_inline = TRUE align_var_def_star = TRUE align_var_def_colon = TRUE align_assign_span = 1 align_assign_thresh = 12 align_struct_init_span = 3 align_var_struct_span = 99 align_right_cmt_span = 3 align_pp_define_span = 3 align_pp_define_gap = 4 align_number_right = TRUE align_typedef_span = 5 align_typedef_gap = 3 cmt_star_cont = TRUE # # Line Splitting options # code_width 100 # Unsigned Number # Try to limit code width to N number of columns ls_for_split_full True # { False, True } # Whether to fully split long 'for' statements at semi-colons. ls_func_split_full True # { False, True } # Whether to fully split long function protos/calls at commas. ls_code_width True # { False, True } # Whether to split lines as close to code_width as possible and ignore some groupings.
修改方案
在配置文件的空格控制区域(比如和sp_before_byref、sp_before_semi等参数同位置)添加以下配置项:
sp_before_qmark = remove
这个参数专门控制问号(?)前面的空格,设置为remove会强制移除问号前的所有空格,恰好满足将String ?user转为String? user的需求。
添加后重新运行Uncrustify即可生效。
内容的提问来源于stack exchange,提问作者NetHawk
相关产品推荐
相关产品推荐

