fix: only export tree_sitter

This commit is contained in:
HerringtonDarkholme
2025-05-03 18:16:33 -04:00
committed by Herrington Darkholme
parent f23223d640
commit 97754e34ea
47 changed files with 80 additions and 70 deletions
+2 -1
View File
@@ -1,5 +1,6 @@
use ast_grep_config::{from_yaml_string, RuleConfig};
use ast_grep_core::{AstGrep, LanguageExt, Matcher, Pattern, StrDoc};
use ast_grep_core::tree_sitter::{LanguageExt, StrDoc};
use ast_grep_core::{AstGrep, Matcher, Pattern};
use ast_grep_language::SupportLang;
use criterion::{black_box, criterion_group, criterion_main, Criterion};
use std::env::current_dir;
+4 -1
View File
@@ -1,7 +1,10 @@
use super::SgLang;
use crate::utils::ErrorContext as EC;
use ast_grep_config::{DeserializeEnv, RuleCore, SerializableRuleCore};
use ast_grep_core::{tree_sitter::TSRange, Doc, LanguageExt, Node, StrDoc};
use ast_grep_core::{
tree_sitter::{LanguageExt, StrDoc, TSRange},
Doc, Node,
};
use anyhow::{Context, Result};
use serde::{Deserialize, Serialize};
+2 -2
View File
@@ -6,8 +6,8 @@ use crate::utils::ErrorContext as EC;
use anyhow::{Context, Result};
use ast_grep_core::matcher::{Pattern, PatternBuilder, PatternError};
use ast_grep_core::{
tree_sitter::{TSLanguage, TSRange},
Node, StrDoc,
tree_sitter::{StrDoc, TSLanguage, TSRange},
Node,
};
use ast_grep_dynamic::DynamicLang;
use ast_grep_language::{Language, LanguageExt, SupportLang};
@@ -1,5 +1,5 @@
use super::NodeMatch;
use ast_grep_core::DisplayContext;
use ast_grep_core::tree_sitter::DisplayContext;
/// merging overlapping/adjacent matches
/// adjacent matches: matches that starts or ends on the same line
+2 -2
View File
@@ -344,8 +344,8 @@ fn open_in_editor(path: &Path, start_line: usize) -> Result<()> {
mod test {
use super::*;
use ast_grep_config::{from_yaml_string, Fixer, GlobalRules};
use ast_grep_core::traversal::Visitor;
use ast_grep_core::{AstGrep, Matcher, StrDoc};
use ast_grep_core::tree_sitter::{StrDoc, Visitor};
use ast_grep_core::{AstGrep, Matcher};
use ast_grep_language::SupportLang;
fn make_rule(rule: &str) -> RuleConfig<SgLang> {
+1 -1
View File
@@ -1,6 +1,6 @@
use crate::lang::SgLang;
use ast_grep_config::{RuleConfig, Severity};
use ast_grep_core::{meta_var::MetaVariable, Node as SgNode, StrDoc};
use ast_grep_core::{meta_var::MetaVariable, tree_sitter::StrDoc, Node as SgNode};
type Node<'a, L> = SgNode<'a, StrDoc<L>>;
+1 -1
View File
@@ -5,7 +5,7 @@ mod json_print;
use crate::lang::SgLang;
use ast_grep_config::{Fixer, RuleConfig};
use ast_grep_core::{Matcher, NodeMatch as SgNodeMatch, StrDoc};
use ast_grep_core::{tree_sitter::StrDoc, Matcher, NodeMatch as SgNodeMatch};
use anyhow::Result;
use clap::ValueEnum;
+2 -2
View File
@@ -2,7 +2,7 @@ use std::path::{Path, PathBuf};
use anyhow::{Context, Result};
use ast_grep_config::{from_yaml_string, CombinedScan, RuleCollection, RuleConfig, Severity};
use ast_grep_core::{NodeMatch, StrDoc};
use ast_grep_core::{tree_sitter::StrDoc, NodeMatch};
use ast_grep_language::SupportLang;
use clap::Args;
use ignore::WalkParallel;
@@ -269,7 +269,7 @@ impl StdInWorker for ScanStdin {
src: String,
processor: &P::Processor,
) -> Result<Vec<P::Processed>> {
use ast_grep_core::LanguageExt;
use ast_grep_core::tree_sitter::LanguageExt;
let lang = self.rules[0].language;
let combined = CombinedScan::new(self.rules.iter().collect());
let grep = lang.ast_grep(src);
+1 -1
View File
@@ -28,7 +28,7 @@ use smallvec::{smallvec, SmallVec};
use ast_grep_config::RuleCollection;
use ast_grep_core::Pattern;
use ast_grep_core::{Matcher, StrDoc};
use ast_grep_core::{tree_sitter::StrDoc, Matcher};
use ast_grep_language::{Language, LanguageExt};
use std::fs::read_to_string;
+1 -1
View File
@@ -9,7 +9,7 @@ use crate::lang::SgLang;
use crate::utils::ErrorContext;
use anyhow::{anyhow, Result};
use ast_grep_config::RuleCollection;
use ast_grep_core::{Node as SgNode, StrDoc};
use ast_grep_core::{tree_sitter::StrDoc, Node as SgNode};
use clap::Args;
use regex::Regex;
use serde_yaml::to_string;
+4 -1
View File
@@ -1,7 +1,10 @@
use crate::lang::SgLang;
use anyhow::{anyhow, Result};
use ast_grep_config::RuleConfig;
use ast_grep_core::{LanguageExt, NodeMatch, StrDoc};
use ast_grep_core::{
tree_sitter::{LanguageExt, StrDoc},
NodeMatch,
};
use super::{CaseResult, Node};
use serde::{Deserialize, Serialize, Serializer};
+1 -1
View File
@@ -266,7 +266,7 @@ mod test {
use crate::from_str;
use crate::test::TypeScript;
use crate::SerializableRuleConfig;
use ast_grep_core::LanguageExt;
use ast_grep_core::tree_sitter::LanguageExt;
fn create_rule() -> RuleConfig<TypeScript> {
let rule: SerializableRuleConfig<TypeScript> = from_str(
+1 -1
View File
@@ -188,7 +188,7 @@ mod test {
use crate::from_str;
use crate::maybe::Maybe;
use crate::test::TypeScript;
use ast_grep_core::LanguageExt;
use ast_grep_core::tree_sitter::LanguageExt;
#[test]
fn test_parse() {
+2 -3
View File
@@ -43,9 +43,8 @@ pub fn from_yaml_string<'a, L: Language + Deserialize<'a>>(
mod test {
use super::*;
use ast_grep_core::matcher::{Pattern, PatternBuilder, PatternError};
use ast_grep_core::tree_sitter::TSLanguage;
use ast_grep_core::StrDoc;
use ast_grep_core::{Language, LanguageExt};
use ast_grep_core::tree_sitter::{LanguageExt, StrDoc, TSLanguage};
use ast_grep_core::Language;
use std::path::Path;
#[derive(Clone, Deserialize, PartialEq, Eq)]
+1 -1
View File
@@ -214,7 +214,7 @@ mod test {
use crate::test::TypeScript;
use crate::{from_str, Rule};
use anyhow::Result;
use ast_grep_core::LanguageExt;
use ast_grep_core::tree_sitter::LanguageExt;
use ast_grep_core::Matcher;
fn get_dependent_utils() -> Result<(Rule, DeserializeEnv<TypeScript>)> {
+1 -1
View File
@@ -489,7 +489,7 @@ mod test {
use super::*;
use crate::from_str;
use crate::test::TypeScript;
use ast_grep_core::LanguageExt;
use ast_grep_core::tree_sitter::LanguageExt;
use PatternStyle::*;
#[test]
+1 -1
View File
@@ -267,7 +267,7 @@ mod test {
use crate::test::TypeScript as TS;
use ast_grep_core::matcher::RegexMatcher;
use ast_grep_core::meta_var::MetaVarEnv;
use ast_grep_core::LanguageExt;
use ast_grep_core::tree_sitter::LanguageExt;
#[test]
fn test_positional() {
+1 -1
View File
@@ -97,7 +97,7 @@ mod test {
use super::*;
use crate::test::TypeScript as TS;
use ast_grep_core::matcher::MatcherExt;
use ast_grep_core::LanguageExt;
use ast_grep_core::tree_sitter::LanguageExt;
#[test]
fn test_invalid_range() {
+1 -1
View File
@@ -271,7 +271,7 @@ mod test {
use ast_grep_core::matcher::KindMatcher;
use ast_grep_core::ops as o;
use ast_grep_core::Pattern;
use ast_grep_core::{Language, LanguageExt};
use ast_grep_core::{tree_sitter::LanguageExt, Language};
fn find_rule<M: Matcher>(src: &str, matcher: M) -> Option<String> {
let grep = TS::Tsx.ast_grep(src);
+2 -1
View File
@@ -7,7 +7,8 @@ use crate::rule_core::{RuleCore, RuleCoreError, SerializableRuleCore};
use ast_grep_core::language::Language;
use ast_grep_core::replacer::Replacer;
use ast_grep_core::{LanguageExt, Matcher, NodeMatch, StrDoc};
use ast_grep_core::tree_sitter::{LanguageExt, StrDoc};
use ast_grep_core::{Matcher, NodeMatch};
use schemars::{gen::SchemaGenerator, schema::Schema, JsonSchema};
use serde::{Deserialize, Serialize};
+1 -1
View File
@@ -279,7 +279,7 @@ mod test {
use crate::rule::referent_rule::{ReferentRule, ReferentRuleError};
use crate::test::TypeScript;
use ast_grep_core::matcher::{Pattern, RegexMatcher};
use ast_grep_core::LanguageExt;
use ast_grep_core::tree_sitter::LanguageExt;
fn get_matcher(src: &str) -> RResult<RuleCore> {
let env = DeserializeEnv::new(TypeScript::Tsx);
+1 -1
View File
@@ -83,7 +83,7 @@ mod test {
use super::*;
use crate::from_str;
use crate::test::TypeScript;
use ast_grep_core::LanguageExt;
use ast_grep_core::tree_sitter::LanguageExt;
#[test]
fn test_single_cyclic_transform() {
+1 -1
View File
@@ -342,7 +342,7 @@ fix: $D
rewrite: Rewrite<String>,
reg: RuleRegistration,
) -> Option<String> {
use ast_grep_core::LanguageExt;
use ast_grep_core::tree_sitter::LanguageExt;
let grep = TypeScript::Tsx.ast_grep(src);
let root = grep.root();
let mut nm = root.find(pat).expect("should find");
@@ -207,7 +207,7 @@ mod test {
use super::*;
use crate::test::TypeScript;
use crate::DeserializeEnv;
use ast_grep_core::LanguageExt;
use ast_grep_core::tree_sitter::LanguageExt;
use serde_yaml::with::singleton_map_recursive;
use std::collections::HashMap;
+2 -6
View File
@@ -12,11 +12,10 @@ pub mod meta_var;
pub mod ops;
pub mod replacer;
pub mod source;
pub mod traversal;
pub mod tree_sitter;
#[doc(hidden)]
pub mod pinned;
pub mod tree_sitter;
mod match_tree;
mod node;
@@ -26,10 +25,6 @@ pub use match_tree::MatchStrictness;
pub use matcher::{Matcher, NodeMatch, Pattern, PatternError};
pub use node::{Node, Position};
pub use source::Doc;
pub use tree_sitter::{LanguageExt, StrDoc};
#[doc(hidden)]
pub use tree_sitter::DisplayContext;
use node::Root;
@@ -38,6 +33,7 @@ pub type AstGrep<D> = Root<D>;
#[cfg(test)]
mod test {
use super::*;
use crate::tree_sitter::LanguageExt;
use language::Tsx;
use ops::Op;
+2 -2
View File
@@ -148,8 +148,8 @@ mod test {
use super::*;
use crate::language::Tsx;
use crate::meta_var::MetaVarEnv;
use crate::Node;
use crate::{Root, StrDoc};
use crate::tree_sitter::StrDoc;
use crate::{Node, Root};
use std::collections::HashMap;
fn find_node_recursive<'tree>(
+1 -1
View File
@@ -99,7 +99,7 @@ mod test {
use super::*;
use crate::language::Tsx;
use crate::matcher::MatcherExt;
use crate::{Root, StrDoc};
use crate::{tree_sitter::StrDoc, Root};
fn pattern_node(s: &str) -> Root<StrDoc<Tsx>> {
Root::str(s, Tsx)
+1 -1
View File
@@ -99,7 +99,7 @@ impl<'tree, D: Doc> Borrow<Node<'tree, D>> for NodeMatch<'tree, D> {
mod test {
use super::*;
use crate::language::Tsx;
use crate::{LanguageExt, StrDoc};
use crate::tree_sitter::{LanguageExt, StrDoc};
fn use_node<L: LanguageExt>(n: &Node<StrDoc<L>>) -> String {
n.text().to_string()
+1 -1
View File
@@ -347,7 +347,7 @@ mod test {
use crate::language::Tsx;
use crate::matcher::MatcherExt;
use crate::meta_var::MetaVarEnv;
use crate::StrDoc;
use crate::tree_sitter::StrDoc;
use std::collections::HashMap;
fn pattern_node(s: &str) -> Root<StrDoc<Tsx>> {
+1 -1
View File
@@ -302,7 +302,7 @@ impl<'tree, D: Doc> From<MetaVarEnv<'tree, D>> for HashMap<String, String> {
mod test {
use super::*;
use crate::language::Tsx;
use crate::LanguageExt;
use crate::tree_sitter::LanguageExt;
use crate::Pattern;
fn extract_var(s: &str) -> Option<MetaVariable> {
+2 -2
View File
@@ -381,8 +381,8 @@ impl<D: Doc> Node<'_, D> {
#[cfg(test)]
mod test {
use crate::language::Tsx;
use crate::{Language, LanguageExt};
use crate::language::{Language, Tsx};
use crate::tree_sitter::LanguageExt;
#[test]
fn test_is_leaf() {
let root = Tsx.ast_grep("let a = 123");
+1 -1
View File
@@ -118,7 +118,7 @@ mod test {
use super::*;
use crate::language::Tsx;
use crate::node::Root;
use crate::StrDoc;
use crate::tree_sitter::StrDoc;
fn return_from_func() -> PinnedNodeData<StrDoc<Tsx>, Node<'static, StrDoc<Tsx>>> {
let root = Root::str("let a = 123", Tsx);
+1 -1
View File
@@ -96,7 +96,7 @@ fn get_meta_var_replacement<D: Doc>(
mod test {
use crate::language::Tsx;
use crate::meta_var::MetaVarEnv;
use crate::{replacer::Replacer, LanguageExt, NodeMatch, Root};
use crate::{replacer::Replacer, tree_sitter::LanguageExt, NodeMatch, Root};
use std::collections::HashMap;
fn test_pattern_replace(replacer: &str, vars: &[(&str, &str)], expected: &str) {
+1 -1
View File
@@ -160,7 +160,7 @@ mod test {
use crate::language::Tsx;
use crate::matcher::NodeMatch;
use crate::meta_var::{MetaVarEnv, MetaVariable};
use crate::LanguageExt;
use crate::tree_sitter::LanguageExt;
use crate::Pattern;
use std::collections::HashMap;
@@ -1,12 +1,14 @@
mod traversal;
use crate::node::Root;
use crate::replacer::Replacer;
use crate::source::{Content, Doc, Edit, SgNode};
use crate::traversal::{TsPre, Visitor};
use crate::{node::KindId, Language, Position};
use crate::{AstGrep, Matcher};
use std::borrow::Cow;
use std::collections::HashMap;
use thiserror::Error;
pub use traversal::{TsPre, Visitor};
pub use tree_sitter::Language as TSLanguage;
use tree_sitter::{InputEdit, LanguageError, Node, Parser, ParserError, Point, Tree};
pub use tree_sitter::{Point as TSPoint, Range as TSRange};
@@ -18,8 +18,10 @@
//! It is recommended to use traversal instead of tree recursion to avoid stack overflow and memory overhead.
//! Level order is also included for completeness and should be used sparingly.
use super::StrDoc;
use crate::matcher::{Matcher, MatcherExt};
use crate::{Doc, LanguageExt, Node, NodeMatch, Root, StrDoc};
use crate::tree_sitter::LanguageExt;
use crate::{Doc, Node, NodeMatch, Root};
use tree_sitter as ts;
@@ -410,7 +412,6 @@ impl<'tree, L: LanguageExt> Iterator for Level<'tree, L> {
mod test {
use super::*;
use crate::language::Tsx;
use crate::StrDoc;
use std::ops::Range;
// recursive pre order as baseline
+2 -2
View File
@@ -1,5 +1,5 @@
use ast_grep_core::tree_sitter::TSLanguage;
use ast_grep_core::{Language, LanguageExt, StrDoc};
use ast_grep_core::tree_sitter::{LanguageExt, StrDoc, TSLanguage};
use ast_grep_core::Language;
use ast_grep_core::matcher::{Pattern, PatternBuilder, PatternError};
use ignore::types::{Types, TypesBuilder};
+2 -2
View File
@@ -1,8 +1,8 @@
use super::pre_process_pattern;
use ast_grep_core::matcher::{Pattern, PatternBuilder, PatternError};
use ast_grep_core::tree_sitter::{TSLanguage, TSRange};
use ast_grep_core::tree_sitter::{LanguageExt, StrDoc, TSLanguage, TSRange};
use ast_grep_core::Language;
use ast_grep_core::{matcher::KindMatcher, Doc, Node};
use ast_grep_core::{Language, LanguageExt, StrDoc};
use std::collections::HashMap;
// tree-sitter-html uses locale dependent iswalnum for tagName
+4 -3
View File
@@ -31,8 +31,8 @@ use ast_grep_core::matcher::{Pattern, PatternBuilder, PatternError};
pub use html::Html;
use ast_grep_core::meta_var::MetaVariable;
use ast_grep_core::tree_sitter::{TSLanguage, TSRange};
use ast_grep_core::{Node, StrDoc};
use ast_grep_core::tree_sitter::{StrDoc, TSLanguage, TSRange};
use ast_grep_core::Node;
use ignore::types::{Types, TypesBuilder};
use serde::de::Visitor;
use serde::{de, Deserialize, Deserializer, Serialize};
@@ -44,7 +44,8 @@ use std::iter::repeat;
use std::path::Path;
use std::str::FromStr;
pub use ast_grep_core::{language::Language, LanguageExt};
pub use ast_grep_core::language::Language;
pub use ast_grep_core::tree_sitter::LanguageExt;
/// this macro implements bare-bone methods for a language
macro_rules! impl_lang {
+4 -1
View File
@@ -7,7 +7,10 @@ use tower_lsp::lsp_types::*;
use tower_lsp::{Client, LanguageServer};
use ast_grep_config::{CombinedScan, RuleCollection, RuleConfig, Severity};
use ast_grep_core::{AstGrep, Doc, LanguageExt, StrDoc};
use ast_grep_core::{
tree_sitter::{LanguageExt, StrDoc},
AstGrep, Doc,
};
use std::collections::HashMap;
use std::path::PathBuf;
+2 -1
View File
@@ -1,7 +1,8 @@
//! Provides utility to convert ast-grep data types to lsp data types
use ast_grep_config::RuleConfig;
use ast_grep_config::Severity;
use ast_grep_core::{Doc, LanguageExt, Node, NodeMatch, StrDoc};
use ast_grep_core::tree_sitter::{LanguageExt, StrDoc};
use ast_grep_core::{Doc, Node, NodeMatch};
use serde::{Deserialize, Serialize};
use tower_lsp::lsp_types::*;
+2 -4
View File
@@ -2,9 +2,7 @@ use crate::napi_lang::NapiLang;
use ast_grep_config::{DeserializeEnv, RuleCore, SerializableRuleCore};
use ast_grep_core::source::{Content, Doc, Edit};
use ast_grep_core::tree_sitter::ContentExt;
use ast_grep_core::tree_sitter::TSParseError;
use ast_grep_core::LanguageExt;
use ast_grep_core::tree_sitter::{ContentExt, LanguageExt, TSParseError};
use napi::anyhow::Error;
use napi::bindgen_prelude::Result as NapiResult;
use napi_derive::napi;
@@ -160,7 +158,7 @@ impl Doc for JsDoc {
let source = &mut self.source;
let input_edit = source.accept_edit(edit);
self.tree.edit(&input_edit);
self.tree = parse(&source, &self.lang, Some(&self.tree)).map_err(|e| e.to_string())?;
self.tree = parse(source, &self.lang, Some(&self.tree)).map_err(|e| e.to_string())?;
Ok(())
}
fn root_node(&self) -> Node<'_> {
+1 -2
View File
@@ -1,6 +1,5 @@
use ast_grep_core::matcher::{Pattern, PatternBuilder, PatternError};
use ast_grep_core::tree_sitter::TSLanguage;
use ast_grep_core::LanguageExt;
use ast_grep_core::tree_sitter::{LanguageExt, TSLanguage};
use ast_grep_dynamic::{CustomLang, DynamicLang};
use ast_grep_language::{Language, SupportLang};
use ignore::types::{Types, TypesBuilder};
+4 -1
View File
@@ -8,7 +8,10 @@ use py_lang::register_dynamic_language;
use py_node::{Edit, SgNode};
use range::{Pos, Range};
use ast_grep_core::{AstGrep, LanguageExt, NodeMatch, StrDoc};
use ast_grep_core::{
tree_sitter::{LanguageExt, StrDoc},
AstGrep, NodeMatch,
};
use py_lang::PyLang;
use pyo3::prelude::*;
+1 -2
View File
@@ -1,7 +1,6 @@
use anyhow::Context;
use ast_grep_core::matcher::{Pattern, PatternBuilder, PatternError};
use ast_grep_core::tree_sitter::TSLanguage;
use ast_grep_core::{LanguageExt, StrDoc};
use ast_grep_core::tree_sitter::{LanguageExt, StrDoc, TSLanguage};
use ast_grep_dynamic::{CustomLang, DynamicLang};
use ast_grep_language::{Language, SupportLang};
use serde::{Deserialize, Serialize};
+1 -1
View File
@@ -3,7 +3,7 @@ use crate::range::Range;
use crate::SgRoot;
use ast_grep_config::{DeserializeEnv, RuleCore, SerializableRuleCore};
use ast_grep_core::{NodeMatch, StrDoc};
use ast_grep_core::{tree_sitter::StrDoc, NodeMatch};
use std::collections::hash_map::DefaultHasher;
use std::hash::{Hash, Hasher};
+2 -2
View File
@@ -1,8 +1,8 @@
use anyhow::{bail, Context, Result};
use ast_grep_config::SerializableRuleConfig;
use ast_grep_core::matcher::{Pattern, PatternBuilder, PatternError};
use ast_grep_core::tree_sitter::TSLanguage;
use ast_grep_core::{Language, LanguageExt};
use ast_grep_core::tree_sitter::{LanguageExt, TSLanguage};
use ast_grep_core::Language;
use ast_grep_language::{
Alias, Bash, CSharp, Cpp, Css, Elixir, Go, Haskell, Html, Java, JavaScript, Json, Kotlin, Lua,
Php, Python, Ruby, Rust, Scala, Swift, Tsx, TypeScript, Yaml, C,