[gnome-builder] search: make search smart case sensitive



commit e47b73e8ce19865b910a6102f4718f877d18dcf1
Author: Fangwen Yu <yynyygy gmail com>
Date:   Fri Mar 4 19:51:58 2016 +0800

    search: make search smart case sensitive
    
    Now search is case sensitive when any upper case letter is
    present in the search text, otherwise it's case insensitive, This
    is the so-called smart case sensitive and also how devhelp and
    IdePatternSpec work.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=762805

 libide/ide-source-view.c |   15 +++++++++++++++
 1 files changed, 15 insertions(+), 0 deletions(-)
---
diff --git a/libide/ide-source-view.c b/libide/ide-source-view.c
index 8b4a1eb..bfb76c6 100644
--- a/libide/ide-source-view.c
+++ b/libide/ide-source-view.c
@@ -1039,12 +1039,27 @@ ide_source_view__search_settings_notify_search_text (IdeSourceView           *se
 {
   IdeSourceViewPrivate *priv = ide_source_view_get_instance_private (self);
   const gchar *search_text;
+  gboolean case_sensitive = FALSE;
 
   g_assert (IDE_IS_SOURCE_VIEW (self));
   g_assert (GTK_SOURCE_IS_SEARCH_SETTINGS (search_settings));
 
   search_text = gtk_source_search_settings_get_search_text (search_settings);
 
+  if (search_text != NULL)
+    {
+      for (const gchar *s = search_text; *s; s = g_utf8_next_char (s))
+        {
+          if (g_unichar_isupper (g_utf8_get_char (s)))
+            {
+              case_sensitive = TRUE;
+              break;
+            }
+        }
+    }
+
+  gtk_source_search_settings_set_case_sensitive (search_settings, case_sensitive);
+
   /*
    * If we have IdeSourceView:rubberband-search enabled, then we should try to
    * autoscroll to the next search result starting from our saved search mark.


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]