[gnome-builder] auto-indent: fix indentation after "} else\n"
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] auto-indent: fix indentation after "} else\n"
- Date: Thu, 16 Oct 2014 01:26:11 +0000 (UTC)
commit f53667cad9607b30baf2d0652d769ad1fe2ff903
Author: Christian Hergert <christian hergert me>
Date: Wed Oct 15 18:26:05 2014 -0700
auto-indent: fix indentation after "} else\n"
src/editor/gb-source-auto-indenter-c.c | 43 +++++++++++++++++---------------
1 files changed, 23 insertions(+), 20 deletions(-)
---
diff --git a/src/editor/gb-source-auto-indenter-c.c b/src/editor/gb-source-auto-indenter-c.c
index e52d99b..023e1cf 100644
--- a/src/editor/gb-source-auto-indenter-c.c
+++ b/src/editor/gb-source-auto-indenter-c.c
@@ -103,6 +103,26 @@ non_space_predicate (gunichar ch,
}
static gboolean
+line_is_whitespace_until (GtkTextIter *iter)
+{
+ GtkTextIter cur;
+
+ gtk_text_buffer_get_iter_at_line (gtk_text_iter_get_buffer (iter),
+ &cur,
+ gtk_text_iter_get_line (iter));
+
+ for (;
+ gtk_text_iter_compare (&cur, iter) < 0;
+ gtk_text_iter_forward_char (&cur))
+ {
+ if (!g_unichar_isspace (gtk_text_iter_get_char (&cur)))
+ return FALSE;
+ }
+
+ return TRUE;
+}
+
+static gboolean
backward_find_keyword (GtkTextIter *iter,
const gchar *keyword,
GtkTextIter *limit)
@@ -571,6 +591,9 @@ gb_source_auto_indenter_c_indent (GbSourceAutoIndenterC *c,
{
guint offset;
+ if (!line_is_whitespace_until (&match_begin))
+ backward_to_line_first_char (&match_begin);
+
offset = gtk_text_iter_get_line_offset (&match_begin);
build_indent (c, offset + priv->scope_indent, iter, str);
GOTO (cleanup);
@@ -612,26 +635,6 @@ cleanup:
RETURN (ret);
}
-static gboolean
-line_is_whitespace_until (GtkTextIter *iter)
-{
- GtkTextIter cur;
-
- gtk_text_buffer_get_iter_at_line (gtk_text_iter_get_buffer (iter),
- &cur,
- gtk_text_iter_get_line (iter));
-
- for (;
- gtk_text_iter_compare (&cur, iter) < 0;
- gtk_text_iter_forward_char (&cur))
- {
- if (!g_unichar_isspace (gtk_text_iter_get_char (&cur)))
- return FALSE;
- }
-
- return TRUE;
-}
-
static gchar *
maybe_close_comment (GbSourceAutoIndenterC *c,
GtkTextIter *begin,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]