Only enable smart case if the query contains an uppercase character

Nathan Sobo and Antonio Scandurra created

Co-Authored-By: Antonio Scandurra <me@as-cii.com>

Change summary

crates/language/src/outline.rs | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)

Detailed changes

crates/language/src/outline.rs 🔗

@@ -63,6 +63,7 @@ impl<T> Outline<T> {
     pub async fn search(&self, query: &str, executor: Arc<Background>) -> Vec<StringMatch> {
         let query = query.trim_start();
         let is_path_query = query.contains(' ');
+        let smart_case = query.chars().any(|c| c.is_uppercase());
         let mut matches = fuzzy::match_strings(
             if is_path_query {
                 &self.path_candidates
@@ -70,7 +71,7 @@ impl<T> Outline<T> {
                 &self.candidates
             },
             query,
-            true,
+            smart_case,
             100,
             &Default::default(),
             executor.clone(),