[gnome-builder] plugins/xml-pack: fix unindent on </
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] plugins/xml-pack: fix unindent on </
- Date: Sun, 24 Jul 2022 06:50:49 +0000 (UTC)
commit 1898c8f851df3fd65c9fb97f5f6140b52370baa0
Author: Christian Hergert <chergert redhat com>
Date: Sat Jul 23 23:49:47 2022 -0700
plugins/xml-pack: fix unindent on </
This still requires fixes in GtkSourceView which I'm still preparing and
testing for the corner cases.
src/plugins/xml-pack/ide-xml-indenter.c | 13 +++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)
---
diff --git a/src/plugins/xml-pack/ide-xml-indenter.c b/src/plugins/xml-pack/ide-xml-indenter.c
index 21c4e17ec..cc57ca6ab 100644
--- a/src/plugins/xml-pack/ide-xml-indenter.c
+++ b/src/plugins/xml-pack/ide-xml-indenter.c
@@ -272,6 +272,8 @@ ide_xml_indenter_indent_backward (IdeXmlIndenter *xml,
(ch = text_iter_peek_prev_char (&tmp)) &&
((ch == ' ') || (ch == '\t')))
{
+ GtkTextIter close_tag_begin = tmp;
+
if (ch == '\t')
{
GtkTextBuffer *buffer = gtk_text_iter_get_buffer (iter);
@@ -292,8 +294,16 @@ ide_xml_indenter_indent_backward (IdeXmlIndenter *xml,
(ch != ' '))
return;
count--;
+
if (count == 0)
- *iter = tmp;
+ {
+ GtkTextBuffer *buffer = gtk_text_iter_get_buffer (iter);
+ GtkTextMark *mark = gtk_text_buffer_create_mark (buffer, NULL, iter, FALSE);
+
+ gtk_text_buffer_delete (buffer, &tmp, &close_tag_begin);
+ gtk_text_buffer_get_iter_at_mark (buffer, iter, mark);
+ gtk_text_buffer_delete_mark (buffer, mark);
+ }
}
}
}
@@ -438,7 +448,6 @@ ide_xml_indenter_indent (GtkSourceIndenter *indenter,
break;
case IDE_XML_INDENT_ACTION_INDENT_BACKWARD:
- // FIXME: can't confirm it works since this is never triggered
ide_xml_indenter_indent_backward (xml, iter);
break;
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]