fix(cli): remove --emit=lib generate option
This also replaces the `--emit` option with an `--no-parser` flag. The default value is false, meaning a parser is still generated by default.
This commit is contained in:
parent
b8f52210f9
commit
097c2d4f05
5 changed files with 17 additions and 36 deletions
|
|
@ -572,14 +572,14 @@ pub fn generate_grammar_files(
|
|||
.replace(
|
||||
indoc! {r"
|
||||
$(PARSER): $(SRC_DIR)/grammar.json
|
||||
$(TS) generate $^
|
||||
$(TS) generate $^
|
||||
"},
|
||||
indoc! {r"
|
||||
$(SRC_DIR)/grammar.json: grammar.js
|
||||
$(TS) generate --emit=json $^
|
||||
$(TS) generate --no-parser $^
|
||||
|
||||
$(PARSER): $(SRC_DIR)/grammar.json
|
||||
$(TS) generate --emit=parser $^
|
||||
$(TS) generate $^
|
||||
"}
|
||||
);
|
||||
write_file(path, contents)?;
|
||||
|
|
@ -627,14 +627,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
|
||||
--emit=json
|
||||
--no-parser
|
||||
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
|
||||
--emit=parser --abi=${TREE_SITTER_ABI_VERSION}
|
||||
--abi=${TREE_SITTER_ABI_VERSION}
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
COMMENT "Generating parser.c")
|
||||
"#}
|
||||
|
|
|
|||
|
|
@ -88,17 +88,6 @@ struct Init {
|
|||
pub grammar_path: Option<PathBuf>,
|
||||
}
|
||||
|
||||
#[derive(Clone, Debug, Default, ValueEnum, PartialEq, Eq)]
|
||||
enum GenerationEmit {
|
||||
/// Generate `grammar.json` and `node-types.json`
|
||||
Json,
|
||||
/// Generate `parser.c` and related files
|
||||
#[default]
|
||||
Parser,
|
||||
/// Compile to a library
|
||||
Lib,
|
||||
}
|
||||
|
||||
#[derive(Args)]
|
||||
#[command(alias = "gen", alias = "g")]
|
||||
struct Generate {
|
||||
|
|
@ -121,12 +110,11 @@ struct Generate {
|
|||
)
|
||||
)]
|
||||
pub abi_version: Option<String>,
|
||||
/// What generated files to emit
|
||||
/// Only generate `grammar.json` and `node-types.json`
|
||||
#[arg(long)]
|
||||
#[clap(value_enum, default_value_t=GenerationEmit::Parser)]
|
||||
pub emit: GenerationEmit,
|
||||
/// Deprecated: use --emit=lib.
|
||||
#[arg(long, short = 'b', conflicts_with = "emit")]
|
||||
pub no_parser: bool,
|
||||
/// Compile all defined languages in the current dir
|
||||
#[arg(long, short = 'b')]
|
||||
pub build: bool,
|
||||
/// Compile a parser in debug mode
|
||||
#[arg(long, short = '0')]
|
||||
|
|
@ -862,9 +850,6 @@ impl Generate {
|
|||
version.parse().expect("invalid abi version flag")
|
||||
}
|
||||
});
|
||||
if self.build {
|
||||
warn!("--build is deprecated, use --emit=lib instead");
|
||||
}
|
||||
|
||||
if let Err(err) = tree_sitter_generate::generate_parser_in_directory(
|
||||
current_dir,
|
||||
|
|
@ -873,7 +858,7 @@ impl Generate {
|
|||
abi_version,
|
||||
self.report_states_for_rule.as_deref(),
|
||||
self.js_runtime.as_deref(),
|
||||
self.emit != GenerationEmit::Json,
|
||||
!self.no_parser,
|
||||
if self.disable_optimizations {
|
||||
OptLevel::empty()
|
||||
} else {
|
||||
|
|
@ -889,7 +874,7 @@ impl Generate {
|
|||
Err(anyhow!(err.to_string())).with_context(|| "Error when generating parser")?;
|
||||
}
|
||||
}
|
||||
if self.emit == GenerationEmit::Lib || self.build {
|
||||
if self.build {
|
||||
if let Some(path) = self.libdir {
|
||||
loader = loader::Loader::with_parser_lib_path(path);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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
|
||||
--emit=json
|
||||
--no-parser
|
||||
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
|
||||
--emit=parser --abi=${TREE_SITTER_ABI_VERSION}
|
||||
--abi=${TREE_SITTER_ABI_VERSION}
|
||||
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
|
||||
COMMENT "Generating parser.c")
|
||||
|
||||
|
|
|
|||
|
|
@ -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 --emit=json $^
|
||||
$(TS) generate --no-parser $^
|
||||
|
||||
$(PARSER): $(SRC_DIR)/grammar.json
|
||||
$(TS) generate --emit=parser $^
|
||||
$(TS) generate $^
|
||||
|
||||
install: all
|
||||
install -d '$(DESTDIR)$(DATADIR)'/tree-sitter/queries/KEBAB_PARSER_NAME '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter '$(DESTDIR)$(PCLIBDIR)' '$(DESTDIR)$(LIBDIR)'
|
||||
|
|
|
|||
|
|
@ -30,13 +30,9 @@ what keywords were extracted, what states were split and why, and the entry poin
|
|||
|
||||
The ABI to use for parser generation. The default is ABI 15, with ABI 14 being a supported target.
|
||||
|
||||
### `--emit`
|
||||
### `--no-parser`
|
||||
|
||||
What generated files to emit. Possible values:
|
||||
|
||||
- `json`: Generate `grammar.json` and `node-types.json`
|
||||
- `parser` (default): Generate `parser.c` and related files.
|
||||
- `lib`: Compile to a library (equivalent of the deprecated `--build` option)
|
||||
Only generate `grammar.json` and `node-types.json`
|
||||
|
||||
### `-0/--debug-build`
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue