Skip to content

Commit

Permalink
fix: bump ast-grep version and fix unicode error
Browse files Browse the repository at this point in the history
  • Loading branch information
HerringtonDarkholme committed Dec 18, 2023
1 parent 4269e67 commit f8c5b92
Show file tree
Hide file tree
Showing 3 changed files with 16 additions and 15 deletions.
12 changes: 6 additions & 6 deletions Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

6 changes: 3 additions & 3 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -28,9 +28,9 @@ console_error_panic_hook = { version = "0.1.7", optional = true }

once_cell = "1.19.0"
wee_alloc = { version = "0.4.5" }
ast-grep-core = { version = "0.15.0" }
ast-grep-config = { version = "0.15.0" }
ast-grep-language = { version = "0.15.0", default-features = false }
ast-grep-core = { version = "0.15.1" }
ast-grep-config = { version = "0.15.1" }
ast-grep-language = { version = "0.15.1", default-features = false }
web-tree-sitter-sg = "1.3.4"
tree-sitter = { version = "0.9.2", package = "tree-sitter-facade-sg" }
serde-wasm-bindgen = "0.6"
Expand Down
13 changes: 7 additions & 6 deletions src/lib.rs
Original file line number Diff line number Diff line change
Expand Up @@ -60,30 +60,31 @@ pub fn fix_errors(src: String, configs: Vec<JsValue>) -> Result<String, JsError>
rules.push(finder);
}
let combined = CombinedScan::new(rules.iter().collect());
let root = lang.ast_grep(&src);
let doc = WasmDoc::new(src.clone(), lang);
let root = AstGrep::doc(doc);
let sets = combined.find(&root);
let diffs = combined.diffs(&root, sets);
if diffs.is_empty() {
return Ok(src);
}
let mut start = 0;
let src = src.as_bytes();
let mut new_content = Vec::new();
let src: Vec<_> = src.chars().collect();
let mut new_content = Vec::<char>::new();
for (nm, idx) in diffs {
let range = nm.range();
if start > range.start {
continue;
}
let rule = combined.get_rule(idx);
let fixer = rule.fixer.as_ref().unwrap();
let edit = nm.make_edit(&rule.matcher, fixer);
let fixer = rule.get_fixer()?.expect("rule returned by diff must have fixer");
let edit = nm.make_edit(&rule.matcher, &fixer);
new_content.extend(&src[start..edit.position]);
new_content.extend(&edit.inserted_text);
start = edit.position + edit.deleted_length;
}
// add trailing statements
new_content.extend(&src[start..]);
Ok(String::from_utf8(new_content)?)
Ok(new_content.into_iter().collect())
}

fn convert_to_debug_node(n: Node) -> DumpNode {
Expand Down

0 comments on commit f8c5b92

Please sign in to comment.