diff --git a/Cargo.lock b/Cargo.lock index afbb8c4..a5c13d3 100644 --- a/Cargo.lock +++ b/Cargo.lock @@ -324,8 +324,8 @@ version = "0.1.0" dependencies = [ "clap", "codegen-sdk-analyzer", + "codegen-sdk-ast", "codegen-sdk-common", - "codegen-sdk-cst", "crossbeam", "env_logger", "glob", diff --git a/Cargo.toml b/Cargo.toml index df8e6b3..de6d074 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -7,7 +7,7 @@ edition = "2024" [dependencies] clap = { version = "4.5.28", features = ["derive"] } codegen-sdk-analyzer = { path = "codegen-sdk-analyzer" } -codegen-sdk-cst = { workspace = true , features = ["typescript"]} +codegen-sdk-ast = { workspace = true} codegen-sdk-common = { workspace = true} crossbeam = "0.8.4" glob = "0.3.2" @@ -17,21 +17,21 @@ rayon = { workspace = true} sysinfo = "0.33.1" rkyv.workspace = true [features] -# python = [ "codegen-sdk-cst/python"] # TODO: Add python support -typescript = [ "codegen-sdk-cst/typescript"] -tsx = [ "codegen-sdk-cst/tsx"] -jsx = [ "codegen-sdk-cst/jsx"] -javascript = [ "codegen-sdk-cst/typescript"] -json = [ "codegen-sdk-cst/json"] -java = [ "codegen-sdk-cst/java"] -# ruby = [ "codegen-sdk-cst/ruby"] -# rust = [ "codegen-sdk-cst/rust"] -go = [ "codegen-sdk-cst/go"] -# markdown = [ "codegen-sdk-cst/markdown"] -yaml = [ "codegen-sdk-cst/yaml"] -toml = [ "codegen-sdk-cst/toml"] +python = [ "codegen-sdk-ast/python"] # TODO: Add python support +typescript = [ "codegen-sdk-ast/typescript"] +tsx = [ "codegen-sdk-ast/tsx"] +jsx = [ "codegen-sdk-ast/jsx"] +javascript = [ "codegen-sdk-ast/typescript"] +json = [ "codegen-sdk-ast/json"] +java = [ "codegen-sdk-ast/java"] +ruby = [ "codegen-sdk-ast/ruby"] +rust = [ "codegen-sdk-ast/rust"] +go = [ "codegen-sdk-ast/go"] +markdown = [ "codegen-sdk-ast/markdown"] +yaml = [ "codegen-sdk-ast/yaml"] +toml = [ "codegen-sdk-ast/toml"] ts_query = [] -default = ["json", "ts_query", "toml"] +default = ["json", "ts_query", "toml", "typescript"] [dev-dependencies] test-log = { workspace = true } [workspace] diff --git a/codegen-sdk-ast/src/lib.rs b/codegen-sdk-ast/src/lib.rs index 6ad7881..708a7e3 100644 --- a/codegen-sdk-ast/src/lib.rs +++ b/codegen-sdk-ast/src/lib.rs @@ -1,6 +1,7 @@ #![recursion_limit = "512"] #![allow(unused)] use codegen_sdk_common::File; +pub use codegen_sdk_common::language::LANGUAGES; pub use codegen_sdk_cst::*; use codegen_sdk_macros::include_languages_ast; pub trait Named { diff --git a/codegen-sdk-common/Cargo.toml b/codegen-sdk-common/Cargo.toml index 5763001..352acb2 100644 --- a/codegen-sdk-common/Cargo.toml +++ b/codegen-sdk-common/Cargo.toml @@ -50,5 +50,5 @@ yaml = ["dep:tree-sitter-yaml"] toml = ["dep:tree-sitter-toml-ng"] markdown = ["dep:tree-sitter-md"] ts_query = ["dep:tree-sitter-query"] -default = ["all"] +default = [] all = ["python", "typescript", "json", "java", "ts_query", "ruby", "rust", "go", "yaml", "toml"] diff --git a/codegen-sdk-cst-generator/Cargo.toml b/codegen-sdk-cst-generator/Cargo.toml index a501021..22f1c3e 100644 --- a/codegen-sdk-cst-generator/Cargo.toml +++ b/codegen-sdk-cst-generator/Cargo.toml @@ -9,7 +9,7 @@ prettyplease = {workspace = true} syn = { workspace = true } tree-sitter = { workspace = true } log = { workspace = true } -codegen-sdk-common = { workspace = true } +codegen-sdk-common = { workspace = true, features = ["python"]} anyhow = { workspace = true } quote = { workspace = true } proc-macro2 = { workspace = true } diff --git a/codegen-sdk-cst/src/lib.rs b/codegen-sdk-cst/src/lib.rs index 3f9b313..0ea8638 100644 --- a/codegen-sdk-cst/src/lib.rs +++ b/codegen-sdk-cst/src/lib.rs @@ -6,6 +6,7 @@ use codegen_sdk_common::{ParseError, serialize::Cache, traits::CSTNode}; use codegen_sdk_macros::{include_languages, parse_languages}; use rkyv::{api::high::to_bytes_in, from_bytes}; mod language; +pub use codegen_sdk_common::language::LANGUAGES; pub use language::CSTLanguage; include_languages!(); pub fn parse_file( diff --git a/codegen-sdk-macros/Cargo.toml b/codegen-sdk-macros/Cargo.toml index 8411393..3a2c473 100644 --- a/codegen-sdk-macros/Cargo.toml +++ b/codegen-sdk-macros/Cargo.toml @@ -4,6 +4,6 @@ version = "0.1.0" edition = "2024" [dependencies] -codegen-sdk-common = { workspace = true } +codegen-sdk-common = { workspace = true, features = ["all"] } [lib] proc-macro = true diff --git a/src/main.rs b/src/main.rs index 675263e..a77e0af 100644 --- a/src/main.rs +++ b/src/main.rs @@ -1,7 +1,8 @@ -use std::{path, time::Instant}; +use std::{ops::Div, path, time::Instant}; use clap::Parser; -use codegen_sdk_common::{language::LANGUAGES, serialize::Cache, traits::CSTNode}; +use codegen_sdk_ast::*; +use codegen_sdk_common::{serialize::Cache, traits::CSTNode}; use glob::glob; use rayon::prelude::*; use sysinfo::System; @@ -32,7 +33,7 @@ fn parse_file( if file.is_dir() { return None; } - let result = codegen_sdk_cst::parse_file(cache, file); + let result = codegen_sdk_ast::parse_file(cache, file); return match result { Ok(program) => Some(program), @@ -81,7 +82,7 @@ fn parse_files(dir: String) -> (Vec>, Vec) { log::info!( "{} files cached. {}% of total", cached, - cached * 100 / files_to_parse.len() + (cached * 100).div(files_to_parse.len()) ); (files, errors) }