From 3aa47c53702ab66c77ff614d42391a76a9c31fa4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Veli=20Tasal=C4=B1?= Date: Wed, 19 Jan 2022 14:49:54 +0300 Subject: [PATCH 1/3] gsettings: Add 'always' option to 'wrap-text' set. This converts the setting from a boolean type to a string type with the possible values being 'always', 'whitespace', and 'never'. --- data/gsettings/org.gnome.builder.editor.gschema.xml | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/data/gsettings/org.gnome.builder.editor.gschema.xml b/data/gsettings/org.gnome.builder.editor.gschema.xml index e6e58faee..38fbf800b 100644 --- a/data/gsettings/org.gnome.builder.editor.gschema.xml +++ b/data/gsettings/org.gnome.builder.editor.gschema.xml @@ -95,10 +95,15 @@ Overscroll The number of lines to scroll beyond the end of the buffer. - - false + + + + + + + 'never' Wrap Text - If enabled, Builder will automatically wrap text so all of the line text is visible. + The way to wrap a long line of text for a better visibility. true -- GitLab From 2794de4a478184199ab8f4e157d2300cb98de894 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Veli=20Tasal=C4=B1?= Date: Wed, 19 Jan 2022 15:12:16 +0300 Subject: [PATCH 2/3] libide-editor: Treat 'wrap-text' setting as string Since 'wrap-text' setting is a string now, this change loads the correct value accordingly. --- src/libide/editor/ide-editor-page-settings.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/libide/editor/ide-editor-page-settings.c b/src/libide/editor/ide-editor-page-settings.c index 00d852068..0b4e72524 100644 --- a/src/libide/editor/ide-editor-page-settings.c +++ b/src/libide/editor/ide-editor-page-settings.c @@ -43,7 +43,11 @@ get_wrap_mode (GValue *value, GVariant *variant, gpointer user_data) { - if (g_variant_get_boolean (variant)) + const gchar *wrap_mode = g_variant_get_string (variant, NULL); + + if (!g_strcmp0 (wrap_mode, "always")) + g_value_set_enum (value, GTK_WRAP_WORD_CHAR); + else if (!g_strcmp0 (wrap_mode, "whitespace")) g_value_set_enum (value, GTK_WRAP_WORD); else g_value_set_enum (value, GTK_WRAP_NONE); -- GitLab From 1743e4d991ca9772188afc94c5dd013ef48b9166 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Veli=20Tasal=C4=B1?= Date: Wed, 19 Jan 2022 15:01:39 +0300 Subject: [PATCH 3/3] libide-gui: Show 'wrap-text' setting as a choice With the new options being 'always', 'whitespace', and 'never', this moves the 'wrap-text' setting to a separate card where it can display those options. --- src/libide/gui/ide-preferences-builtin.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/libide/gui/ide-preferences-builtin.c b/src/libide/gui/ide-preferences-builtin.c index 2ad7f5f50..456d6d575 100644 --- a/src/libide/gui/ide-preferences-builtin.c +++ b/src/libide/gui/ide-preferences-builtin.c @@ -159,10 +159,14 @@ ide_preferences_builtin_register_editor (DzlPreferences *preferences) dzl_preferences_add_list_group (preferences, "editor", "position", _("Cursor"), GTK_SELECTION_NONE, 0); dzl_preferences_add_switch (preferences, "editor", "position", "org.gnome.builder.editor", "restore-insert-mark", NULL, NULL, _("Restore cursor position"), _("Restore cursor position when a file is reopened"), NULL, 0); - dzl_preferences_add_switch (preferences, "editor", "position", "org.gnome.builder.editor", "wrap-text", NULL, NULL, _("Enable text wrapping"), _("Wrap text that is too wide to display"), NULL, 5); dzl_preferences_add_spin_button (preferences, "editor", "position", "org.gnome.builder.editor", "scroll-offset", NULL, _("Scroll Offset"), _("Minimum number of lines to keep above and below the cursor"), NULL, 10); dzl_preferences_add_spin_button (preferences, "editor", "position", "org.gnome.builder.editor", "overscroll", NULL, _("Overscroll"), _("Allow the editor to scroll past the end of the buffer"), NULL, 20); + dzl_preferences_add_list_group (preferences, "editor", "text-wrapping", _("Text Wrapping"), GTK_SELECTION_NONE, 0); + dzl_preferences_add_radio (preferences, "editor", "text-wrapping", "org.gnome.builder.editor", "wrap-text", NULL, "\"never\"", _("Never"), NULL, NULL, 0); + dzl_preferences_add_radio (preferences, "editor", "text-wrapping", "org.gnome.builder.editor", "wrap-text", NULL, "\"whitespace\"", _("In Between Words"), NULL, NULL, 0); + dzl_preferences_add_radio (preferences, "editor", "text-wrapping", "org.gnome.builder.editor", "wrap-text", NULL, "\"always\"", _("Always"), NULL, NULL, 0); + dzl_preferences_add_list_group (preferences, "editor", "line", _("Line Information"), GTK_SELECTION_NONE, 50); dzl_preferences_add_switch (preferences, "editor", "line", "org.gnome.builder.editor", "show-line-numbers", NULL, NULL, _("Line numbers"), _("Show line number at beginning of each line"), NULL, 0); dzl_preferences_add_switch (preferences, "editor", "line", "org.gnome.builder.editor", "show-relative-line-numbers", NULL, NULL, _("Relative line numbers"), _("Show line numbers relative to the cursor line"), NULL, 0); -- GitLab