Branch: refs/heads/master
Author: Enrico Tröger <enrico.troeger(a)uvena.de>
Committer: Enrico Tröger <enrico.troeger(a)uvena.de>
Date: Thu, 19 Oct 2023 15:16:28 UTC
Commit: 80fec378d9f5d6967f084c99f09ac2907fd92374
https://github.com/geany/geany/commit/80fec378d9f5d6967f084c99f09ac2907fd92…
Log Message:
-----------
Add documentation for new Scintilla feature "Change history"
Modified Paths:
--------------
doc/Makefile.am
doc/geany.txt
doc/images/edit_change_history.png
doc/meson.build
Modified: doc/Makefile.am
1 lines changed, 1 insertions(+), 0 deletions(-)
===================================================================
@@ -4,6 +4,7 @@ if INSTALL_HTML_DOCS
htmldocimagesdir = $(docdir)/html/images
dist_htmldocimages_DATA = \
images/build_menu_commands_dialog.png \
+ images/edit_change_history.png \
images/find_dialog.png \
images/find_in_files_dialog.png \
images/main_window.png \
Modified: doc/geany.txt
32 lines changed, 32 insertions(+), 0 deletions(-)
===================================================================
@@ -2419,6 +2419,38 @@ Always
Always show virtual spaces beyond the end of lines
+Change History
+``````````````
+
+The *change history* feature enables changed text in a document to be shown in the markers margin or by underlining the text.
+By default, the *change history* feature is disabled.
+
+Newly added, modified and removed lines or words are highlighted to easily track changes to the opened
+document. The changes can be shown as vertical bars in the markers margin and/or as underlines in
+the text directly.
+
+.. note::
+ This feature may use a moderate amount of memory, especially if there are many or big changes in the document.
+ Also, modification information is not kept when re-opening a document - all change markers will be lost.
+
+
+.. image:: ./images/edit_change_history.png
+
+The image shows the default visuals:
+
+* inserted characters appear with coloured underlines
+* points where characters were deleted are shown with small triangles
+* the margin shows a block indicating the overall state of the line, prioritizing the more consequential modified states
+* the states are modified (orange), saved (green), saved then reverted to modified (green-yellow), and
+ saved then reverted to original (cyan).
+
+Show in markers margin
+ Changes are shown in the markers margin as vertical bars
+
+Show as underline indicators
+ Changes are shown as underlines in the text directly
+
+
Files preferences
^^^^^^^^^^^^^^^^^
Modified: doc/images/edit_change_history.png
0 lines changed, 0 insertions(+), 0 deletions(-)
===================================================================
No diff available, check online
Modified: doc/meson.build
1 lines changed, 1 insertions(+), 0 deletions(-)
===================================================================
@@ -19,6 +19,7 @@ tarball = run_command('test', '-f', 'geany.html', check: false)
if tarball.returncode() == 0 or rst2html.found()
install_data(
'images/build_menu_commands_dialog.png',
+ 'images/edit_change_history.png',
'images/find_dialog.png',
'images/find_in_files_dialog.png',
'images/main_window.png',
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
Branch: refs/heads/master
Author: Colomban Wendling <ban(a)herbesfolles.org>
Committer: Colomban Wendling <ban(a)herbesfolles.org>
Date: Thu, 19 Oct 2023 12:24:55 UTC
Commit: f1723b3bdd194c3a2dbec293c05a0835ff20d521
https://github.com/geany/geany/commit/f1723b3bdd194c3a2dbec293c05a0835ff20d…
Log Message:
-----------
Fix crash setting an invalid lexer ID
`LexerNameFromID()` will return `NULL` for unknown IDs, and
`CreateLexer()` does not gracefully handle it, so we need to check this
on our end.
Part of #3615.
Modified Paths:
--------------
src/sciwrappers.c
Modified: src/sciwrappers.c
9 lines changed, 8 insertions(+), 1 deletions(-)
===================================================================
@@ -701,7 +701,14 @@ void sci_set_lexer(ScintillaObject *sci, guint lexer_id)
gint old = sci_get_lexer(sci);
/* TODO, LexerNameFromID() is already deprecated */
- ILexer5 *lexer = CreateLexer(LexerNameFromID(lexer_id));
+ const char *lexer_name = LexerNameFromID(lexer_id);
+ if (! lexer_name)
+ {
+ g_warning("Failed to find lexer for ID %u", lexer_id);
+ return;
+ }
+
+ ILexer5 *lexer = CreateLexer(lexer_name);
SSM(sci, SCI_SETILEXER, 0, (uintptr_t) lexer);
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
Branch: refs/heads/master
Author: Colomban Wendling <ban(a)herbesfolles.org>
Committer: Colomban Wendling <ban(a)herbesfolles.org>
Date: Wed, 18 Oct 2023 21:02:04 UTC
Commit: 4246298dd8b3c70528cdad0554000f5d54f39765
https://github.com/geany/geany/commit/4246298dd8b3c70528cdad0554000f5d54f39…
Log Message:
-----------
Fix startup files order when placing tabs next to the current one
When the `tab_order_beside` option is enabled, tabs are opened on
either side of the active tab, depending on `tab_order_ltr`, rather
than at either end.
However, when loading startup files we don't switch to the last opened
document right away, but postpone this to the very end. This affects
the order tabs are loaded, as the active one is always the first one at
this stage.
Rather than over-complicating the loading order to compensate the
various options' effect, temporarily revert to an set of options that
is easy to handle, and restore it after loading is finished. This also
simplifies the existing logic as a basic forward iteration is now
enough.
Fixes #3609.
Modified Paths:
--------------
src/keyfile.c
src/notebook.c
Modified: src/keyfile.c
17 lines changed, 1 insertions(+), 16 deletions(-)
===================================================================
@@ -1356,14 +1356,12 @@ static gboolean open_session_file(gchar **tmp, guint len)
* for all files opened within this function */
void configuration_open_files(GPtrArray *session_files)
{
- gint i;
gboolean failure = FALSE;
/* necessary to set it to TRUE for project session support */
main_status.opening_session_files++;
- i = file_prefs.tab_order_ltr ? 0 : (session_files->len - 1);
- while (TRUE)
+ for (guint i = 0; i < session_files->len; i++)
{
gchar **tmp = g_ptr_array_index(session_files, i);
guint len;
@@ -1374,19 +1372,6 @@ void configuration_open_files(GPtrArray *session_files)
failure = TRUE;
}
g_strfreev(tmp);
-
- if (file_prefs.tab_order_ltr)
- {
- i++;
- if (i >= (gint)session_files->len)
- break;
- }
- else
- {
- i--;
- if (i < 0)
- break;
- }
}
g_ptr_array_free(session_files, TRUE);
Modified: src/notebook.c
21 lines changed, 13 insertions(+), 8 deletions(-)
===================================================================
@@ -764,16 +764,21 @@ gint notebook_new_tab(GeanyDocument *this)
document_update_tab_label(this);
- if (file_prefs.tab_order_beside)
+ if (main_status.opening_session_files)
+ cur_page = -1; /* last page */
+ else if (file_prefs.tab_order_beside)
+ {
cur_page = gtk_notebook_get_current_page(GTK_NOTEBOOK(main_widgets.notebook));
+ if (file_prefs.tab_order_ltr)
+ cur_page++;
+ }
+ else if (file_prefs.tab_order_ltr)
+ cur_page = -1; /* last page */
else
- cur_page = file_prefs.tab_order_ltr ? -2 /* hack: -2 + 1 = -1, last page */ : 0;
- if (file_prefs.tab_order_ltr)
- tabnum = gtk_notebook_insert_page_menu(GTK_NOTEBOOK(main_widgets.notebook), vbox,
- ebox, NULL, cur_page + 1);
- else
- tabnum = gtk_notebook_insert_page_menu(GTK_NOTEBOOK(main_widgets.notebook), vbox,
- ebox, NULL, cur_page);
+ cur_page = 0;
+
+ tabnum = gtk_notebook_insert_page_menu(GTK_NOTEBOOK(main_widgets.notebook), vbox,
+ ebox, NULL, cur_page);
tab_count_changed();
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
Branch: refs/heads/master
Author: Frank Lanitz <frank(a)frank.uvena.de>
Committer: Frank Lanitz <frank(a)frank.uvena.de>
Date: Wed, 18 Oct 2023 19:31:10 UTC
Commit: 83c833230159ad8b3ddece4e6674ea2468a5afde
https://github.com/geany/geany/commit/83c833230159ad8b3ddece4e6674ea2468a5a…
Log Message:
-----------
Correct language code for Ukrainian language
Modified Paths:
--------------
NEWS
Modified: NEWS
2 lines changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -4,7 +4,7 @@ Geany 2.0 (unreleased)
new default and existing installations automatically use it (PR#1813).
Internationalization
- * Updated translations: cz, da, de, fr, es, kk, lv, it, nl, pt, sk, ru, uk
+ * Updated translations: cz, da, de, fr, es, kk, lv, it, nl, pt, sk, ru, ua
* Added translations: si
Geany 1.38 (October 09, 2021)
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).
Branch: refs/heads/master
Author: Jiří Techet <techet(a)gmail.com>
Committer: Jiří Techet <techet(a)gmail.com>
Date: Wed, 18 Oct 2023 09:07:21 UTC
Commit: f412636412b65394108bfd1b4c8211841cefdbd5
https://github.com/geany/geany/commit/f412636412b65394108bfd1b4c8211841cefd…
Log Message:
-----------
Change default tab_label_length from 99999 to 1000
The whole value 99999 doesn't fit into the entry which looks ugly and,
to me, somehow a rounded value like 1000 (which is still sufficient
in terms of "unlimited" number of characters in a tab) looks more pleasing.
Modified Paths:
--------------
src/ui_utils.c
Modified: src/ui_utils.c
2 lines changed, 1 insertions(+), 1 deletions(-)
===================================================================
@@ -2394,7 +2394,7 @@ void ui_init_prefs(void)
stash_group_add_boolean(group, &interface_prefs.warn_on_project_close,
"warn_on_project_close", TRUE);
stash_group_add_spin_button_integer(group, &interface_prefs.tab_label_len,
- "tab_label_length", 99999, "spin_tab_label_len");
+ "tab_label_length", 1000, "spin_tab_label_len");
}
--------------
This E-Mail was brought to you by github_commit_mail.py (Source: https://github.com/geany/infrastructure).