fix: 🐛 file parsing error on variable pattern spacing corrected
This commit is contained in:
@@ -6,3 +6,8 @@ edition = "2021"
|
|||||||
[dependencies]
|
[dependencies]
|
||||||
inquire = "0.7.5"
|
inquire = "0.7.5"
|
||||||
regex = "1.11.1"
|
regex = "1.11.1"
|
||||||
|
|
||||||
|
[[bin]]
|
||||||
|
edition = "2021"
|
||||||
|
name = "code_templates"
|
||||||
|
path = "src/main.rs"
|
||||||
|
|||||||
@@ -3,27 +3,31 @@ use regex::Regex;
|
|||||||
pub fn apply_name_template(template: &str, filename: &str) -> String {
|
pub fn apply_name_template(template: &str, filename: &str) -> String {
|
||||||
match template {
|
match template {
|
||||||
"__name__" | "{{name}}" => filename.to_string(),
|
"__name__" | "{{name}}" => filename.to_string(),
|
||||||
"__upperCase_name__" | "{{upperCase name}}" => filename.to_uppercase().to_string(),
|
"__upperCase_name__" | "{{upperCasename}}" => filename.to_uppercase().to_string(),
|
||||||
"__lowerCase_name__" | "{{lowerCase name}}" => filename.to_lowercase().to_string(),
|
"__lowerCase_name__" | "{{lowerCasename}}" => filename.to_lowercase().to_string(),
|
||||||
"__camelCase_name__" | "{{camelCase name}}" => parse_camel_case(filename),
|
"__camelCase_name__" | "{{camelCasename}}" => parse_camel_case(filename),
|
||||||
"__pascalCase_name__" | "{{pascalCase name}}" => parse_pascal_case(filename),
|
"__pascalCase_name__" | "{{pascalCasename}}" => parse_pascal_case(filename),
|
||||||
"__snakeCase_name__" | "{{snakeCase name}}" => parse_snake_case(filename),
|
"__snakeCase_name__" | "{{snakeCasename}}" => parse_snake_case(filename),
|
||||||
"__upperSnakeCase_name__" | "{{upperSnakeCase name}}" => {
|
"__upperSnakeCase_name__" | "{{upperSnakeCasename}}" => {
|
||||||
parse_snake_case(filename).to_uppercase()
|
parse_snake_case(filename).to_uppercase()
|
||||||
}
|
}
|
||||||
"__kebabCase_name__" | "{{kebabCase name}}" => parse_snake_case(filename).replace("_", "-"),
|
"__kebabCase_name__" | "{{kebabCasename}}" => parse_snake_case(filename).replace("_", "-"),
|
||||||
"__lowerDotCase_name__" | "{{lowerDotCase name}}" => {
|
"__lowerDotCase_name__" | "{{lowerDotCasename}}" => {
|
||||||
parse_snake_case(filename).replace("_", ".")
|
parse_snake_case(filename).replace("_", ".")
|
||||||
}
|
}
|
||||||
_ => filename.to_string(),
|
_ => filename.to_string(),
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// FIXME: admit space between `{}` and name|upperCase name...
|
||||||
pub fn apply_all_templates_to_string(mut input: String, replacement: &str) -> String {
|
pub fn apply_all_templates_to_string(mut input: String, replacement: &str) -> String {
|
||||||
let get_template_names_regex = Regex::new(r"(\{\{(name|upperCase name|lowerCase name|camelCase name|pascalCase name|snakeCase name|upperSnakeCase name|kebabCase name|lowerDotCase name)\}\})").unwrap();
|
let get_template_names_regex = Regex::new(r"(\{\{[\s]*(name|upperCase name|lowerCase name|camelCase name|pascalCase name|snakeCase name|upperSnakeCase name|kebabCase name|lowerDotCase name)[\s]*\}\})").unwrap();
|
||||||
input = get_template_names_regex
|
input = get_template_names_regex
|
||||||
.replace_all(&input, |captured: ®ex::Captures| {
|
.replace_all(&input, |captured: ®ex::Captures| {
|
||||||
format!("{}", apply_name_template(&captured[1], replacement),)
|
format!(
|
||||||
|
"{}",
|
||||||
|
apply_name_template(&captured[1].replace(" ", ""), replacement),
|
||||||
|
)
|
||||||
})
|
})
|
||||||
.into_owned();
|
.into_owned();
|
||||||
|
|
||||||
|
|||||||
@@ -15,15 +15,15 @@ pub mod tests {
|
|||||||
];
|
];
|
||||||
|
|
||||||
pub const _TEMPLATE_EXPRESSIONS: [&str; 9] = [
|
pub const _TEMPLATE_EXPRESSIONS: [&str; 9] = [
|
||||||
"{{name}}",
|
"{{ name }}",
|
||||||
"{{upperCase name}}",
|
"{{ upperCase name }}",
|
||||||
"{{lowerCase name}}",
|
"{{ lowerCase name }}",
|
||||||
"{{camelCase name}}",
|
"{{ camelCase name }}",
|
||||||
"{{pascalCase name}}",
|
"{{ pascalCase name }}",
|
||||||
"{{snakeCase name}}",
|
"{{ snakeCase name }}",
|
||||||
"{{upperSnakeCase name}}",
|
"{{ upperSnakeCase name }}",
|
||||||
"{{kebabCase name}}",
|
"{{ kebabCase name }}",
|
||||||
"{{lowerDotCase name}}",
|
"{{ lowerDotCase name }}",
|
||||||
];
|
];
|
||||||
|
|
||||||
#[test]
|
#[test]
|
||||||
|
|||||||
Reference in New Issue
Block a user