A primitive for programatically editing files using [syn].
syn is the de-facto standard for parsing Rust. Its syntax tree is easy to
use, but it is lossy - if you parse a file, edit it with syn, and unparse
it, you'll lose all your comments and spacing (for example).
Rust Analyzer's syntax crate has a lossless syntax tree, which powers IDE assists, but it's far more difficult to use.
[Editor] allows you to use syn's syntax tree to write your Structured
Search and Replace tools, or IDE assists.
let source_code = "const NUM: usize = 1;"; // get the source text
// create an AST and a helper struct from the same source code
let = .unwrap;
let edited = editor
.append
.replace
.finish;
assert_eq!;
See the examples for a more in-depth case using a syn::visit::Visitor