Fix signature of the snippets keybindings callback, properly blocking
further propagation of handled events thus avoiding possibly activating
another action (like a builtin Scintilla keybinding).
Fixes#1354.
Since the Scintilla C++ lexer started to fold on `()` [1], the code
looking up the current scope is confused whenever the function
signature spans multiple lines. Fix this by skipping fold levels that
correspond to parentheses.
Fixes#1279.
[1] https://sourceforge.net/p/scintilla/feature-requests/1138/
imported in 24f91981c057a7e212c09da66fb974c3ccc85bd6
We cannot compute the length in characters after the text has been
deleted, so we need to compute it in BEFOREDELETE. However, we need to
emit the signal once the buffer has actually changed, so we need to
cache the value in-between those events.
This restores the previous behavior as it has been on non-Windows
systems before.
Post-1.29 we will merge #1300 which implements run helper script support
for non-Windows systems more sophisticated.
Apparently using arguments instead of putting paths directly in the
script is enough for it to work on Windows, so use a simple script
instead of a program, so it's both shorter and easier to tune.
This removes all encoding issues from passing on a script to cmd.exe on
Windows, as it now uses proper wide character API there.
Not much changes on other OSes, but we don't create temporary scripts
anymore.
Try and use Unicode variants of the Windows process creation API in
order to support filenames (and possibly environment) outside the
locale codepage.
WARNING: Implications on using Unicode environment are unknown.
It might affect the called process, or not, not sure.
Instead of fiddling with the "chcp" command in the generated batch
script on Windows, convert the whole script content into the system
codepage before executing it.
This drops the self-compiled 'grep' version which caused issues
with recursive searches on Windows as well as with non-ASCII
characters in paths.
The pre-compiled 'grep' binary from MSYS2 (matching the target ABI)
seems to solve probably all of the known problems on Windows.
The only drawback is that we need to ship a few additional MSYS2
libraries on which the 'grep' binary depends.
Closes#1229 and #1260.