[gedit-code-assistance/wip/indent] [indent] Better handling of 'else'
- From: Jesse van den Kieboom <jessevdk src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gedit-code-assistance/wip/indent] [indent] Better handling of 'else'
- Date: Fri, 11 Apr 2014 15:51:20 +0000 (UTC)
commit 7f4eb5f65e94b78413446d788623ca7f54d78931
Author: Jesse van den Kieboom <jessevdk gmail com>
Date: Fri Apr 11 17:51:06 2014 +0200
[indent] Better handling of 'else'
indentbackends/c/gca-c-backend.vala | 41 ++++++++++++++++++++++++++++++----
1 files changed, 36 insertions(+), 5 deletions(-)
---
diff --git a/indentbackends/c/gca-c-backend.vala b/indentbackends/c/gca-c-backend.vala
index e833a82..567638f 100644
--- a/indentbackends/c/gca-c-backend.vala
+++ b/indentbackends/c/gca-c-backend.vala
@@ -130,16 +130,33 @@ class Backend : Object, Gca.IndentBackend
return c;
}
- bool iter_is_at_break(Gtk.TextIter iter)
+ string get_word_at_iter(Gtk.TextIter iter)
{
- var copy = iter;
+ if (!iter.ends_word())
+ {
+ return "";
+ }
- if (!copy.backward_word_start())
+ var start = iter;
+
+ if (!start.starts_word())
{
- return false;
+ if (!start.backward_word_start())
+ {
+ return "";
+ }
}
+ return start.get_text(iter);
+ }
+
+ bool iter_is_at_else(Gtk.TextIter iter)
+ {
+ return get_word_at_iter(iter) == "else";
+ }
- return copy.get_text(iter) == "break";
+ bool iter_is_at_break(Gtk.TextIter iter)
+ {
+ return get_word_at_iter(iter) == "break";
}
IndentLevel get_indent(Gedit.Document document, Gtk.TextIter place)
@@ -283,6 +300,20 @@ class Backend : Object, Gca.IndentBackend
}
break;
+ case 'e':
+ {
+ var cp = iter;
+ if (cp.forward_char() && iter_is_at_else(cp))
+ {
+ amount = get_line_indents(iter);
+
+ if (get_first_char_in_line(place) != '{')
+ {
+ amount.indent += get_indent_width();
+ }
+ }
+ break;
+ }
}
if (get_first_char_in_line(place) == '}')
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]