diff --git a/CodeCompletion/CodeFormatter.cs b/CodeCompletion/CodeFormatter.cs index 06f36ad01..7497aa4d4 100644 --- a/CodeCompletion/CodeFormatter.cs +++ b/CodeCompletion/CodeFormatter.cs @@ -501,6 +501,11 @@ namespace CodeFormatters off += tab; } + private void IncOffset(int tab) + { + off += tab; + } + private void DecOffset() { off -= tab; @@ -508,6 +513,13 @@ namespace CodeFormatters off = 0; } + private void DecOffset(int tab) + { + off -= tab; + if (off < 0) + off = 0; + } + private bool NewLineNeeded(statement_list sl) { return true; @@ -661,7 +673,7 @@ namespace CodeFormatters || sn is foreach_stmt || sn is var_statement || sn is try_stmt || sn is goto_statement || sn is with_statement || sn is case_node || sn is function_header || sn is procedure_header || sn is constructor || sn is destructor || sn is type_declarations || sn is consts_definitions_list - || sn is label_definitions || sn is class_definition || sn is uses_list || sn is unit_name || sn is program_name || + || sn is label_definitions || sn is class_definition || sn is uses_list || sn is uses_closure || sn is unit_name || sn is program_name || sn is new_expr || sn is raise_stmt || sn is interface_node || sn is implementation_node || sn is lock_stmt || sn is loop_stmt || sn is simple_property || sn is read_accessor_name || sn is write_accessor_name || sn is formal_parameters || sn is bracket_expr || sn is record_const || sn is array_const || sn is exception_handler @@ -1405,21 +1417,16 @@ namespace CodeFormatters public override void visit(uses_list _uses_list) { - sb.Append("uses"); - IncOffset(); + //sb.Append("uses"); + IncOffset(tab + "uses".Length - 1); for (int i = 0; i < _uses_list.units.Count; i++) { - if (i == 0) - { - add_newline_before = true; - keyword_offset = "uses".Length; - } if (i > 0) add_space_after = true; visit_node(_uses_list.units[i]); } insert_newline_after_prev = true; - DecOffset(); + DecOffset(tab + "uses".Length - 1); } public override void visit(unit_module _unit_module) @@ -2838,12 +2845,9 @@ namespace CodeFormatters public override void visit(uses_closure uc) { - var i = 0; foreach (var ul in uc.listunitsections) { - if (i>0) - visit_node(ul); - i++; + visit_node(ul); } }