[gnome-builder] code-insight: create new gsettings schema for code-insight
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] code-insight: create new gsettings schema for code-insight
- Date: Sat, 16 May 2015 10:07:54 +0000 (UTC)
commit 364757632effb345f88cae618f289c1d950a5150
Author: Christian Hergert <christian hergert me>
Date: Sat May 16 03:07:28 2015 -0700
code-insight: create new gsettings schema for code-insight
This is where things like autocompletion and semantic highlighting should
live. Some, more specific language stuff might get moved around as well.
data/gsettings/Makefile.am | 2 +-
.../org.gnome.builder.code-insight.gschema.xml | 19 +++++++++++++++
.../gsettings/org.gnome.builder.editor.gschema.xml | 5 ----
.../org.gnome.builder.experimental.gschema.xml | 14 -----------
data/ui/gb-preferences-page-insight.ui | 13 ++++------
libide/c/ide-c-language.c | 13 +---------
libide/clang/ide-clang-completion-provider.c | 25 +++++++++++++++++--
libide/ctags/ide-ctags-completion-provider.c | 2 +-
po/POTFILES.in | 6 ++--
src/editor/gb-editor-frame.c | 5 +++-
10 files changed, 56 insertions(+), 48 deletions(-)
---
diff --git a/data/gsettings/Makefile.am b/data/gsettings/Makefile.am
index fc35210..2b9a442 100644
--- a/data/gsettings/Makefile.am
+++ b/data/gsettings/Makefile.am
@@ -2,7 +2,7 @@ gsettings_SCHEMAS = \
org.gnome.builder.gschema.xml \
org.gnome.builder.editor.gschema.xml \
org.gnome.builder.editor.language.gschema.xml \
- org.gnome.builder.experimental.gschema.xml \
+ org.gnome.builder.code-insight.gschema.xml \
org.gnome.builder.project-tree.gschema.xml \
$(NULL)
diff --git a/data/gsettings/org.gnome.builder.code-insight.gschema.xml
b/data/gsettings/org.gnome.builder.code-insight.gschema.xml
new file mode 100644
index 0000000..7706af4
--- /dev/null
+++ b/data/gsettings/org.gnome.builder.code-insight.gschema.xml
@@ -0,0 +1,19 @@
+<schemalist>
+ <schema id="org.gnome.builder.code-insight" path="/org/gnome/builder/code-insight/"
gettext-domain="gnome-builder">
+ <key name="clang-autocompletion" type="b">
+ <default>false</default>
+ <summary>Clang based autocompletion (Experimental)</summary>
+ <description>Use Clang for autocompletion in the C and C++ languages.</description>
+ </key>
+ <key name="ctags-autocompletion" type="b">
+ <default>true</default>
+ <summary>Ctags based autocompletion</summary>
+ <description>Use Ctags for autocompletion.</description>
+ </key>
+ <key name="word-completion" type="b">
+ <default>true</default>
+ <summary>Enable auto-completion of words in document</summary>
+ <description>If enabled, words within the current document will be available for
auto-completion.</description>
+ </key>
+ </schema>
+</schemalist>
diff --git a/data/gsettings/org.gnome.builder.editor.gschema.xml
b/data/gsettings/org.gnome.builder.editor.gschema.xml
index 9d2400d..83e0558 100644
--- a/data/gsettings/org.gnome.builder.editor.gschema.xml
+++ b/data/gsettings/org.gnome.builder.editor.gschema.xml
@@ -24,11 +24,6 @@
<summary>Restore last position</summary>
<description>Jump to the last position when reopening a file</description>
</key>
- <key name="word-completion" type="b">
- <default>true</default>
- <summary>Enable auto-completion of words in document</summary>
- <description>If enabled, words within the current document will be available for
auto-completion.</description>
- </key>
<key name="show-line-changes" type="b">
<default>true</default>
<summary>Show modified lines</summary>
diff --git a/data/ui/gb-preferences-page-insight.ui b/data/ui/gb-preferences-page-insight.ui
index 8eeee16..d94507a 100644
--- a/data/ui/gb-preferences-page-insight.ui
+++ b/data/ui/gb-preferences-page-insight.ui
@@ -26,7 +26,7 @@
<object class="GbPreferencesSwitch" id="word_autocompletion">
<property name="title" translatable="yes">Suggest Word Completion</property>
<property name="description" translatable="yes">Suggest completion of words found within all
open documents.</property>
- <property name="settings">editor_settings</property>
+ <property name="settings">insight_settings</property>
<property name="settings-schema-key">word-completion</property>
<property name="size-group">control_group</property>
<property name="visible">true</property>
@@ -34,7 +34,7 @@
</child>
<child>
<object class="GbPreferencesSwitch" id="ctags_autocompletion">
- <property name="settings">experimental_settings</property>
+ <property name="settings">insight_settings</property>
<property name="settings-schema-key">ctags-autocompletion</property>
<property name="title" translatable="yes">Suggest Completions using Ctags</property>
<property name="description" translatable="yes">Use Ctags for completions in supported
languages.</property>
@@ -44,7 +44,7 @@
</child>
<child>
<object class="GbPreferencesSwitch" id="clang_autocompletion">
- <property name="settings">experimental_settings</property>
+ <property name="settings">insight_settings</property>
<property name="settings-schema-key">clang-autocompletion</property>
<property name="title" translatable="yes">Suggest Completions using Clang
(Experimental)</property>
<property name="description" translatable="yes">Use Clang for completions in the C and C++
languages.</property>
@@ -55,11 +55,8 @@
</object>
</child>
</template>
- <object class="GSettings" id="experimental_settings">
- <property name="schema-id">org.gnome.builder.experimental</property>
- </object>
- <object class="GSettings" id="editor_settings">
- <property name="schema-id">org.gnome.builder.editor</property>
+ <object class="GSettings" id="insight_settings">
+ <property name="schema-id">org.gnome.builder.code-insight</property>
</object>
<object class="GtkSizeGroup" id="control_group">
<property name="mode">horizontal</property>
diff --git a/libide/c/ide-c-language.c b/libide/c/ide-c-language.c
index 37cd0cb..0d2c38c 100644
--- a/libide/c/ide-c-language.c
+++ b/libide/c/ide-c-language.c
@@ -48,23 +48,12 @@ static GList *
ide_c_language_get_completion_providers (IdeLanguage *language)
{
GList *providers = NULL;
- g_autoptr(GSettings) settings = NULL;
g_return_val_if_fail (IDE_IS_C_LANGUAGE (language), NULL);
providers = IDE_LANGUAGE_CLASS (ide_c_language_parent_class)->get_completion_providers (language);
-
- /*
- * Our printf/strftime completion provider.
- */
providers = g_list_append (providers, g_object_new (IDE_TYPE_C_FORMAT_PROVIDER, NULL));
-
- /*
- * Only enable clang autocompletion if the experimental feature is enabled.
- */
- settings = g_settings_new ("org.gnome.builder.experimental");
- if (g_settings_get_boolean (settings, "clang-autocompletion"))
- providers = g_list_append (providers, g_object_new (IDE_TYPE_CLANG_COMPLETION_PROVIDER, NULL));
+ providers = g_list_append (providers, g_object_new (IDE_TYPE_CLANG_COMPLETION_PROVIDER, NULL));
return providers;
}
diff --git a/libide/clang/ide-clang-completion-provider.c b/libide/clang/ide-clang-completion-provider.c
index ce03e36..8455d43 100644
--- a/libide/clang/ide-clang-completion-provider.c
+++ b/libide/clang/ide-clang-completion-provider.c
@@ -43,6 +43,7 @@ struct _IdeClangCompletionProvider
IdeSourceView *view;
GPtrArray *last_results;
GtkWidget *assistant;
+ GSettings *settings;
};
typedef struct
@@ -172,17 +173,32 @@ filter_list (GPtrArray *ar,
}
static void
+ide_clang_completion_provider_finalize (GObject *object)
+{
+ IdeClangCompletionProvider *self = (IdeClangCompletionProvider *)object;
+
+ g_clear_object (&self->settings);
+
+ G_OBJECT_CLASS (ide_clang_completion_provider_parent_class)->finalize (object);
+}
+
+static void
ide_clang_completion_provider_class_init (IdeClangCompletionProviderClass *klass)
{
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
+
+ object_class->finalize = ide_clang_completion_provider_finalize;
+
gBookManager = dh_book_manager_new ();
dh_book_manager_populate (gBookManager);
}
static void
-ide_clang_completion_provider_init (IdeClangCompletionProvider *provider)
+ide_clang_completion_provider_init (IdeClangCompletionProvider *self)
{
- provider->assistant = dh_assistant_view_new ();
- dh_assistant_view_set_book_manager (DH_ASSISTANT_VIEW (provider->assistant), gBookManager);
+ self->settings = g_settings_new ("org.gnome.builder.code-insight");
+ self->assistant = dh_assistant_view_new ();
+ dh_assistant_view_set_book_manager (DH_ASSISTANT_VIEW (self->assistant), gBookManager);
}
static gchar *
@@ -297,6 +313,9 @@ ide_clang_completion_provider_populate (GtkSourceCompletionProvider *provider,
g_assert (IDE_IS_CLANG_COMPLETION_PROVIDER (self));
+ if (!g_settings_get_boolean (self->settings, "clang-autocompletion"))
+ goto failure;
+
if (!gtk_source_completion_context_get_iter (context, &iter))
goto failure;
diff --git a/libide/ctags/ide-ctags-completion-provider.c b/libide/ctags/ide-ctags-completion-provider.c
index f2678ac..96e5fed 100644
--- a/libide/ctags/ide-ctags-completion-provider.c
+++ b/libide/ctags/ide-ctags-completion-provider.c
@@ -89,7 +89,7 @@ ide_ctags_completion_provider_init (IdeCtagsCompletionProvider *self)
self->minimum_word_size = 3;
self->indexes = g_ptr_array_new_with_free_func (g_object_unref);
- self->settings = g_settings_new ("org.gnome.builder.experimental");
+ self->settings = g_settings_new ("org.gnome.builder.code-insight");
self->icons = g_hash_table_new_full (g_str_hash, g_str_equal, g_free, g_object_unref);
settings = gtk_settings_get_default ();
diff --git a/po/POTFILES.in b/po/POTFILES.in
index abba1d1..cf3ae41 100644
--- a/po/POTFILES.in
+++ b/po/POTFILES.in
@@ -11,7 +11,7 @@
[type: gettext/glade]data/ui/gb-new-file-popover.ui
[type: gettext/glade]data/ui/gb-new-project-dialog.ui
[type: gettext/glade]data/ui/gb-preferences-page-editor.ui
-[type: gettext/glade]data/ui/gb-preferences-page-experimental.ui
+[type: gettext/glade]data/ui/gb-preferences-page-insight.ui
[type: gettext/glade]data/ui/gb-preferences-page-git.ui
[type: gettext/glade]data/ui/gb-preferences-page-keybindings.ui
[type: gettext/glade]data/ui/gb-preferences-page-language.ui
@@ -25,7 +25,7 @@
[type: gettext/glade]data/ui/gb-workbench.ui
[type: gettext/gsettings]data/gsettings/org.gnome.builder.editor.gschema.xml
[type: gettext/gsettings]data/gsettings/org.gnome.builder.editor.language.gschema.xml
-[type: gettext/gsettings]data/gsettings/org.gnome.builder.experimental.gschema.xml
+[type: gettext/gsettings]data/gsettings/org.gnome.builder.code-insight.gschema.xml
[type: gettext/gsettings]data/gsettings/org.gnome.builder.project-tree.gschema.xml
contrib/gedit/gedit-menu-stack-switcher.c
contrib/nautilus/nautilus-floating-bar.c
@@ -135,7 +135,7 @@ src/html/gb-html-view.c
src/keybindings/gb-keybindings.c
src/main.c
src/preferences/gb-preferences-page-editor.c
-src/preferences/gb-preferences-page-experimental.c
+src/preferences/gb-preferences-page-insight.c
src/preferences/gb-preferences-page-git.c
src/preferences/gb-preferences-page-keybindings.c
src/preferences/gb-preferences-page.c
diff --git a/src/editor/gb-editor-frame.c b/src/editor/gb-editor-frame.c
index 9e6f4af..59e07a0 100644
--- a/src/editor/gb-editor-frame.c
+++ b/src/editor/gb-editor-frame.c
@@ -844,6 +844,7 @@ static void
gb_editor_frame_init (GbEditorFrame *self)
{
g_autoptr(GSettings) settings = NULL;
+ g_autoptr(GSettings) insight_settings = NULL;
GtkTargetList *target_list;
gtk_widget_init_template (GTK_WIDGET (self));
@@ -860,11 +861,13 @@ gb_editor_frame_init (GbEditorFrame *self)
g_settings_bind (settings, "show-line-numbers", self->source_view, "show-line-numbers",
G_SETTINGS_BIND_GET);
g_settings_bind (settings, "smart-backspace", self->source_view, "smart-backspace", G_SETTINGS_BIND_GET);
g_settings_bind_with_mapping (settings, "smart-home-end", self->source_view, "smart-home-end",
G_SETTINGS_BIND_GET, get_smart_home_end, NULL, NULL, NULL);
- g_settings_bind (settings, "word-completion", self->source_view, "enable-word-completion",
G_SETTINGS_BIND_GET);
g_settings_bind (settings, "show-map", self, "show-map", G_SETTINGS_BIND_GET);
g_settings_bind (settings, "auto-hide-map", self, "auto-hide-map", G_SETTINGS_BIND_GET);
g_signal_connect (settings, "changed::keybindings", G_CALLBACK (keybindings_changed), self);
+ insight_settings = g_settings_new ("org.gnome.builder.code-insight");
+ g_settings_bind (insight_settings, "word-completion", self->source_view, "enable-word-completion",
G_SETTINGS_BIND_GET);
+
g_object_bind_property (self->source_view, "overwrite", self->overwrite_label, "visible",
G_BINDING_SYNC_CREATE);
g_signal_connect_object (self->source_overlay,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]