From 2c1af76fb0a82657255da13e3c180603b2a9028f Mon Sep 17 00:00:00 2001 From: Nikita Revenco <154856872+NikitaRevenco@users.noreply.github.com> Date: Sat, 11 Jan 2025 17:49:01 +0000 Subject: [PATCH] refactor: do not create new function on each loop --- helix-core/src/case_conversion.rs | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/helix-core/src/case_conversion.rs b/helix-core/src/case_conversion.rs index 01e5a70b7..2a67416cc 100644 --- a/helix-core/src/case_conversion.rs +++ b/helix-core/src/case_conversion.rs @@ -19,24 +19,24 @@ pub fn smart_case_conversion( let mut should_capitalize_current = capitalize_first; let mut prev: Option = None; - for current in chars.skip_while(|ch| ch.is_whitespace()) { - let mut maybe_add_separator = || { - if let Some(separator) = separator { - // We do not want to add a separator when the previous char is not a separator - // For example, snake__case is invalid - if prev.is_some_and(|ch| ch != separator) { - buf.push(separator); - } + let add_separator_if_needed = |prev: Option, buf: &mut Tendril| { + if let Some(separator) = separator { + // We do not want to add a separator when the previous char is not a separator + // For example, snake__case is invalid + if prev.is_some_and(|ch| ch != separator) { + buf.push(separator); } - }; + } + }; + for current in chars.skip_while(|ch| ch.is_whitespace()) { if current.is_alphanumeric() { // "camelCase" => transition at 'l' -> 'C' let has_camel_transition = current.is_uppercase() && prev.is_some_and(|ch| ch.is_lowercase()); if has_camel_transition { - maybe_add_separator(); + add_separator_if_needed(prev, buf); should_capitalize_current = true; } if should_capitalize_current { @@ -47,7 +47,7 @@ pub fn smart_case_conversion( } } else { should_capitalize_current = true; - maybe_add_separator(); + add_separator_if_needed(prev, buf); } prev = Some(current); }