[gnome-builder] snippets: plumb if snippets should insert tabs.
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] snippets: plumb if snippets should insert tabs.
- Date: Sun, 7 Sep 2014 05:39:39 +0000 (UTC)
commit a3925a193df0b2b67c1bf27bcb7809a0809b1eb8
Author: Christian Hergert <christian hergert me>
Date: Sat Sep 6 22:39:28 2014 -0700
snippets: plumb if snippets should insert tabs.
src/editor/gb-source-snippet.c | 46 +++++++++++++++++++++++++++++++++++++++-
src/editor/gb-source-snippet.h | 3 ++
src/editor/gb-source-view.c | 4 +++
3 files changed, 52 insertions(+), 1 deletions(-)
---
diff --git a/src/editor/gb-source-snippet.c b/src/editor/gb-source-snippet.c
index 3f605fb..1cd3aaf 100644
--- a/src/editor/gb-source-snippet.c
+++ b/src/editor/gb-source-snippet.c
@@ -38,12 +38,14 @@ struct _GbSourceSnippetPrivate
gint tab_stop;
gint max_tab_stop;
gint current_chunk;
- gboolean inserted;
+ guint inserted : 1;
+ guint insert_spaces_instead_of_tabs : 1;
};
enum {
PROP_0,
PROP_BUFFER,
+ PROP_INSERT_SPACES_INSTEAD_OF_TABS,
PROP_MARK_BEGIN,
PROP_MARK_END,
PROP_TAB_STOP,
@@ -73,6 +75,7 @@ gb_source_snippet_copy (GbSourceSnippet *snippet)
GbSourceSnippetPrivate *priv;
GbSourceSnippetChunk *chunk;
GbSourceSnippet *ret;
+ gboolean spaces;
gint i;
ENTRY;
@@ -81,7 +84,10 @@ gb_source_snippet_copy (GbSourceSnippet *snippet)
priv = snippet->priv;
+ spaces = snippet->priv->insert_spaces_instead_of_tabs;
+
ret = g_object_new (GB_TYPE_SOURCE_SNIPPET,
+ "insert-spaces-instead-of-tabs", spaces,
"trigger", snippet->priv->trigger,
NULL);
@@ -96,6 +102,26 @@ gb_source_snippet_copy (GbSourceSnippet *snippet)
RETURN (ret);
}
+gboolean
+gb_source_snippet_get_insert_spaces_instead_of_tabs (GbSourceSnippet *snippet)
+{
+ g_return_val_if_fail (GB_IS_SOURCE_SNIPPET (snippet), FALSE);
+
+ return snippet->priv->insert_spaces_instead_of_tabs;
+}
+
+void
+gb_source_snippet_set_insert_spaces_instead_of_tabs (GbSourceSnippet *snippet,
+ gboolean insert_spaces_instead_of_tabs)
+{
+ g_return_if_fail (GB_IS_SOURCE_SNIPPET (snippet));
+
+ snippet->priv->insert_spaces_instead_of_tabs =
+ insert_spaces_instead_of_tabs;
+ g_object_notify_by_pspec (G_OBJECT (snippet),
+ gParamSpecs [PROP_INSERT_SPACES_INSTEAD_OF_TABS]);
+}
+
gint
gb_source_snippet_get_tab_stop (GbSourceSnippet *snippet)
{
@@ -893,6 +919,10 @@ gb_source_snippet_get_property (GObject *object,
g_value_set_object (value, snippet->priv->buffer);
break;
+ case PROP_INSERT_SPACES_INSTEAD_OF_TABS:
+ g_value_set_boolean (value, snippet->priv->insert_spaces_instead_of_tabs);
+ break;
+
case PROP_MARK_BEGIN:
g_value_set_object (value, snippet->priv->mark_begin);
break;
@@ -924,6 +954,11 @@ gb_source_snippet_set_property (GObject *object,
switch (prop_id)
{
+ case PROP_INSERT_SPACES_INSTEAD_OF_TABS:
+ gb_source_snippet_set_insert_spaces_instead_of_tabs (snippet,
+ g_value_get_boolean (value));
+ break;
+
case PROP_TRIGGER:
gb_source_snippet_set_trigger (snippet, g_value_get_string (value));
break;
@@ -955,6 +990,15 @@ gb_source_snippet_class_init (GbSourceSnippetClass *klass)
g_object_class_install_property (object_class, PROP_BUFFER,
gParamSpecs[PROP_BUFFER]);
+ gParamSpecs [PROP_INSERT_SPACES_INSTEAD_OF_TABS] =
+ g_param_spec_boolean ("insert-spaces-instead-of-tabs",
+ _("Insert Spaces Instead of Tabs"),
+ _("Insert Spaces Instead of Tabs"),
+ FALSE,
+ (G_PARAM_READWRITE | G_PARAM_STATIC_STRINGS));
+ g_object_class_install_property (object_class, PROP_INSERT_SPACES_INSTEAD_OF_TABS,
+ gParamSpecs [PROP_INSERT_SPACES_INSTEAD_OF_TABS]);
+
gParamSpecs[PROP_MARK_BEGIN] =
g_param_spec_object ("mark-begin",
_ ("Mark Begin"),
diff --git a/src/editor/gb-source-snippet.h b/src/editor/gb-source-snippet.h
index ba63228..c4588e9 100644
--- a/src/editor/gb-source-snippet.h
+++ b/src/editor/gb-source-snippet.h
@@ -70,6 +70,9 @@ void gb_source_snippet_get_chunk_range (GbSourceSnippet
GtkTextMark *gb_source_snippet_get_mark_begin (GbSourceSnippet *snippet);
GtkTextMark *gb_source_snippet_get_mark_end (GbSourceSnippet *snippet);
GbSourceSnippetContext *gb_source_snippet_get_context (GbSourceSnippet *snippet);
+void gb_source_snippet_set_insert_spaces_instead_of_tabs
+ (GbSourceSnippet *snippet,
+ gboolean
insert_spaces_instead_of_tabs);
G_END_DECLS
diff --git a/src/editor/gb-source-view.c b/src/editor/gb-source-view.c
index f44686a..bc0680a 100644
--- a/src/editor/gb-source-view.c
+++ b/src/editor/gb-source-view.c
@@ -367,6 +367,7 @@ gb_source_view_push_snippet (GbSourceView *view,
GtkTextMark *mark;
GtkTextIter iter;
gboolean has_more_tab_stops;
+ gboolean insert_spaces;
gchar *name;
g_return_if_fail (GB_IS_SOURCE_VIEW (view));
@@ -385,6 +386,9 @@ gb_source_view_push_snippet (GbSourceView *view,
g_queue_push_head (priv->snippets, g_object_ref (snippet));
+ insert_spaces = gtk_source_view_get_insert_spaces_instead_of_tabs (GTK_SOURCE_VIEW (view));
+ gb_source_snippet_set_insert_spaces_instead_of_tabs (snippet, insert_spaces);
+
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (view));
mark = gtk_text_buffer_get_insert (buffer);
gtk_text_buffer_get_iter_at_mark (buffer, &iter, mark);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]