[gnome-builder] uncrustify: allow formatting selected ranges of text as a fragment.
- From: Christian Hergert <chergert src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-builder] uncrustify: allow formatting selected ranges of text as a fragment.
- Date: Thu, 11 Sep 2014 23:31:08 +0000 (UTC)
commit 1ef02d4f721ea3c217c987cd08d22e96fbd9e1dd
Author: Christian Hergert <christian hergert me>
Date: Thu Sep 11 16:31:02 2014 -0700
uncrustify: allow formatting selected ranges of text as a fragment.
src/editor/gb-editor-tab.c | 20 +++++++++++++-------
1 files changed, 13 insertions(+), 7 deletions(-)
---
diff --git a/src/editor/gb-editor-tab.c b/src/editor/gb-editor-tab.c
index d92377b..ec78921 100644
--- a/src/editor/gb-editor-tab.c
+++ b/src/editor/gb-editor-tab.c
@@ -277,6 +277,7 @@ gb_editor_tab_reformat (GbEditorTab *tab)
GtkTextIter end;
GtkTextIter iter;
GtkTextMark *insert;
+ gboolean fragment = TRUE;
GError *error = NULL;
gchar *input = NULL;
gchar *output = NULL;
@@ -294,7 +295,15 @@ gb_editor_tab_reformat (GbEditorTab *tab)
priv = tab->priv;
buffer = gtk_text_view_get_buffer (GTK_TEXT_VIEW (priv->source_view));
- gtk_text_buffer_get_bounds (buffer, &begin, &end);
+
+ gtk_text_buffer_get_selection_bounds (buffer, &begin, &end);
+
+ if (gtk_text_iter_compare (&begin, &end) == 0)
+ {
+ gtk_text_buffer_get_bounds (buffer, &begin, &end);
+ fragment = FALSE;
+ }
+
input = gtk_text_buffer_get_text (buffer, &begin, &end, TRUE);
insert = gtk_text_buffer_get_insert (buffer);
@@ -305,11 +314,7 @@ gb_editor_tab_reformat (GbEditorTab *tab)
language = gtk_source_buffer_get_language (GTK_SOURCE_BUFFER (buffer));
formatter = gb_source_formatter_new_from_language (language);
- if (!gb_source_formatter_format (formatter,
- input,
- FALSE,
- NULL,
- &output,
+ if (!gb_source_formatter_format (formatter, input, fragment, NULL, &output,
&error))
{
g_warning ("%s", error->message);
@@ -327,7 +332,8 @@ gb_editor_tab_reformat (GbEditorTab *tab)
* specific.
*/
- gtk_text_buffer_set_text (buffer, output, -1);
+ gtk_text_buffer_delete (buffer, &begin, &end);
+ gtk_text_buffer_insert (buffer, &begin, output, -1);
if (line_number >= gtk_text_buffer_get_line_count (buffer))
{
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]