From 1df5cb6c0d42fb8e6d6b7fd812950db5ddd54b68 Mon Sep 17 00:00:00 2001 From: Nikita Revenco <154856872+NikitaRevenco@users.noreply.github.com> Date: Fri, 20 Dec 2024 10:31:09 +0000 Subject: [PATCH] fix: add separator on case change --- helix-core/src/case_conversion.rs | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/helix-core/src/case_conversion.rs b/helix-core/src/case_conversion.rs index 2cd13f9e7..0fb32bb83 100644 --- a/helix-core/src/case_conversion.rs +++ b/helix-core/src/case_conversion.rs @@ -144,17 +144,23 @@ pub fn to_camel_or_pascal_case_with( is_pascal: bool, ) { let mut capitalize_next = is_pascal; + let mut prev_is_lowercase = false; for c in text { if c.is_alphanumeric() { + if prev_is_lowercase && c.is_uppercase() { + capitalize_next = true; + } if capitalize_next { buf.extend(c.to_uppercase()); capitalize_next = false; } else { buf.extend(c.to_lowercase()); } + prev_is_lowercase = c.is_lowercase(); } else { capitalize_next = true; + prev_is_lowercase = false; } } } @@ -240,7 +246,7 @@ mod tests { pascal_test("HELLO WORLD", "HelloWorld"); pascal_test("HELLO-world", "HelloWorld"); pascal_test("hello WORLD ", "HelloWorld"); - // pascal_test("helloWorld", "HelloWorld"); + pascal_test("helloWorld", "HelloWorld"); } #[test]