-
Notifications
You must be signed in to change notification settings - Fork 609
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Update Scintilla to 5.3.7 and Lexilla to 5.2.7 #3551
Conversation
data/filedefs/filetypes.python.in
Outdated
@@ -21,6 +21,7 @@ fstring=string_1 | |||
fcharacter=character | |||
ftriple=string_2 | |||
ftripledouble=string_2 | |||
attribute=identifier_1ö |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
ö
:)
@kugel- don't forget this, fixes crasher in geany/geany-plugins#1272 |
I would defer to @zufuliu's patch as being simpler and slightly optimizing the iteration count. IIUC, it's Geany's policy to only consume upstream patches anyway. |
Speaking of filedefs, has anyone had a chance to look at the suite of new properties the shell lexer acquired in recent versions? Most of them are for embedded variables, for example inside here docs: The command substitution preference also became a set of enumerated options:
|
You should be able to set options in the |
Scintilla 5.3.7 was released including the fix. I'll bump to that version. |
@eht16 do you know what's wrong with the Windows CI? |
ScintillaOrg/lexilla#206 fixed after the 5.2.7 release. I did not backport the fix. I think R is not relevant enough to carry an additional change to Lexilla, or is it? |
I'm not sure "relevant" is well defined, thats a personal judgement depending if you use R :-). I would think only patches that fix crashes need to be carried outside Scintilla releases, thats the only reason I mentioned the one above. |
No :(. |
@eht16 what version of g++/libstdc++ is used for windows, nowhere does the version get printed in configure or build, grrrr? The CI build is now running but failing when it can't find geany/scintilla/src/Editor.cxx Line 29 in e4feb5c
|
AFAIK scintilla needs C++17 since version 4? |
Yes, but there were "C++17 compliant(ish)" and "really C++17 compliant" versions of stdlibs. Scintilla didn't start using threading and futures and other concurrency features until these latest few versions, and older libraries might not support them. At least thats the only reason I can think of that it gives the current errors. But as I said |
In https://github.com/geany/geany/actions/runs/6322193707/job/17167381804?pr=3551#step:9:23 we show basic build environment information. Adding the gcc/g++ version is easy, maybe also the libstdc++ version as well. Anything else you are missing? Is gcc 10 fine in general?
It's running only because I added a workaround in geany/infrastructure#10 to the image build which worked and I accidentally pushed the resulting image to the registry, so it can now be used for other builds. This is OK for the moment but I would still like to know the background of the /etc/mtab problem. |
On an old machine (note to self: upgrade it) linux I really don't know what is wrong with the mingw build at this point. Edit:
👍 Not aware of anything else. |
Me neither.
Will do later. |
The build failures are not because the used compiler is too old but it's missing features: https://sourceforge.net/p/mingw-w64/bugs/959/ #3568 changes the used cross compiler toolchain to its "posix" variant which has all necessary C++ features and so the build will succeed. I added there some more information about the used compiler to the build log. |
@kugel- @elextr should we include the patch from https://groups.google.com/g/scintilla-interest/c/_tiE_nSaiG4/m/v0e8lzTjAQAJ here? I'd say yes because the next Scintilla release might be after the upcoming Geany release and the issue might also affect Geany users. |
Apart from that (we can merge that patch individually if we agree on it), is there anything blocking? The PR adds new string thanks to the change history feature so need to merge before the string freeze |
I'm fine with merge. The failed Windows CI build is handled seperately. Only one minor thing, I guess we should bump plugin API version because |
@eht16 did it build ok on "real" windows, preferably whatever is going to be used to make the release so we know that will be ok? Otherwise I'm fine with it, it works for me on Linux. |
Yes, it builds fine on native Windows as there the compiler from MSYS2
is used.
Sorry forgot to mention this, all the build problems are
specific to the used cross compiler toolchain used in the CI builds.
|
Fine. I'll merge and bump the plugin API separately. Regarding https://groups.google.com/g/scintilla-interest/c/_tiE_nSaiG4/m/v0e8lzTjAQAJ, I think it's a bit too early to jump on that patch. The problem seems to an extreme edge case and the proposed solution is not yet released or even in Scintilla mainline. |
Yes agreed, and if it is a problem the changebars can be turned off in prefs. |
Notable changes since 5.1.5 - multithreaded layouting and line wrapping. Neil says this can lead to dramatic improvements. Disabled by default, see SCI_SETLAYOUTTHREADS (i.e. we don't use it yet) - New APIs to support 64-bit document positions on Win32: SCI_GETSTYLEDTEXTFULL, SCI_GETTEXTRANGEFULL, SCI_FINDTEXTFULL, and SCI_FORMATRANGEFULL We should move should move to these APIs, as the predecessors will be deprecated sooner or later. Not sure if it affects GTK-backend on win32 as well? - Change bar (will be enabled in a separate commit) Also update Lexilla to 5.2.7, changes since 5.1.4: - Tons of LexBash improvements - Also numerous improvements to languages (Ruby, Matlab, F# and many more)
"attribute" is for highlighting object attributes or methods, i.e. to style foo and bar differently in foo.bar. Also set lexer properties to allow scintilla using different styles. See ScintillaOrg/lexilla#49
%i, %I, %w and %s are newly recognized by Scintilla. See also: https://docs.ruby-lang.org/en/master/syntax/literals_rdoc.html#label-Percent+Literals
Note:With escapes there is still an issue, thus we disable it for now via lexer properties. See also: ScintillaOrg/lexilla#206
While at it, fix annotation style. Somehow an earlier lexilla import falsely used decorator in filetypes.gdscript.
We previously imported the README but did not keep it up-to-date. This was adding noise to the diff to pristine scintilla.
Makes Geany feel a litttle bit more modern. Can be enabled/disabled via Prefs. Default is to show the change history in the markers margin. Note: Scintilla tracks only its own change history and is not connected to any VCS, unlike the git-changebar plugin. Also, change history is lost when the document is closed and re-opened.
EditorPrefs was extended and scintilla was updated. Be helpful and allow plugins to detect this.
I'm a tad late to the party (as usual), but I don't think it should be enabled by default. Here's a few reasons:
|
Not saying it's common, but AFAIR bulk search & replace will do that (potentially massively change lines from the end to the start) |
I guess Neil added this because somebody wanted it. I can see that there are times when knowing what was changed in a session is useful. Since last save is maybe less useful since most IDEs have autosave and lots of people seem to like it. But as @b4n points out there are operations that can produce unusable results when blindly recording lines edited since session start. Other IDEs (the ones I tested) show diffs to git, not just the session, thats probably more useful. Maybe, depends how good the diff algorithm is, I'm sure we all have seen excessive github diffs for small changes. Styling just needs "somebody" to add settings for the relevant marker and indicator types to the colour schemes files. Anyway, its in Scintilla, we might as well make it available to users, the only question is by default or not. I don't have a strong feeling either way. |
After having used the change history for a few days now, I also think it might be better disabled by default so users should enable it explicitly if desired. @kugel- I will take care of updated screenshots seperately. |
"Change history" docs will be added in #3593. |
Notable changes since 5.1.5