@@ -22,6 +22,7 @@ const ABI_VERSION_MAX_PLACEHOLDER: &str = "ABI_VERSION_MAX";
2222
2323const PARSER_NAME_PLACEHOLDER : & str = "PARSER_NAME" ;
2424const CAMEL_PARSER_NAME_PLACEHOLDER : & str = "CAMEL_PARSER_NAME" ;
25+ const TITLE_PARSER_NAME_PLACEHOLDER : & str = "TITLE_PARSER_NAME" ;
2526const UPPER_PARSER_NAME_PLACEHOLDER : & str = "UPPER_PARSER_NAME" ;
2627const LOWER_PARSER_NAME_PLACEHOLDER : & str = "LOWER_PARSER_NAME" ;
2728const KEBAB_PARSER_NAME_PLACEHOLDER : & str = "KEBAB_PARSER_NAME" ;
@@ -119,6 +120,7 @@ pub fn path_in_ignore(repo_path: &Path) -> bool {
119120pub struct JsonConfigOpts {
120121 pub name : String ,
121122 pub camelcase : String ,
123+ pub title : String ,
122124 pub description : String ,
123125 #[ serde( skip_serializing_if = "Option::is_none" ) ]
124126 pub repository : Option < Url > ,
@@ -143,6 +145,7 @@ impl JsonConfigOpts {
143145 grammars : vec ! [ Grammar {
144146 name: self . name. clone( ) ,
145147 camelcase: Some ( self . camelcase) ,
148+ title: Some ( self . title) ,
146149 scope: self . scope,
147150 path: None ,
148151 external_files: PathsJSON :: Empty ,
@@ -188,6 +191,7 @@ impl Default for JsonConfigOpts {
188191 Self {
189192 name : String :: new ( ) ,
190193 camelcase : String :: new ( ) ,
194+ title : String :: new ( ) ,
191195 description : String :: new ( ) ,
192196 repository : None ,
193197 funding : None ,
@@ -212,6 +216,7 @@ struct GenerateOpts<'a> {
212216 funding : Option < & ' a str > ,
213217 version : & ' a Version ,
214218 camel_parser_name : & ' a str ,
219+ title_parser_name : & ' a str ,
215220 class_name : & ' a str ,
216221}
217222
@@ -254,6 +259,10 @@ pub fn generate_grammar_files(
254259 . camelcase
255260 . clone ( )
256261 . unwrap_or_else ( || language_name. to_upper_camel_case ( ) ) ;
262+ let title_name = tree_sitter_config. grammars [ 0 ]
263+ . title
264+ . clone ( )
265+ . unwrap_or_else ( || language_name. to_upper_camel_case ( ) ) ;
257266 let class_name = tree_sitter_config. grammars [ 0 ]
258267 . class_name
259268 . clone ( )
@@ -283,6 +292,7 @@ pub fn generate_grammar_files(
283292 . and_then ( |l| l. funding . as_ref ( ) . map ( |f| f. as_str ( ) ) ) ,
284293 version : & tree_sitter_config. metadata . version ,
285294 camel_parser_name : & camel_name,
295+ title_parser_name : & title_name,
286296 class_name : & class_name,
287297 } ;
288298
@@ -702,6 +712,10 @@ fn generate_file(
702712 CAMEL_PARSER_NAME_PLACEHOLDER ,
703713 generate_opts. camel_parser_name ,
704714 )
715+ . replace (
716+ TITLE_PARSER_NAME_PLACEHOLDER ,
717+ generate_opts. title_parser_name ,
718+ )
705719 . replace (
706720 UPPER_PARSER_NAME_PLACEHOLDER ,
707721 & language_name. to_shouty_snake_case ( ) ,
0 commit comments