From 0fdf5695717819f51aaadc49ab43d5fc52d145b5 Mon Sep 17 00:00:00 2001 From: Max Brunsfeld Date: Fri, 6 Jun 2025 14:25:37 -0700 Subject: [PATCH] Reorganize rust crates into a flat `crates` directory, simplify some CI steps (#4496) * Move all rust crates (except lib) into crates dir, w/o nesting * Remove stale path from .gitattributes * Rename lib.rs files for easier navigation * Rename mod.rs file for easier navigation * Fix emscripten-version path * Fix fixtures dir paths * Use the default rustfmt settings * Don't use nightly on CI --- .gitattributes | 1 - .github/workflows/build.yml | 2 +- .github/workflows/ci.yml | 11 ------- Cargo.toml | 29 ++++++++++--------- Makefile | 12 ++------ {cli => crates/cli}/Cargo.toml | 3 ++ {cli => crates/cli}/README.md | 0 {cli => crates/cli}/benches/benchmark.rs | 0 {cli => crates/cli}/build.rs | 0 {cli => crates/cli}/eslint/index.js | 0 {cli => crates/cli}/eslint/package-lock.json | 0 {cli => crates/cli}/eslint/package.json | 0 {cli => crates/cli}/npm/.gitignore | 0 {cli => crates/cli}/npm/cli.js | 0 {cli => crates/cli}/npm/dsl.d.ts | 0 {cli => crates/cli}/npm/install.js | 0 {cli => crates/cli}/npm/package.json | 0 cli/src/fuzz/mod.rs => crates/cli/src/fuzz.rs | 0 {cli => crates/cli}/src/fuzz/allocations.rs | 0 {cli => crates/cli}/src/fuzz/corpus_test.rs | 0 {cli => crates/cli}/src/fuzz/edits.rs | 0 {cli => crates/cli}/src/fuzz/random.rs | 0 .../cli}/src/fuzz/scope_sequence.rs | 0 {cli => crates/cli}/src/highlight.rs | 0 {cli => crates/cli}/src/init.rs | 0 {cli => crates/cli}/src/input.rs | 0 {cli => crates/cli}/src/logger.rs | 0 {cli => crates/cli}/src/main.rs | 0 {cli => crates/cli}/src/parse.rs | 0 {cli => crates/cli}/src/playground.html | 0 {cli => crates/cli}/src/playground.rs | 0 {cli => crates/cli}/src/query.rs | 0 {cli => crates/cli}/src/query_testing.rs | 0 {cli => crates/cli}/src/tags.rs | 0 .../cli}/src/templates/.editorconfig | 0 .../cli}/src/templates/PARSER_NAME.h | 0 .../cli}/src/templates/PARSER_NAME.pc.in | 0 {cli => crates/cli}/src/templates/__init__.py | 0 .../cli}/src/templates/__init__.pyi | 0 {cli => crates/cli}/src/templates/_cargo.toml | 0 {cli => crates/cli}/src/templates/binding.go | 0 {cli => crates/cli}/src/templates/binding.gyp | 0 .../cli}/src/templates/binding_test.go | 0 .../cli}/src/templates/binding_test.js | 0 {cli => crates/cli}/src/templates/build.rs | 0 {cli => crates/cli}/src/templates/build.zig | 0 .../cli}/src/templates/build.zig.zon | 0 .../cli}/src/templates/cmakelists.cmake | 0 .../cli}/src/templates/gitattributes | 0 {cli => crates/cli}/src/templates/gitignore | 0 {cli => crates/cli}/src/templates/go.mod | 0 {cli => crates/cli}/src/templates/grammar.js | 0 {cli => crates/cli}/src/templates/index.d.ts | 0 {cli => crates/cli}/src/templates/index.js | 0 .../cli}/src/templates/js-binding.cc | 0 {cli => crates/cli}/src/templates/lib.rs | 0 {cli => crates/cli}/src/templates/makefile | 0 .../cli}/src/templates/package.json | 0 .../cli}/src/templates/package.swift | 0 .../cli}/src/templates/py-binding.c | 0 .../cli}/src/templates/pyproject.toml | 0 {cli => crates/cli}/src/templates/root.zig | 0 {cli => crates/cli}/src/templates/setup.py | 0 .../cli}/src/templates/test_binding.py | 0 {cli => crates/cli}/src/templates/tests.swift | 0 {cli => crates/cli}/src/test.rs | 0 {cli => crates/cli}/src/test_highlight.rs | 0 {cli => crates/cli}/src/test_tags.rs | 0 .../tests/mod.rs => crates/cli/src/tests.rs | 0 .../cli}/src/tests/async_context_test.rs | 0 {cli => crates/cli}/src/tests/corpus_test.rs | 0 .../cli}/src/tests/detect_language.rs | 2 +- .../mod.rs => crates/cli/src/tests/helpers.rs | 0 .../cli}/src/tests/helpers/allocations.rs | 0 {cli => crates/cli}/src/tests/helpers/dirs.rs | 2 ++ .../cli}/src/tests/helpers/edits.rs | 0 .../cli}/src/tests/helpers/fixtures.rs | 0 .../cli}/src/tests/helpers/query_helpers.rs | 0 .../cli}/src/tests/highlight_test.rs | 0 .../cli}/src/tests/language_test.rs | 0 {cli => crates/cli}/src/tests/node_test.rs | 0 .../cli}/src/tests/parser_hang_test.rs | 0 {cli => crates/cli}/src/tests/parser_test.rs | 0 .../cli}/src/tests/pathological_test.rs | 0 .../cli}/src/tests/proc_macro/Cargo.toml | 0 .../cli}/src/tests/proc_macro/src/lib.rs | 0 {cli => crates/cli}/src/tests/query_test.rs | 0 {cli => crates/cli}/src/tests/tags_test.rs | 0 .../cli}/src/tests/test_highlight_test.rs | 0 .../cli}/src/tests/test_tags_test.rs | 0 .../cli}/src/tests/text_provider_test.rs | 0 {cli => crates/cli}/src/tests/tree_test.rs | 0 .../cli}/src/tests/wasm_language_test.rs | 0 .../cli/src/tree_sitter_cli.rs | 0 {cli => crates/cli}/src/util.rs | 0 {cli => crates/cli}/src/version.rs | 0 {cli => crates/cli}/src/wasm.rs | 0 {cli => crates}/config/Cargo.toml | 3 ++ {cli => crates}/config/README.md | 0 .../config/src/tree_sitter_config.rs | 0 {cli => crates}/generate/Cargo.toml | 3 ++ {cli => crates}/generate/README.md | 0 .../generate/src/build_tables.rs | 0 .../src/build_tables/build_lex_table.rs | 0 .../src/build_tables/build_parse_table.rs | 0 .../src/build_tables/coincident_tokens.rs | 0 .../generate/src/build_tables/item.rs | 0 .../src/build_tables/item_set_builder.rs | 0 .../src/build_tables/minimize_parse_table.rs | 0 .../src/build_tables/token_conflicts.rs | 0 {cli => crates}/generate/src/dedup.rs | 0 {cli => crates}/generate/src/dsl.js | 0 .../lib.rs => crates/generate/src/generate.rs | 0 {cli => crates}/generate/src/grammar_files.rs | 0 {cli => crates}/generate/src/grammars.rs | 0 {cli => crates}/generate/src/nfa.rs | 0 {cli => crates}/generate/src/node_types.rs | 0 {cli => crates}/generate/src/parse_grammar.rs | 0 .../generate/src/prepare_grammar.rs | 0 .../src/prepare_grammar/expand_repeats.rs | 0 .../src/prepare_grammar/expand_tokens.rs | 0 .../extract_default_aliases.rs | 0 .../src/prepare_grammar/extract_tokens.rs | 0 .../src/prepare_grammar/flatten_grammar.rs | 0 .../src/prepare_grammar/intern_symbols.rs | 0 .../src/prepare_grammar/process_inlines.rs | 0 {cli => crates}/generate/src/render.rs | 0 {cli => crates}/generate/src/rules.rs | 0 {cli => crates}/generate/src/tables.rs | 0 .../generate/src/templates/alloc.h | 0 .../generate/src/templates/array.h | 0 {highlight => crates/highlight}/Cargo.toml | 1 + {highlight => crates/highlight}/README.md | 0 .../include/tree_sitter/highlight.h | 0 {highlight => crates/highlight}/src/c_lib.rs | 0 .../highlight/src/highlight.rs | 0 {lib => crates}/language/Cargo.toml | 2 +- {lib => crates}/language/README.md | 0 .../language/src}/language.rs | 0 {cli => crates}/loader/Cargo.toml | 3 ++ {cli => crates}/loader/README.md | 0 {cli => crates}/loader/build.rs | 6 ---- {cli => crates}/loader/emscripten-version | 0 .../src/lib.rs => crates/loader/src/loader.rs | 0 {tags => crates/tags}/Cargo.toml | 1 + {tags => crates/tags}/README.md | 0 .../tags}/include/tree_sitter/tags.h | 0 {tags => crates/tags}/src/c_lib.rs | 0 tags/src/lib.rs => crates/tags/src/tags.rs | 0 {xtask => crates/xtask}/Cargo.toml | 0 {xtask => crates/xtask}/src/benchmark.rs | 0 {xtask => crates/xtask}/src/build_wasm.rs | 2 +- {xtask => crates/xtask}/src/bump.rs | 20 ++++++------- .../xtask}/src/check_wasm_exports.rs | 0 {xtask => crates/xtask}/src/clippy.rs | 2 +- {xtask => crates/xtask}/src/fetch.rs | 20 +++---------- {xtask => crates/xtask}/src/generate.rs | 0 {xtask => crates/xtask}/src/main.rs | 12 ++++++-- {xtask => crates/xtask}/src/test.rs | 0 .../xtask}/src/upgrade_emscripten.rs | 13 ++++----- .../xtask}/src/upgrade_wasmtime.rs | 0 lib/Cargo.toml | 2 +- rustfmt.toml | 6 ---- 163 files changed, 69 insertions(+), 89 deletions(-) rename {cli => crates/cli}/Cargo.toml (98%) rename {cli => crates/cli}/README.md (100%) rename {cli => crates/cli}/benches/benchmark.rs (100%) rename {cli => crates/cli}/build.rs (100%) rename {cli => crates/cli}/eslint/index.js (100%) rename {cli => crates/cli}/eslint/package-lock.json (100%) rename {cli => crates/cli}/eslint/package.json (100%) rename {cli => crates/cli}/npm/.gitignore (100%) rename {cli => crates/cli}/npm/cli.js (100%) rename {cli => crates/cli}/npm/dsl.d.ts (100%) rename {cli => crates/cli}/npm/install.js (100%) rename {cli => crates/cli}/npm/package.json (100%) rename cli/src/fuzz/mod.rs => crates/cli/src/fuzz.rs (100%) rename {cli => crates/cli}/src/fuzz/allocations.rs (100%) rename {cli => crates/cli}/src/fuzz/corpus_test.rs (100%) rename {cli => crates/cli}/src/fuzz/edits.rs (100%) rename {cli => crates/cli}/src/fuzz/random.rs (100%) rename {cli => crates/cli}/src/fuzz/scope_sequence.rs (100%) rename {cli => crates/cli}/src/highlight.rs (100%) rename {cli => crates/cli}/src/init.rs (100%) rename {cli => crates/cli}/src/input.rs (100%) rename {cli => crates/cli}/src/logger.rs (100%) rename {cli => crates/cli}/src/main.rs (100%) rename {cli => crates/cli}/src/parse.rs (100%) rename {cli => crates/cli}/src/playground.html (100%) rename {cli => crates/cli}/src/playground.rs (100%) rename {cli => crates/cli}/src/query.rs (100%) rename {cli => crates/cli}/src/query_testing.rs (100%) rename {cli => crates/cli}/src/tags.rs (100%) rename {cli => crates/cli}/src/templates/.editorconfig (100%) rename {cli => crates/cli}/src/templates/PARSER_NAME.h (100%) rename {cli => crates/cli}/src/templates/PARSER_NAME.pc.in (100%) rename {cli => crates/cli}/src/templates/__init__.py (100%) rename {cli => crates/cli}/src/templates/__init__.pyi (100%) rename {cli => crates/cli}/src/templates/_cargo.toml (100%) rename {cli => crates/cli}/src/templates/binding.go (100%) rename {cli => crates/cli}/src/templates/binding.gyp (100%) rename {cli => crates/cli}/src/templates/binding_test.go (100%) rename {cli => crates/cli}/src/templates/binding_test.js (100%) rename {cli => crates/cli}/src/templates/build.rs (100%) rename {cli => crates/cli}/src/templates/build.zig (100%) rename {cli => crates/cli}/src/templates/build.zig.zon (100%) rename {cli => crates/cli}/src/templates/cmakelists.cmake (100%) rename {cli => crates/cli}/src/templates/gitattributes (100%) rename {cli => crates/cli}/src/templates/gitignore (100%) rename {cli => crates/cli}/src/templates/go.mod (100%) rename {cli => crates/cli}/src/templates/grammar.js (100%) rename {cli => crates/cli}/src/templates/index.d.ts (100%) rename {cli => crates/cli}/src/templates/index.js (100%) rename {cli => crates/cli}/src/templates/js-binding.cc (100%) rename {cli => crates/cli}/src/templates/lib.rs (100%) rename {cli => crates/cli}/src/templates/makefile (100%) rename {cli => crates/cli}/src/templates/package.json (100%) rename {cli => crates/cli}/src/templates/package.swift (100%) rename {cli => crates/cli}/src/templates/py-binding.c (100%) rename {cli => crates/cli}/src/templates/pyproject.toml (100%) rename {cli => crates/cli}/src/templates/root.zig (100%) rename {cli => crates/cli}/src/templates/setup.py (100%) rename {cli => crates/cli}/src/templates/test_binding.py (100%) rename {cli => crates/cli}/src/templates/tests.swift (100%) rename {cli => crates/cli}/src/test.rs (100%) rename {cli => crates/cli}/src/test_highlight.rs (100%) rename {cli => crates/cli}/src/test_tags.rs (100%) rename cli/src/tests/mod.rs => crates/cli/src/tests.rs (100%) rename {cli => crates/cli}/src/tests/async_context_test.rs (100%) rename {cli => crates/cli}/src/tests/corpus_test.rs (100%) rename {cli => crates/cli}/src/tests/detect_language.rs (99%) rename cli/src/tests/helpers/mod.rs => crates/cli/src/tests/helpers.rs (100%) rename {cli => crates/cli}/src/tests/helpers/allocations.rs (100%) rename {cli => crates/cli}/src/tests/helpers/dirs.rs (98%) rename {cli => crates/cli}/src/tests/helpers/edits.rs (100%) rename {cli => crates/cli}/src/tests/helpers/fixtures.rs (100%) rename {cli => crates/cli}/src/tests/helpers/query_helpers.rs (100%) rename {cli => crates/cli}/src/tests/highlight_test.rs (100%) rename {cli => crates/cli}/src/tests/language_test.rs (100%) rename {cli => crates/cli}/src/tests/node_test.rs (100%) rename {cli => crates/cli}/src/tests/parser_hang_test.rs (100%) rename {cli => crates/cli}/src/tests/parser_test.rs (100%) rename {cli => crates/cli}/src/tests/pathological_test.rs (100%) rename {cli => crates/cli}/src/tests/proc_macro/Cargo.toml (100%) rename {cli => crates/cli}/src/tests/proc_macro/src/lib.rs (100%) rename {cli => crates/cli}/src/tests/query_test.rs (100%) rename {cli => crates/cli}/src/tests/tags_test.rs (100%) rename {cli => crates/cli}/src/tests/test_highlight_test.rs (100%) rename {cli => crates/cli}/src/tests/test_tags_test.rs (100%) rename {cli => crates/cli}/src/tests/text_provider_test.rs (100%) rename {cli => crates/cli}/src/tests/tree_test.rs (100%) rename {cli => crates/cli}/src/tests/wasm_language_test.rs (100%) rename cli/src/lib.rs => crates/cli/src/tree_sitter_cli.rs (100%) rename {cli => crates/cli}/src/util.rs (100%) rename {cli => crates/cli}/src/version.rs (100%) rename {cli => crates/cli}/src/wasm.rs (100%) rename {cli => crates}/config/Cargo.toml (92%) rename {cli => crates}/config/README.md (100%) rename cli/config/src/lib.rs => crates/config/src/tree_sitter_config.rs (100%) rename {cli => crates}/generate/Cargo.toml (96%) rename {cli => crates}/generate/README.md (100%) rename cli/generate/src/build_tables/mod.rs => crates/generate/src/build_tables.rs (100%) rename {cli => crates}/generate/src/build_tables/build_lex_table.rs (100%) rename {cli => crates}/generate/src/build_tables/build_parse_table.rs (100%) rename {cli => crates}/generate/src/build_tables/coincident_tokens.rs (100%) rename {cli => crates}/generate/src/build_tables/item.rs (100%) rename {cli => crates}/generate/src/build_tables/item_set_builder.rs (100%) rename {cli => crates}/generate/src/build_tables/minimize_parse_table.rs (100%) rename {cli => crates}/generate/src/build_tables/token_conflicts.rs (100%) rename {cli => crates}/generate/src/dedup.rs (100%) rename {cli => crates}/generate/src/dsl.js (100%) rename cli/generate/src/lib.rs => crates/generate/src/generate.rs (100%) rename {cli => crates}/generate/src/grammar_files.rs (100%) rename {cli => crates}/generate/src/grammars.rs (100%) rename {cli => crates}/generate/src/nfa.rs (100%) rename {cli => crates}/generate/src/node_types.rs (100%) rename {cli => crates}/generate/src/parse_grammar.rs (100%) rename cli/generate/src/prepare_grammar/mod.rs => crates/generate/src/prepare_grammar.rs (100%) rename {cli => crates}/generate/src/prepare_grammar/expand_repeats.rs (100%) rename {cli => crates}/generate/src/prepare_grammar/expand_tokens.rs (100%) rename {cli => crates}/generate/src/prepare_grammar/extract_default_aliases.rs (100%) rename {cli => crates}/generate/src/prepare_grammar/extract_tokens.rs (100%) rename {cli => crates}/generate/src/prepare_grammar/flatten_grammar.rs (100%) rename {cli => crates}/generate/src/prepare_grammar/intern_symbols.rs (100%) rename {cli => crates}/generate/src/prepare_grammar/process_inlines.rs (100%) rename {cli => crates}/generate/src/render.rs (100%) rename {cli => crates}/generate/src/rules.rs (100%) rename {cli => crates}/generate/src/tables.rs (100%) rename {cli => crates}/generate/src/templates/alloc.h (100%) rename {cli => crates}/generate/src/templates/array.h (100%) rename {highlight => crates/highlight}/Cargo.toml (96%) rename {highlight => crates/highlight}/README.md (100%) rename {highlight => crates/highlight}/include/tree_sitter/highlight.h (100%) rename {highlight => crates/highlight}/src/c_lib.rs (100%) rename highlight/src/lib.rs => crates/highlight/src/highlight.rs (100%) rename {lib => crates}/language/Cargo.toml (94%) rename {lib => crates}/language/README.md (100%) rename {lib/language => crates/language/src}/language.rs (100%) rename {cli => crates}/loader/Cargo.toml (97%) rename {cli => crates}/loader/README.md (100%) rename {cli => crates}/loader/build.rs (53%) rename {cli => crates}/loader/emscripten-version (100%) rename cli/loader/src/lib.rs => crates/loader/src/loader.rs (100%) rename {tags => crates/tags}/Cargo.toml (97%) rename {tags => crates/tags}/README.md (100%) rename {tags => crates/tags}/include/tree_sitter/tags.h (100%) rename {tags => crates/tags}/src/c_lib.rs (100%) rename tags/src/lib.rs => crates/tags/src/tags.rs (100%) rename {xtask => crates/xtask}/Cargo.toml (100%) rename {xtask => crates/xtask}/src/benchmark.rs (100%) rename {xtask => crates/xtask}/src/build_wasm.rs (98%) rename {xtask => crates/xtask}/src/bump.rs (97%) rename {xtask => crates/xtask}/src/check_wasm_exports.rs (100%) rename {xtask => crates/xtask}/src/clippy.rs (93%) rename {xtask => crates/xtask}/src/fetch.rs (87%) rename {xtask => crates/xtask}/src/generate.rs (100%) rename {xtask => crates/xtask}/src/main.rs (97%) rename {xtask => crates/xtask}/src/test.rs (100%) rename {xtask => crates/xtask}/src/upgrade_emscripten.rs (78%) rename {xtask => crates/xtask}/src/upgrade_wasmtime.rs (100%) delete mode 100644 rustfmt.toml diff --git a/.gitattributes b/.gitattributes index 1d9b8cb4..acd15fd1 100644 --- a/.gitattributes +++ b/.gitattributes @@ -3,5 +3,4 @@ /lib/src/unicode/*.h linguist-vendored /lib/src/unicode/LICENSE linguist-vendored -/cli/src/generate/prepare_grammar/*.json -diff Cargo.lock -diff diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 07bd810e..bc366f21 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -73,7 +73,7 @@ jobs: uses: actions/checkout@v4 - name: Read Emscripten version - run: printf 'EMSCRIPTEN_VERSION=%s\n' "$(> $GITHUB_ENV + run: printf 'EMSCRIPTEN_VERSION=%s\n' "$(> $GITHUB_ENV - name: Install Emscripten if: ${{ !matrix.no-run && !matrix.use-cross }} diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index d6ec9b77..01fb165b 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -34,22 +34,11 @@ jobs: toolchain: stable components: clippy, rustfmt - - name: Set up nightly Rust toolchain - uses: actions-rust-lang/setup-rust-toolchain@v1 - with: - toolchain: nightly - components: clippy, rustfmt - - name: Lint files run: | make lint make lint-web - - name: Lint files (Rust nightly) - continue-on-error: true - run: | - make lint-nightly - sanitize: uses: ./.github/workflows/sanitize.yml diff --git a/Cargo.toml b/Cargo.toml index 2df2d625..e15b873a 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -1,15 +1,15 @@ [workspace] -default-members = ["cli"] +default-members = ["crates/cli"] members = [ - "cli", - "cli/config", - "cli/generate", - "cli/loader", + "crates/cli", + "crates/config", + "crates/generate", + "crates/highlight", + "crates/loader", + "crates/tags", + "crates/xtask", + "crates/language", "lib", - "lib/language", - "tags", - "highlight", - "xtask", ] resolver = "2" @@ -154,8 +154,9 @@ wasmparser = "0.224.1" webbrowser = "1.0.4" tree-sitter = { version = "0.26.0", path = "./lib" } -tree-sitter-generate = { version = "0.26.0", path = "./cli/generate" } -tree-sitter-loader = { version = "0.26.0", path = "./cli/loader" } -tree-sitter-config = { version = "0.26.0", path = "./cli/config" } -tree-sitter-highlight = { version = "0.26.0", path = "./highlight" } -tree-sitter-tags = { version = "0.26.0", path = "./tags" } +tree-sitter-generate = { version = "0.26.0", path = "./crates/generate" } +tree-sitter-language = { path = "./crates/language" } +tree-sitter-loader = { version = "0.26.0", path = "./crates/loader" } +tree-sitter-config = { version = "0.26.0", path = "./crates/config" } +tree-sitter-highlight = { version = "0.26.0", path = "./crates/highlight" } +tree-sitter-tags = { version = "0.26.0", path = "./crates/tags" } diff --git a/Makefile b/Makefile index d0e0ff9c..07a65fe6 100644 --- a/Makefile +++ b/Makefile @@ -106,21 +106,15 @@ test-wasm: lint: cargo update --workspace --locked --quiet cargo check --workspace --all-targets - cargo +nightly fmt --all --check - cargo +stable clippy --workspace --all-targets -- -D warnings - -lint-nightly: - cargo update --workspace --locked --quiet - cargo check --workspace --all-targets - cargo +nightly fmt --all --check - cargo +nightly clippy --workspace --all-targets -- -D warnings + cargo fmt --all --check + cargo clippy --workspace --all-targets -- -D warnings lint-web: npm --prefix lib/binding_web ci npm --prefix lib/binding_web run lint format: - cargo +nightly fmt --all + cargo fmt --all changelog: @git-cliff --config .github/cliff.toml --prepend CHANGELOG.md --latest --github-token $(shell gh auth token) diff --git a/cli/Cargo.toml b/crates/cli/Cargo.toml similarity index 98% rename from cli/Cargo.toml rename to crates/cli/Cargo.toml index c7f6fe22..463e063e 100644 --- a/cli/Cargo.toml +++ b/crates/cli/Cargo.toml @@ -16,6 +16,9 @@ include = ["build.rs", "README.md", "benches/*", "src/**"] [lints] workspace = true +[lib] +path = "src/tree_sitter_cli.rs" + [[bin]] name = "tree-sitter" path = "src/main.rs" diff --git a/cli/README.md b/crates/cli/README.md similarity index 100% rename from cli/README.md rename to crates/cli/README.md diff --git a/cli/benches/benchmark.rs b/crates/cli/benches/benchmark.rs similarity index 100% rename from cli/benches/benchmark.rs rename to crates/cli/benches/benchmark.rs diff --git a/cli/build.rs b/crates/cli/build.rs similarity index 100% rename from cli/build.rs rename to crates/cli/build.rs diff --git a/cli/eslint/index.js b/crates/cli/eslint/index.js similarity index 100% rename from cli/eslint/index.js rename to crates/cli/eslint/index.js diff --git a/cli/eslint/package-lock.json b/crates/cli/eslint/package-lock.json similarity index 100% rename from cli/eslint/package-lock.json rename to crates/cli/eslint/package-lock.json diff --git a/cli/eslint/package.json b/crates/cli/eslint/package.json similarity index 100% rename from cli/eslint/package.json rename to crates/cli/eslint/package.json diff --git a/cli/npm/.gitignore b/crates/cli/npm/.gitignore similarity index 100% rename from cli/npm/.gitignore rename to crates/cli/npm/.gitignore diff --git a/cli/npm/cli.js b/crates/cli/npm/cli.js similarity index 100% rename from cli/npm/cli.js rename to crates/cli/npm/cli.js diff --git a/cli/npm/dsl.d.ts b/crates/cli/npm/dsl.d.ts similarity index 100% rename from cli/npm/dsl.d.ts rename to crates/cli/npm/dsl.d.ts diff --git a/cli/npm/install.js b/crates/cli/npm/install.js similarity index 100% rename from cli/npm/install.js rename to crates/cli/npm/install.js diff --git a/cli/npm/package.json b/crates/cli/npm/package.json similarity index 100% rename from cli/npm/package.json rename to crates/cli/npm/package.json diff --git a/cli/src/fuzz/mod.rs b/crates/cli/src/fuzz.rs similarity index 100% rename from cli/src/fuzz/mod.rs rename to crates/cli/src/fuzz.rs diff --git a/cli/src/fuzz/allocations.rs b/crates/cli/src/fuzz/allocations.rs similarity index 100% rename from cli/src/fuzz/allocations.rs rename to crates/cli/src/fuzz/allocations.rs diff --git a/cli/src/fuzz/corpus_test.rs b/crates/cli/src/fuzz/corpus_test.rs similarity index 100% rename from cli/src/fuzz/corpus_test.rs rename to crates/cli/src/fuzz/corpus_test.rs diff --git a/cli/src/fuzz/edits.rs b/crates/cli/src/fuzz/edits.rs similarity index 100% rename from cli/src/fuzz/edits.rs rename to crates/cli/src/fuzz/edits.rs diff --git a/cli/src/fuzz/random.rs b/crates/cli/src/fuzz/random.rs similarity index 100% rename from cli/src/fuzz/random.rs rename to crates/cli/src/fuzz/random.rs diff --git a/cli/src/fuzz/scope_sequence.rs b/crates/cli/src/fuzz/scope_sequence.rs similarity index 100% rename from cli/src/fuzz/scope_sequence.rs rename to crates/cli/src/fuzz/scope_sequence.rs diff --git a/cli/src/highlight.rs b/crates/cli/src/highlight.rs similarity index 100% rename from cli/src/highlight.rs rename to crates/cli/src/highlight.rs diff --git a/cli/src/init.rs b/crates/cli/src/init.rs similarity index 100% rename from cli/src/init.rs rename to crates/cli/src/init.rs diff --git a/cli/src/input.rs b/crates/cli/src/input.rs similarity index 100% rename from cli/src/input.rs rename to crates/cli/src/input.rs diff --git a/cli/src/logger.rs b/crates/cli/src/logger.rs similarity index 100% rename from cli/src/logger.rs rename to crates/cli/src/logger.rs diff --git a/cli/src/main.rs b/crates/cli/src/main.rs similarity index 100% rename from cli/src/main.rs rename to crates/cli/src/main.rs diff --git a/cli/src/parse.rs b/crates/cli/src/parse.rs similarity index 100% rename from cli/src/parse.rs rename to crates/cli/src/parse.rs diff --git a/cli/src/playground.html b/crates/cli/src/playground.html similarity index 100% rename from cli/src/playground.html rename to crates/cli/src/playground.html diff --git a/cli/src/playground.rs b/crates/cli/src/playground.rs similarity index 100% rename from cli/src/playground.rs rename to crates/cli/src/playground.rs diff --git a/cli/src/query.rs b/crates/cli/src/query.rs similarity index 100% rename from cli/src/query.rs rename to crates/cli/src/query.rs diff --git a/cli/src/query_testing.rs b/crates/cli/src/query_testing.rs similarity index 100% rename from cli/src/query_testing.rs rename to crates/cli/src/query_testing.rs diff --git a/cli/src/tags.rs b/crates/cli/src/tags.rs similarity index 100% rename from cli/src/tags.rs rename to crates/cli/src/tags.rs diff --git a/cli/src/templates/.editorconfig b/crates/cli/src/templates/.editorconfig similarity index 100% rename from cli/src/templates/.editorconfig rename to crates/cli/src/templates/.editorconfig diff --git a/cli/src/templates/PARSER_NAME.h b/crates/cli/src/templates/PARSER_NAME.h similarity index 100% rename from cli/src/templates/PARSER_NAME.h rename to crates/cli/src/templates/PARSER_NAME.h diff --git a/cli/src/templates/PARSER_NAME.pc.in b/crates/cli/src/templates/PARSER_NAME.pc.in similarity index 100% rename from cli/src/templates/PARSER_NAME.pc.in rename to crates/cli/src/templates/PARSER_NAME.pc.in diff --git a/cli/src/templates/__init__.py b/crates/cli/src/templates/__init__.py similarity index 100% rename from cli/src/templates/__init__.py rename to crates/cli/src/templates/__init__.py diff --git a/cli/src/templates/__init__.pyi b/crates/cli/src/templates/__init__.pyi similarity index 100% rename from cli/src/templates/__init__.pyi rename to crates/cli/src/templates/__init__.pyi diff --git a/cli/src/templates/_cargo.toml b/crates/cli/src/templates/_cargo.toml similarity index 100% rename from cli/src/templates/_cargo.toml rename to crates/cli/src/templates/_cargo.toml diff --git a/cli/src/templates/binding.go b/crates/cli/src/templates/binding.go similarity index 100% rename from cli/src/templates/binding.go rename to crates/cli/src/templates/binding.go diff --git a/cli/src/templates/binding.gyp b/crates/cli/src/templates/binding.gyp similarity index 100% rename from cli/src/templates/binding.gyp rename to crates/cli/src/templates/binding.gyp diff --git a/cli/src/templates/binding_test.go b/crates/cli/src/templates/binding_test.go similarity index 100% rename from cli/src/templates/binding_test.go rename to crates/cli/src/templates/binding_test.go diff --git a/cli/src/templates/binding_test.js b/crates/cli/src/templates/binding_test.js similarity index 100% rename from cli/src/templates/binding_test.js rename to crates/cli/src/templates/binding_test.js diff --git a/cli/src/templates/build.rs b/crates/cli/src/templates/build.rs similarity index 100% rename from cli/src/templates/build.rs rename to crates/cli/src/templates/build.rs diff --git a/cli/src/templates/build.zig b/crates/cli/src/templates/build.zig similarity index 100% rename from cli/src/templates/build.zig rename to crates/cli/src/templates/build.zig diff --git a/cli/src/templates/build.zig.zon b/crates/cli/src/templates/build.zig.zon similarity index 100% rename from cli/src/templates/build.zig.zon rename to crates/cli/src/templates/build.zig.zon diff --git a/cli/src/templates/cmakelists.cmake b/crates/cli/src/templates/cmakelists.cmake similarity index 100% rename from cli/src/templates/cmakelists.cmake rename to crates/cli/src/templates/cmakelists.cmake diff --git a/cli/src/templates/gitattributes b/crates/cli/src/templates/gitattributes similarity index 100% rename from cli/src/templates/gitattributes rename to crates/cli/src/templates/gitattributes diff --git a/cli/src/templates/gitignore b/crates/cli/src/templates/gitignore similarity index 100% rename from cli/src/templates/gitignore rename to crates/cli/src/templates/gitignore diff --git a/cli/src/templates/go.mod b/crates/cli/src/templates/go.mod similarity index 100% rename from cli/src/templates/go.mod rename to crates/cli/src/templates/go.mod diff --git a/cli/src/templates/grammar.js b/crates/cli/src/templates/grammar.js similarity index 100% rename from cli/src/templates/grammar.js rename to crates/cli/src/templates/grammar.js diff --git a/cli/src/templates/index.d.ts b/crates/cli/src/templates/index.d.ts similarity index 100% rename from cli/src/templates/index.d.ts rename to crates/cli/src/templates/index.d.ts diff --git a/cli/src/templates/index.js b/crates/cli/src/templates/index.js similarity index 100% rename from cli/src/templates/index.js rename to crates/cli/src/templates/index.js diff --git a/cli/src/templates/js-binding.cc b/crates/cli/src/templates/js-binding.cc similarity index 100% rename from cli/src/templates/js-binding.cc rename to crates/cli/src/templates/js-binding.cc diff --git a/cli/src/templates/lib.rs b/crates/cli/src/templates/lib.rs similarity index 100% rename from cli/src/templates/lib.rs rename to crates/cli/src/templates/lib.rs diff --git a/cli/src/templates/makefile b/crates/cli/src/templates/makefile similarity index 100% rename from cli/src/templates/makefile rename to crates/cli/src/templates/makefile diff --git a/cli/src/templates/package.json b/crates/cli/src/templates/package.json similarity index 100% rename from cli/src/templates/package.json rename to crates/cli/src/templates/package.json diff --git a/cli/src/templates/package.swift b/crates/cli/src/templates/package.swift similarity index 100% rename from cli/src/templates/package.swift rename to crates/cli/src/templates/package.swift diff --git a/cli/src/templates/py-binding.c b/crates/cli/src/templates/py-binding.c similarity index 100% rename from cli/src/templates/py-binding.c rename to crates/cli/src/templates/py-binding.c diff --git a/cli/src/templates/pyproject.toml b/crates/cli/src/templates/pyproject.toml similarity index 100% rename from cli/src/templates/pyproject.toml rename to crates/cli/src/templates/pyproject.toml diff --git a/cli/src/templates/root.zig b/crates/cli/src/templates/root.zig similarity index 100% rename from cli/src/templates/root.zig rename to crates/cli/src/templates/root.zig diff --git a/cli/src/templates/setup.py b/crates/cli/src/templates/setup.py similarity index 100% rename from cli/src/templates/setup.py rename to crates/cli/src/templates/setup.py diff --git a/cli/src/templates/test_binding.py b/crates/cli/src/templates/test_binding.py similarity index 100% rename from cli/src/templates/test_binding.py rename to crates/cli/src/templates/test_binding.py diff --git a/cli/src/templates/tests.swift b/crates/cli/src/templates/tests.swift similarity index 100% rename from cli/src/templates/tests.swift rename to crates/cli/src/templates/tests.swift diff --git a/cli/src/test.rs b/crates/cli/src/test.rs similarity index 100% rename from cli/src/test.rs rename to crates/cli/src/test.rs diff --git a/cli/src/test_highlight.rs b/crates/cli/src/test_highlight.rs similarity index 100% rename from cli/src/test_highlight.rs rename to crates/cli/src/test_highlight.rs diff --git a/cli/src/test_tags.rs b/crates/cli/src/test_tags.rs similarity index 100% rename from cli/src/test_tags.rs rename to crates/cli/src/test_tags.rs diff --git a/cli/src/tests/mod.rs b/crates/cli/src/tests.rs similarity index 100% rename from cli/src/tests/mod.rs rename to crates/cli/src/tests.rs diff --git a/cli/src/tests/async_context_test.rs b/crates/cli/src/tests/async_context_test.rs similarity index 100% rename from cli/src/tests/async_context_test.rs rename to crates/cli/src/tests/async_context_test.rs diff --git a/cli/src/tests/corpus_test.rs b/crates/cli/src/tests/corpus_test.rs similarity index 100% rename from cli/src/tests/corpus_test.rs rename to crates/cli/src/tests/corpus_test.rs diff --git a/cli/src/tests/detect_language.rs b/crates/cli/src/tests/detect_language.rs similarity index 99% rename from cli/src/tests/detect_language.rs rename to crates/cli/src/tests/detect_language.rs index 50bb891e..c94b30b4 100644 --- a/cli/src/tests/detect_language.rs +++ b/crates/cli/src/tests/detect_language.rs @@ -229,7 +229,7 @@ fn tree_sitter_dir(tree_sitter_json: &str, name: &str) -> tempfile::TempDir { .unwrap(); fs::write( temp_dir.path().join("src/tree_sitter/parser.h"), - include_str!("../../../lib/src/parser.h"), + include_str!("../../../../lib/src/parser.h"), ) .unwrap(); temp_dir diff --git a/cli/src/tests/helpers/mod.rs b/crates/cli/src/tests/helpers.rs similarity index 100% rename from cli/src/tests/helpers/mod.rs rename to crates/cli/src/tests/helpers.rs diff --git a/cli/src/tests/helpers/allocations.rs b/crates/cli/src/tests/helpers/allocations.rs similarity index 100% rename from cli/src/tests/helpers/allocations.rs rename to crates/cli/src/tests/helpers/allocations.rs diff --git a/cli/src/tests/helpers/dirs.rs b/crates/cli/src/tests/helpers/dirs.rs similarity index 98% rename from cli/src/tests/helpers/dirs.rs rename to crates/cli/src/tests/helpers/dirs.rs index 22e99588..d63790cd 100644 --- a/cli/src/tests/helpers/dirs.rs +++ b/crates/cli/src/tests/helpers/dirs.rs @@ -1,5 +1,7 @@ pub static ROOT_DIR: LazyLock = LazyLock::new(|| { PathBuf::from(env!("CARGO_MANIFEST_DIR")) + .parent() + .unwrap() .parent() .unwrap() .to_owned() diff --git a/cli/src/tests/helpers/edits.rs b/crates/cli/src/tests/helpers/edits.rs similarity index 100% rename from cli/src/tests/helpers/edits.rs rename to crates/cli/src/tests/helpers/edits.rs diff --git a/cli/src/tests/helpers/fixtures.rs b/crates/cli/src/tests/helpers/fixtures.rs similarity index 100% rename from cli/src/tests/helpers/fixtures.rs rename to crates/cli/src/tests/helpers/fixtures.rs diff --git a/cli/src/tests/helpers/query_helpers.rs b/crates/cli/src/tests/helpers/query_helpers.rs similarity index 100% rename from cli/src/tests/helpers/query_helpers.rs rename to crates/cli/src/tests/helpers/query_helpers.rs diff --git a/cli/src/tests/highlight_test.rs b/crates/cli/src/tests/highlight_test.rs similarity index 100% rename from cli/src/tests/highlight_test.rs rename to crates/cli/src/tests/highlight_test.rs diff --git a/cli/src/tests/language_test.rs b/crates/cli/src/tests/language_test.rs similarity index 100% rename from cli/src/tests/language_test.rs rename to crates/cli/src/tests/language_test.rs diff --git a/cli/src/tests/node_test.rs b/crates/cli/src/tests/node_test.rs similarity index 100% rename from cli/src/tests/node_test.rs rename to crates/cli/src/tests/node_test.rs diff --git a/cli/src/tests/parser_hang_test.rs b/crates/cli/src/tests/parser_hang_test.rs similarity index 100% rename from cli/src/tests/parser_hang_test.rs rename to crates/cli/src/tests/parser_hang_test.rs diff --git a/cli/src/tests/parser_test.rs b/crates/cli/src/tests/parser_test.rs similarity index 100% rename from cli/src/tests/parser_test.rs rename to crates/cli/src/tests/parser_test.rs diff --git a/cli/src/tests/pathological_test.rs b/crates/cli/src/tests/pathological_test.rs similarity index 100% rename from cli/src/tests/pathological_test.rs rename to crates/cli/src/tests/pathological_test.rs diff --git a/cli/src/tests/proc_macro/Cargo.toml b/crates/cli/src/tests/proc_macro/Cargo.toml similarity index 100% rename from cli/src/tests/proc_macro/Cargo.toml rename to crates/cli/src/tests/proc_macro/Cargo.toml diff --git a/cli/src/tests/proc_macro/src/lib.rs b/crates/cli/src/tests/proc_macro/src/lib.rs similarity index 100% rename from cli/src/tests/proc_macro/src/lib.rs rename to crates/cli/src/tests/proc_macro/src/lib.rs diff --git a/cli/src/tests/query_test.rs b/crates/cli/src/tests/query_test.rs similarity index 100% rename from cli/src/tests/query_test.rs rename to crates/cli/src/tests/query_test.rs diff --git a/cli/src/tests/tags_test.rs b/crates/cli/src/tests/tags_test.rs similarity index 100% rename from cli/src/tests/tags_test.rs rename to crates/cli/src/tests/tags_test.rs diff --git a/cli/src/tests/test_highlight_test.rs b/crates/cli/src/tests/test_highlight_test.rs similarity index 100% rename from cli/src/tests/test_highlight_test.rs rename to crates/cli/src/tests/test_highlight_test.rs diff --git a/cli/src/tests/test_tags_test.rs b/crates/cli/src/tests/test_tags_test.rs similarity index 100% rename from cli/src/tests/test_tags_test.rs rename to crates/cli/src/tests/test_tags_test.rs diff --git a/cli/src/tests/text_provider_test.rs b/crates/cli/src/tests/text_provider_test.rs similarity index 100% rename from cli/src/tests/text_provider_test.rs rename to crates/cli/src/tests/text_provider_test.rs diff --git a/cli/src/tests/tree_test.rs b/crates/cli/src/tests/tree_test.rs similarity index 100% rename from cli/src/tests/tree_test.rs rename to crates/cli/src/tests/tree_test.rs diff --git a/cli/src/tests/wasm_language_test.rs b/crates/cli/src/tests/wasm_language_test.rs similarity index 100% rename from cli/src/tests/wasm_language_test.rs rename to crates/cli/src/tests/wasm_language_test.rs diff --git a/cli/src/lib.rs b/crates/cli/src/tree_sitter_cli.rs similarity index 100% rename from cli/src/lib.rs rename to crates/cli/src/tree_sitter_cli.rs diff --git a/cli/src/util.rs b/crates/cli/src/util.rs similarity index 100% rename from cli/src/util.rs rename to crates/cli/src/util.rs diff --git a/cli/src/version.rs b/crates/cli/src/version.rs similarity index 100% rename from cli/src/version.rs rename to crates/cli/src/version.rs diff --git a/cli/src/wasm.rs b/crates/cli/src/wasm.rs similarity index 100% rename from cli/src/wasm.rs rename to crates/cli/src/wasm.rs diff --git a/cli/config/Cargo.toml b/crates/config/Cargo.toml similarity index 92% rename from cli/config/Cargo.toml rename to crates/config/Cargo.toml index e332db77..aaf062b9 100644 --- a/cli/config/Cargo.toml +++ b/crates/config/Cargo.toml @@ -12,6 +12,9 @@ license.workspace = true keywords.workspace = true categories.workspace = true +[lib] +path = "src/tree_sitter_config.rs" + [lints] workspace = true diff --git a/cli/config/README.md b/crates/config/README.md similarity index 100% rename from cli/config/README.md rename to crates/config/README.md diff --git a/cli/config/src/lib.rs b/crates/config/src/tree_sitter_config.rs similarity index 100% rename from cli/config/src/lib.rs rename to crates/config/src/tree_sitter_config.rs diff --git a/cli/generate/Cargo.toml b/crates/generate/Cargo.toml similarity index 96% rename from cli/generate/Cargo.toml rename to crates/generate/Cargo.toml index 2c0d7b50..d48a0eb9 100644 --- a/cli/generate/Cargo.toml +++ b/crates/generate/Cargo.toml @@ -12,6 +12,9 @@ license.workspace = true keywords.workspace = true categories.workspace = true +[lib] +path = "src/generate.rs" + [lints] workspace = true diff --git a/cli/generate/README.md b/crates/generate/README.md similarity index 100% rename from cli/generate/README.md rename to crates/generate/README.md diff --git a/cli/generate/src/build_tables/mod.rs b/crates/generate/src/build_tables.rs similarity index 100% rename from cli/generate/src/build_tables/mod.rs rename to crates/generate/src/build_tables.rs diff --git a/cli/generate/src/build_tables/build_lex_table.rs b/crates/generate/src/build_tables/build_lex_table.rs similarity index 100% rename from cli/generate/src/build_tables/build_lex_table.rs rename to crates/generate/src/build_tables/build_lex_table.rs diff --git a/cli/generate/src/build_tables/build_parse_table.rs b/crates/generate/src/build_tables/build_parse_table.rs similarity index 100% rename from cli/generate/src/build_tables/build_parse_table.rs rename to crates/generate/src/build_tables/build_parse_table.rs diff --git a/cli/generate/src/build_tables/coincident_tokens.rs b/crates/generate/src/build_tables/coincident_tokens.rs similarity index 100% rename from cli/generate/src/build_tables/coincident_tokens.rs rename to crates/generate/src/build_tables/coincident_tokens.rs diff --git a/cli/generate/src/build_tables/item.rs b/crates/generate/src/build_tables/item.rs similarity index 100% rename from cli/generate/src/build_tables/item.rs rename to crates/generate/src/build_tables/item.rs diff --git a/cli/generate/src/build_tables/item_set_builder.rs b/crates/generate/src/build_tables/item_set_builder.rs similarity index 100% rename from cli/generate/src/build_tables/item_set_builder.rs rename to crates/generate/src/build_tables/item_set_builder.rs diff --git a/cli/generate/src/build_tables/minimize_parse_table.rs b/crates/generate/src/build_tables/minimize_parse_table.rs similarity index 100% rename from cli/generate/src/build_tables/minimize_parse_table.rs rename to crates/generate/src/build_tables/minimize_parse_table.rs diff --git a/cli/generate/src/build_tables/token_conflicts.rs b/crates/generate/src/build_tables/token_conflicts.rs similarity index 100% rename from cli/generate/src/build_tables/token_conflicts.rs rename to crates/generate/src/build_tables/token_conflicts.rs diff --git a/cli/generate/src/dedup.rs b/crates/generate/src/dedup.rs similarity index 100% rename from cli/generate/src/dedup.rs rename to crates/generate/src/dedup.rs diff --git a/cli/generate/src/dsl.js b/crates/generate/src/dsl.js similarity index 100% rename from cli/generate/src/dsl.js rename to crates/generate/src/dsl.js diff --git a/cli/generate/src/lib.rs b/crates/generate/src/generate.rs similarity index 100% rename from cli/generate/src/lib.rs rename to crates/generate/src/generate.rs diff --git a/cli/generate/src/grammar_files.rs b/crates/generate/src/grammar_files.rs similarity index 100% rename from cli/generate/src/grammar_files.rs rename to crates/generate/src/grammar_files.rs diff --git a/cli/generate/src/grammars.rs b/crates/generate/src/grammars.rs similarity index 100% rename from cli/generate/src/grammars.rs rename to crates/generate/src/grammars.rs diff --git a/cli/generate/src/nfa.rs b/crates/generate/src/nfa.rs similarity index 100% rename from cli/generate/src/nfa.rs rename to crates/generate/src/nfa.rs diff --git a/cli/generate/src/node_types.rs b/crates/generate/src/node_types.rs similarity index 100% rename from cli/generate/src/node_types.rs rename to crates/generate/src/node_types.rs diff --git a/cli/generate/src/parse_grammar.rs b/crates/generate/src/parse_grammar.rs similarity index 100% rename from cli/generate/src/parse_grammar.rs rename to crates/generate/src/parse_grammar.rs diff --git a/cli/generate/src/prepare_grammar/mod.rs b/crates/generate/src/prepare_grammar.rs similarity index 100% rename from cli/generate/src/prepare_grammar/mod.rs rename to crates/generate/src/prepare_grammar.rs diff --git a/cli/generate/src/prepare_grammar/expand_repeats.rs b/crates/generate/src/prepare_grammar/expand_repeats.rs similarity index 100% rename from cli/generate/src/prepare_grammar/expand_repeats.rs rename to crates/generate/src/prepare_grammar/expand_repeats.rs diff --git a/cli/generate/src/prepare_grammar/expand_tokens.rs b/crates/generate/src/prepare_grammar/expand_tokens.rs similarity index 100% rename from cli/generate/src/prepare_grammar/expand_tokens.rs rename to crates/generate/src/prepare_grammar/expand_tokens.rs diff --git a/cli/generate/src/prepare_grammar/extract_default_aliases.rs b/crates/generate/src/prepare_grammar/extract_default_aliases.rs similarity index 100% rename from cli/generate/src/prepare_grammar/extract_default_aliases.rs rename to crates/generate/src/prepare_grammar/extract_default_aliases.rs diff --git a/cli/generate/src/prepare_grammar/extract_tokens.rs b/crates/generate/src/prepare_grammar/extract_tokens.rs similarity index 100% rename from cli/generate/src/prepare_grammar/extract_tokens.rs rename to crates/generate/src/prepare_grammar/extract_tokens.rs diff --git a/cli/generate/src/prepare_grammar/flatten_grammar.rs b/crates/generate/src/prepare_grammar/flatten_grammar.rs similarity index 100% rename from cli/generate/src/prepare_grammar/flatten_grammar.rs rename to crates/generate/src/prepare_grammar/flatten_grammar.rs diff --git a/cli/generate/src/prepare_grammar/intern_symbols.rs b/crates/generate/src/prepare_grammar/intern_symbols.rs similarity index 100% rename from cli/generate/src/prepare_grammar/intern_symbols.rs rename to crates/generate/src/prepare_grammar/intern_symbols.rs diff --git a/cli/generate/src/prepare_grammar/process_inlines.rs b/crates/generate/src/prepare_grammar/process_inlines.rs similarity index 100% rename from cli/generate/src/prepare_grammar/process_inlines.rs rename to crates/generate/src/prepare_grammar/process_inlines.rs diff --git a/cli/generate/src/render.rs b/crates/generate/src/render.rs similarity index 100% rename from cli/generate/src/render.rs rename to crates/generate/src/render.rs diff --git a/cli/generate/src/rules.rs b/crates/generate/src/rules.rs similarity index 100% rename from cli/generate/src/rules.rs rename to crates/generate/src/rules.rs diff --git a/cli/generate/src/tables.rs b/crates/generate/src/tables.rs similarity index 100% rename from cli/generate/src/tables.rs rename to crates/generate/src/tables.rs diff --git a/cli/generate/src/templates/alloc.h b/crates/generate/src/templates/alloc.h similarity index 100% rename from cli/generate/src/templates/alloc.h rename to crates/generate/src/templates/alloc.h diff --git a/cli/generate/src/templates/array.h b/crates/generate/src/templates/array.h similarity index 100% rename from cli/generate/src/templates/array.h rename to crates/generate/src/templates/array.h diff --git a/highlight/Cargo.toml b/crates/highlight/Cargo.toml similarity index 96% rename from highlight/Cargo.toml rename to crates/highlight/Cargo.toml index f48789f1..e1f72a6f 100644 --- a/highlight/Cargo.toml +++ b/crates/highlight/Cargo.toml @@ -19,6 +19,7 @@ categories = ["parsing", "text-editors"] workspace = true [lib] +path = "src/highlight.rs" crate-type = ["lib", "staticlib"] [dependencies] diff --git a/highlight/README.md b/crates/highlight/README.md similarity index 100% rename from highlight/README.md rename to crates/highlight/README.md diff --git a/highlight/include/tree_sitter/highlight.h b/crates/highlight/include/tree_sitter/highlight.h similarity index 100% rename from highlight/include/tree_sitter/highlight.h rename to crates/highlight/include/tree_sitter/highlight.h diff --git a/highlight/src/c_lib.rs b/crates/highlight/src/c_lib.rs similarity index 100% rename from highlight/src/c_lib.rs rename to crates/highlight/src/c_lib.rs diff --git a/highlight/src/lib.rs b/crates/highlight/src/highlight.rs similarity index 100% rename from highlight/src/lib.rs rename to crates/highlight/src/highlight.rs diff --git a/lib/language/Cargo.toml b/crates/language/Cargo.toml similarity index 94% rename from lib/language/Cargo.toml rename to crates/language/Cargo.toml index 09e52db7..0463204c 100644 --- a/lib/language/Cargo.toml +++ b/crates/language/Cargo.toml @@ -16,4 +16,4 @@ categories = ["api-bindings", "development-tools::ffi", "parsing"] workspace = true [lib] -path = "language.rs" +path = "src/language.rs" diff --git a/lib/language/README.md b/crates/language/README.md similarity index 100% rename from lib/language/README.md rename to crates/language/README.md diff --git a/lib/language/language.rs b/crates/language/src/language.rs similarity index 100% rename from lib/language/language.rs rename to crates/language/src/language.rs diff --git a/cli/loader/Cargo.toml b/crates/loader/Cargo.toml similarity index 97% rename from cli/loader/Cargo.toml rename to crates/loader/Cargo.toml index aa40a0b9..a77fa779 100644 --- a/cli/loader/Cargo.toml +++ b/crates/loader/Cargo.toml @@ -16,6 +16,9 @@ categories.workspace = true all-features = true rustdoc-args = ["--cfg", "docsrs"] +[lib] +path = "src/loader.rs" + [lints] workspace = true diff --git a/cli/loader/README.md b/crates/loader/README.md similarity index 100% rename from cli/loader/README.md rename to crates/loader/README.md diff --git a/cli/loader/build.rs b/crates/loader/build.rs similarity index 53% rename from cli/loader/build.rs rename to crates/loader/build.rs index 1da41b02..5ffc889a 100644 --- a/cli/loader/build.rs +++ b/crates/loader/build.rs @@ -7,10 +7,4 @@ fn main() { "cargo:rustc-env=BUILD_HOST={}", std::env::var("HOST").unwrap() ); - - let emscripten_version = std::fs::read_to_string("emscripten-version").unwrap(); - println!( - "cargo:rustc-env=EMSCRIPTEN_VERSION={}", - emscripten_version.trim() - ); } diff --git a/cli/loader/emscripten-version b/crates/loader/emscripten-version similarity index 100% rename from cli/loader/emscripten-version rename to crates/loader/emscripten-version diff --git a/cli/loader/src/lib.rs b/crates/loader/src/loader.rs similarity index 100% rename from cli/loader/src/lib.rs rename to crates/loader/src/loader.rs diff --git a/tags/Cargo.toml b/crates/tags/Cargo.toml similarity index 97% rename from tags/Cargo.toml rename to crates/tags/Cargo.toml index 9db54306..7eae246b 100644 --- a/tags/Cargo.toml +++ b/crates/tags/Cargo.toml @@ -19,6 +19,7 @@ categories = ["parsing", "text-editors"] workspace = true [lib] +path = "src/tags.rs" crate-type = ["lib", "staticlib"] [dependencies] diff --git a/tags/README.md b/crates/tags/README.md similarity index 100% rename from tags/README.md rename to crates/tags/README.md diff --git a/tags/include/tree_sitter/tags.h b/crates/tags/include/tree_sitter/tags.h similarity index 100% rename from tags/include/tree_sitter/tags.h rename to crates/tags/include/tree_sitter/tags.h diff --git a/tags/src/c_lib.rs b/crates/tags/src/c_lib.rs similarity index 100% rename from tags/src/c_lib.rs rename to crates/tags/src/c_lib.rs diff --git a/tags/src/lib.rs b/crates/tags/src/tags.rs similarity index 100% rename from tags/src/lib.rs rename to crates/tags/src/tags.rs diff --git a/xtask/Cargo.toml b/crates/xtask/Cargo.toml similarity index 100% rename from xtask/Cargo.toml rename to crates/xtask/Cargo.toml diff --git a/xtask/src/benchmark.rs b/crates/xtask/src/benchmark.rs similarity index 100% rename from xtask/src/benchmark.rs rename to crates/xtask/src/benchmark.rs diff --git a/xtask/src/build_wasm.rs b/crates/xtask/src/build_wasm.rs similarity index 98% rename from xtask/src/build_wasm.rs rename to crates/xtask/src/build_wasm.rs index 43679835..d1b0f7ab 100644 --- a/xtask/src/build_wasm.rs +++ b/crates/xtask/src/build_wasm.rs @@ -202,7 +202,7 @@ fn build_wasm(cmd: &mut Command) -> Result<()> { } pub fn run_wasm_stdlib() -> Result<()> { - let export_flags = include_str!("../../lib/src/wasm/stdlib-symbols.txt") + let export_flags = include_str!("../../../lib/src/wasm/stdlib-symbols.txt") .lines() .map(|line| format!("-Wl,--export={}", &line[1..line.len() - 2])) .collect::>(); diff --git a/xtask/src/bump.rs b/crates/xtask/src/bump.rs similarity index 97% rename from xtask/src/bump.rs rename to crates/xtask/src/bump.rs index fbef5488..3e6239af 100644 --- a/xtask/src/bump.rs +++ b/crates/xtask/src/bump.rs @@ -151,19 +151,19 @@ fn tag_next_version(repo: &Repository, next_version: &Version) -> Result<()> { repo, &format!("{next_version}"), &[ - "Cargo.toml", "Cargo.lock", - "cli/Cargo.toml", - "cli/config/Cargo.toml", - "cli/loader/Cargo.toml", - "lib/Cargo.toml", - "highlight/Cargo.toml", - "tags/Cargo.toml", - "cli/npm/package.json", - "lib/binding_web/package.json", + "Cargo.toml", "Makefile", - "lib/CMakeLists.txt", "build.zig.zon", + "crates/cli/Cargo.toml", + "crates/cli/npm/package.json", + "crates/config/Cargo.toml", + "crates/highlight/Cargo.toml", + "crates/loader/Cargo.toml", + "crates/tags/Cargo.toml", + "lib/CMakeLists.txt", + "lib/Cargo.toml", + "lib/binding_web/package.json", ], )?; diff --git a/xtask/src/check_wasm_exports.rs b/crates/xtask/src/check_wasm_exports.rs similarity index 100% rename from xtask/src/check_wasm_exports.rs rename to crates/xtask/src/check_wasm_exports.rs diff --git a/xtask/src/clippy.rs b/crates/xtask/src/clippy.rs similarity index 93% rename from xtask/src/clippy.rs rename to crates/xtask/src/clippy.rs index c8d33348..664884f5 100644 --- a/xtask/src/clippy.rs +++ b/crates/xtask/src/clippy.rs @@ -6,7 +6,7 @@ use crate::{bail_on_err, Clippy}; pub fn run(args: &Clippy) -> Result<()> { let mut clippy_command = Command::new("cargo"); - clippy_command.arg("+nightly").arg("clippy"); + clippy_command.arg("clippy"); if let Some(package) = args.package.as_ref() { clippy_command.args(["--package", package]); diff --git a/xtask/src/fetch.rs b/crates/xtask/src/fetch.rs similarity index 87% rename from xtask/src/fetch.rs rename to crates/xtask/src/fetch.rs index 41d5f52c..13ae8faa 100644 --- a/xtask/src/fetch.rs +++ b/crates/xtask/src/fetch.rs @@ -1,16 +1,9 @@ -use std::{path::Path, process::Command}; - +use crate::{bail_on_err, root_dir, EMSCRIPTEN_VERSION}; use anyhow::Result; - -use crate::{bail_on_err, EMSCRIPTEN_VERSION}; +use std::process::Command; pub fn run_fixtures() -> Result<()> { - let grammars_dir = Path::new(env!("CARGO_MANIFEST_DIR")) - .parent() - .unwrap() - .join("test") - .join("fixtures") - .join("grammars"); + let grammars_dir = root_dir().join("test").join("fixtures").join("grammars"); [ ("bash", "master"), @@ -72,12 +65,7 @@ pub fn run_fixtures() -> Result<()> { } pub fn run_emscripten() -> Result<()> { - let emscripten_dir = Path::new(env!("CARGO_MANIFEST_DIR")) - .parent() - .unwrap() - .join("target") - .join("emsdk"); - + let emscripten_dir = root_dir().join("target").join("emsdk"); if emscripten_dir.exists() { println!("Emscripten SDK already exists"); return Ok(()); diff --git a/xtask/src/generate.rs b/crates/xtask/src/generate.rs similarity index 100% rename from xtask/src/generate.rs rename to crates/xtask/src/generate.rs diff --git a/xtask/src/main.rs b/crates/xtask/src/main.rs similarity index 97% rename from xtask/src/main.rs rename to crates/xtask/src/main.rs index 8364d796..edcc7c37 100644 --- a/xtask/src/main.rs +++ b/crates/xtask/src/main.rs @@ -170,10 +170,10 @@ struct UpgradeWasmtime { const BUILD_VERSION: &str = env!("CARGO_PKG_VERSION"); const BUILD_SHA: Option<&str> = option_env!("BUILD_SHA"); -const EMSCRIPTEN_VERSION: &str = include_str!("../../cli/loader/emscripten-version").trim_ascii(); +const EMSCRIPTEN_VERSION: &str = include_str!("../../loader/emscripten-version").trim_ascii(); const EMSCRIPTEN_TAG: &str = concat!( "docker.io/emscripten/emsdk:", - include_str!("../../cli/loader/emscripten-version") + include_str!("../../loader/emscripten-version") ) .trim_ascii(); @@ -242,6 +242,14 @@ fn run() -> Result<()> { Ok(()) } +fn root_dir() -> &'static Path { + Path::new(env!("CARGO_MANIFEST_DIR")) + .parent() + .unwrap() + .parent() + .unwrap() +} + fn bail_on_err(output: &std::process::Output, prefix: &str) -> Result<()> { if !output.status.success() { let stderr = String::from_utf8_lossy(&output.stderr); diff --git a/xtask/src/test.rs b/crates/xtask/src/test.rs similarity index 100% rename from xtask/src/test.rs rename to crates/xtask/src/test.rs diff --git a/xtask/src/upgrade_emscripten.rs b/crates/xtask/src/upgrade_emscripten.rs similarity index 78% rename from xtask/src/upgrade_emscripten.rs rename to crates/xtask/src/upgrade_emscripten.rs index 9736e64e..3fe8396f 100644 --- a/xtask/src/upgrade_emscripten.rs +++ b/crates/xtask/src/upgrade_emscripten.rs @@ -1,10 +1,9 @@ -use std::{fs, path::Path}; - use anyhow::{anyhow, Result}; use git2::Repository; use serde_json::Value; +use std::fs; -use crate::create_commit; +use crate::{create_commit, root_dir}; pub fn run() -> Result<()> { let response = ureq::get("https://api.github.com/repos/emscripten-core/emsdk/tags") @@ -19,10 +18,8 @@ pub fn run() -> Result<()> { .and_then(|tag| tag["name"].as_str()) .ok_or(anyhow!("No tags found"))?; - let version_file = Path::new(env!("CARGO_MANIFEST_DIR")) - .parent() - .unwrap() - .join("cli") + let version_file = root_dir() + .join("crates") .join("loader") .join("emscripten-version"); @@ -34,7 +31,7 @@ pub fn run() -> Result<()> { create_commit( &repo, &format!("build(deps): bump emscripten to {version}"), - &["cli/loader/emscripten-version"], + &["crates/loader/emscripten-version"], )?; Ok(()) diff --git a/xtask/src/upgrade_wasmtime.rs b/crates/xtask/src/upgrade_wasmtime.rs similarity index 100% rename from xtask/src/upgrade_wasmtime.rs rename to crates/xtask/src/upgrade_wasmtime.rs diff --git a/lib/Cargo.toml b/lib/Cargo.toml index 9b4a3352..dd26a69b 100644 --- a/lib/Cargo.toml +++ b/lib/Cargo.toml @@ -47,7 +47,7 @@ wasm = ["std", "wasmtime-c-api"] [dependencies] regex = { version = "1.11.1", default-features = false, features = ["unicode"] } regex-syntax = { version = "0.8.5", default-features = false } -tree-sitter-language = { version = "0.1", path = "language" } +tree-sitter-language.workspace = true streaming-iterator = "0.1.9" [dependencies.wasmtime-c-api] diff --git a/rustfmt.toml b/rustfmt.toml deleted file mode 100644 index 4fd08b8e..00000000 --- a/rustfmt.toml +++ /dev/null @@ -1,6 +0,0 @@ -comment_width = 100 -format_code_in_doc_comments = true -format_macro_matchers = true -imports_granularity = "Crate" -group_imports = "StdExternalCrate" -wrap_comments = true