From 311585d30430209147a7bcc7b1e0d1fa8d75cb3c Mon Sep 17 00:00:00 2001 From: Amaan Qureshi Date: Fri, 19 Sep 2025 21:30:15 -0400 Subject: [PATCH] refactor!: rename `stage` flag to `emit` --- crates/cli/src/init.rs | 8 ++++---- crates/cli/src/main.rs | 18 +++++++++--------- crates/cli/src/templates/cmakelists.cmake | 4 ++-- crates/cli/src/templates/makefile | 4 ++-- crates/generate/src/generate.rs | 10 ++++------ 5 files changed, 21 insertions(+), 23 deletions(-) diff --git a/crates/cli/src/init.rs b/crates/cli/src/init.rs index ac9ea5e7..63ba73e8 100644 --- a/crates/cli/src/init.rs +++ b/crates/cli/src/init.rs @@ -572,10 +572,10 @@ pub fn generate_grammar_files( "}, indoc! {r" $(SRC_DIR)/grammar.json: grammar.js - $(TS) generate --stage=json $^ + $(TS) generate --emit=json $^ $(PARSER): $(SRC_DIR)/grammar.json - $(TS) generate --stage=parser $^ + $(TS) generate --emit=parser $^ "} ); write_file(path, contents)?; @@ -623,14 +623,14 @@ pub fn generate_grammar_files( add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/src/grammar.json" DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/grammar.js" COMMAND "${TREE_SITTER_CLI}" generate grammar.js - --stage=json + --emit=json WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" COMMENT "Generating grammar.json") add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/src/parser.c" DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/grammar.json" COMMAND "${TREE_SITTER_CLI}" generate src/grammar.json - --stage=parser --abi=${TREE_SITTER_ABI_VERSION} + --emit=parser --abi=${TREE_SITTER_ABI_VERSION} WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" COMMENT "Generating parser.c") "#} diff --git a/crates/cli/src/main.rs b/crates/cli/src/main.rs index 11545ff8..b997fdd6 100644 --- a/crates/cli/src/main.rs +++ b/crates/cli/src/main.rs @@ -87,7 +87,7 @@ struct Init { } #[derive(Clone, Debug, Default, ValueEnum, PartialEq, Eq)] -enum GenerationStage { +enum GenerationEmit { /// Generate `grammar.json` and `node-types.json` Json, /// Generate `parser.c` and related files @@ -119,12 +119,12 @@ struct Generate { ) )] pub abi_version: Option, - /// Which generation stage to end after + /// What generated files to emit #[arg(long)] - #[clap(value_enum, default_value_t=GenerationStage::Parser)] - pub stage: GenerationStage, - /// Deprecated: use --stage=lib. - #[arg(long, short = 'b', conflicts_with = "stage")] + #[clap(value_enum, default_value_t=GenerationEmit::Parser)] + pub emit: GenerationEmit, + /// Deprecated: use --emit=lib. + #[arg(long, short = 'b', conflicts_with = "emit")] pub build: bool, /// Compile a parser in debug mode #[arg(long, short = '0')] @@ -858,7 +858,7 @@ impl Generate { if self.build { // TODO: remove the `--build` argument in 0.27 // TODO: migrate to `warn!` once https://github.com/tree-sitter/tree-sitter/pull/4604 is merged - eprintln!("Warning: --build is deprecated, use --stage=lib instead"); + eprintln!("Warning: --build is deprecated, use --emit=lib instead"); } if let Err(err) = tree_sitter_generate::generate_parser_in_directory( @@ -868,7 +868,7 @@ impl Generate { abi_version, self.report_states_for_rule.as_deref(), self.js_runtime.as_deref(), - self.stage != GenerationStage::Json, + self.emit != GenerationEmit::Json, ) { if self.json { eprintln!("{}", serde_json::to_string_pretty(&err)?); @@ -879,7 +879,7 @@ impl Generate { Err(anyhow!(err.to_string())).with_context(|| "Error when generating parser")?; } } - if self.stage == GenerationStage::Lib || self.build { + if self.emit == GenerationEmit::Lib || self.build { if let Some(path) = self.libdir { loader = loader::Loader::with_parser_lib_path(path); } diff --git a/crates/cli/src/templates/cmakelists.cmake b/crates/cli/src/templates/cmakelists.cmake index 2b7a53f4..c2fd82fd 100644 --- a/crates/cli/src/templates/cmakelists.cmake +++ b/crates/cli/src/templates/cmakelists.cmake @@ -22,14 +22,14 @@ find_program(TREE_SITTER_CLI tree-sitter DOC "Tree-sitter CLI") add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/src/grammar.json" DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/grammar.js" COMMAND "${TREE_SITTER_CLI}" generate grammar.js - --stage=json + --emit=json WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" COMMENT "Generating grammar.json") add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/src/parser.c" DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/grammar.json" COMMAND "${TREE_SITTER_CLI}" generate src/grammar.json - --stage=parser --abi=${TREE_SITTER_ABI_VERSION} + --emit=parser --abi=${TREE_SITTER_ABI_VERSION} WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}" COMMENT "Generating parser.c") diff --git a/crates/cli/src/templates/makefile b/crates/cli/src/templates/makefile index 5cad3042..847381c5 100644 --- a/crates/cli/src/templates/makefile +++ b/crates/cli/src/templates/makefile @@ -73,10 +73,10 @@ $(LANGUAGE_NAME).pc: bindings/c/$(LANGUAGE_NAME).pc.in -e 's|@CMAKE_INSTALL_PREFIX@|$(PREFIX)|' $< > $@ $(SRC_DIR)/grammar.json: grammar.js - $(TS) generate --stage=json $^ + $(TS) generate --emit=json $^ $(PARSER): $(SRC_DIR)/grammar.json - $(TS) generate --stage=parser $^ + $(TS) generate --emit=parser $^ install: all install -d '$(DESTDIR)$(DATADIR)'/tree-sitter/queries/KEBAB_PARSER_NAME '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter '$(DESTDIR)$(PCLIBDIR)' '$(DESTDIR)$(LIBDIR)' diff --git a/crates/generate/src/generate.rs b/crates/generate/src/generate.rs index 4ac7f5e7..5c445902 100644 --- a/crates/generate/src/generate.rs +++ b/crates/generate/src/generate.rs @@ -49,7 +49,7 @@ static JSON_COMMENT_REGEX: LazyLock = LazyLock::new(|| { .unwrap() }); -struct JSONStageOutput { +struct JSONOutput { #[cfg(feature = "load")] node_types_json: String, syntax_grammar: SyntaxGrammar, @@ -296,9 +296,7 @@ pub fn generate_parser_for_grammar( Ok((input_grammar.name, parser.c_code)) } -fn generate_node_types_from_grammar( - input_grammar: &InputGrammar, -) -> GenerateResult { +fn generate_node_types_from_grammar(input_grammar: &InputGrammar) -> GenerateResult { let (syntax_grammar, lexical_grammar, inlines, simple_aliases) = prepare_grammar(input_grammar)?; let variable_info = @@ -311,7 +309,7 @@ fn generate_node_types_from_grammar( &simple_aliases, &variable_info, )?; - Ok(JSONStageOutput { + Ok(JSONOutput { #[cfg(feature = "load")] node_types_json: serde_json::to_string_pretty(&node_types_json).unwrap(), syntax_grammar, @@ -328,7 +326,7 @@ fn generate_parser_for_grammar_with_opts( semantic_version: Option<(u8, u8, u8)>, report_symbol_name: Option<&str>, ) -> GenerateResult { - let JSONStageOutput { + let JSONOutput { syntax_grammar, lexical_grammar, inlines,