Rename use of C++ `template` keyword in plugin API function argument
and add `G_BEGIN_DECLS` and `G_END_DECLS` to public header files to
make them easier to include in C++ code. TagManager and Scintilla
headers already have these `extern "C"` blocks so they shouldn't
require any modifications.
The Autotools build system already adds in a `dummy.cxx` to hint
Automake into C++ linking to support Scintilla, which is quite
convenient for dynamically loading of C++ plugins at run-time into
the otherwise C-only program. The other build systems seem to also
use the correct linking.
Write an empty keybindings.conf for new users to prevent the workaround
for old defaults being written.
Also remove generated comment in keybindings.conf, this file doesn't
need an explanation as it is generated by Geany.
This provides a workaround so existing users who upgrade should now
be unaffected.
The default changed for these in commits
82769a046c6394d073cc8a32677d8d4794c12c4c and
9ae71ab6cc3bb8185939e1536ffba41beb896686, but this may be
confusing/annoying for existing users who have not edited any
keybindings.
Those commit messages were wrong about never affecting existing
users. Thanks to Lex for raising this.
Previously it was useful because `reflow_lines`, in case when selection
contained trailing newline, removed that newline from selection by
calling `sci_set_selection_end` which only works when anchor > current
cursor position (it's mentioned in Scintilla's documentation on
SCI_SETSELECTIONEND).
Now trailing newline is removed by calling `sci_deselect_last_newline`
which uses `sci_set_selection` with `start` and `end` arguments. This
function works regardless of the interposition of current cursor
position and anchor.
The code joined current line with the next one when no text is selected.
For "Join lines" command this behaviour is wrong; for "Reflow paragraph"
the case is already handled outside the `reflow_lines` function.
A slightly simplified variant of the "rewritten load startup files"
from Geany patch tracker. Does not check for CLI files when deciding
whether to load the default session.
Suppose you have project A open and want to open project B. Then the message
saying "The 'A' project is already open" displays. This is slightly confusing
and feels like if you were trying to re-open project A even though you
are opening different project. The message without 'already' looks clearer
in this context.
Rename project-dialog-create signal to project-dialog-open because now
the dialog exists all the time and the signal name is misleading. Add
project-dialog-close signal to indicate that project dialog has been closed
and plugins can remove their tabs when needed.
In addition, bump plugin API and ABI version.
If connect_proxy() get called twice, then the handlers would have been
connected twice, leading to wrongly emit activation/change signals twice
for a single input signal.
For whatever reason connect_proxy() is actually called twice for the
quick search entry on Windows (but not on Linux), so this fixes the
search entry behavior on Windows.
MacOS X seems to have slashes in the display name, which prevent the
socket file from being created. So, replace such characters that may
not appear in a filename with an underscore.
This reverts commit 7cc443e1420b77d041815a464fe5b20bc62412f4.
Showing the truncation message only when the file exists doesn't work
when writing to a network file and the connection drops out (thanks to
Lex).