No One-Size-Fits-All: Adaptive Code Editing with Feature-Based Strategy Selection
Large language models have shown strong potential in automating code editing (CE) tasks, yet most existing systems rely on a fixed CE strategy (i.e., one-step, search-replace, and plan-apply) across diverse scenarios. In practice, CE tasks vary widely in code context, edit locality, and semantic complexity, causing no single strategy to perform consistently well. Moreover, systematic studies on the relationship between strategies and CE tasks remain scarce, limiting further optimization of LLM-based code editing strategies. To address this gap, we construct CEBench, comprising 500 real-world CE tasks curated from SWE-bench. Then we compare three representative CE strategies (one-step, search-replace, plan-apply). Our study reveals two key findings: (1) each strategy exhibits distinct advantages for specific CE tasks, with no universal optimality; (2) strategy effectiveness is significantly influenced by four core task features: \emph{total lines of code}, \emph{modification type}, \emph{modification scope}, and \emph{task type}. Motivated by these findings, we propose ACE, an adaptive code editing framework that dynamically selects optimal CE strategies based on task features. Unlike classifier-based or instruction-prompting approaches, Ace employs a fine-tuned LLM that learns feature-strategy mappings from empirical data to recommend strategies with interpretable rationales. Extensive experiments on our CEBench-verified show that ACE outperforms state-of-the-art baselines: it boosts Pass@1 by 15.2% while reducing token consumption by 26.3% compared to the best baseline (AutoCodeRover). Our strategy selector achieves 73.1% selection accuracy with 70.4% rationale accuracy (Cohen’s Kappa=0.802), providing transparent and trustworthy decision-making for developers.