Replace the comment preservation workaround (comment_map type, separate_comments, reinterleave, strip_interior_comments, extract_fragment_comments, inject_comments — ~170 lines) with CST-based editing (~80 lines). write_edit_cst: compares old AST vs new AST per node. Unchanged nodes keep original source verbatim. Changed nodes are pretty-printed with original leading trivia preserved. New nodes (insertions) get minimal formatting. parse_file_cst: returns (AST tree, CST file). AST goes to tree-tools, CST is used for write-back. extract_cst_comments / inject_cst_comments: read comment trivia from CST nodes for summarise/read_tree display. Net: -39 lines. 24/24 CST round-trip tests, 2583/2583 evaluator tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
125 KiB
125 KiB