@elextr @codebrainz what do you think about the ABI break?
TODO: check which bugs (if any) are fixed by this update. You can view, comment on, or merge this pull request online at:
https://github.com/geany/geany/pull/1914
-- Commit Summary --
* Add a few extra hints in the Scintilla update script * Update Scintilla to version 3.10.0 * Update Diff styles for new Scintilla version
-- File Changes --
M data/filedefs/filetypes.diff (8) M plugins/export.c (10) M scintilla/License.txt (28) M scintilla/Makefile.am (6) M scintilla/gtk/Converter.h (4) M scintilla/gtk/PlatGTK.cxx (280) M scintilla/gtk/ScintillaGTK.cxx (183) M scintilla/gtk/ScintillaGTK.h (17) M scintilla/gtk/ScintillaGTKAccessible.cxx (7) M scintilla/gtk/ScintillaGTKAccessible.h (6) M scintilla/gtk/scintilla-marshal.c (33) M scintilla/gtk/scintilla-marshal.h (44) M scintilla/gtk/scintilla-marshal.list (4) M scintilla/include/ILexer.h (22) A scintilla/include/ILoader.h (21) M scintilla/include/Platform.h (287) M scintilla/include/SciLexer.h (14) M scintilla/include/Sci_Position.h (12) M scintilla/include/Scintilla.h (26) M scintilla/include/Scintilla.iface (85) M scintilla/lexers/LexAbaqus.cxx (2) M scintilla/lexers/LexAda.cxx (2) M scintilla/lexers/LexAsm.cxx (5) M scintilla/lexers/LexBash.cxx (2) M scintilla/lexers/LexBasic.cxx (5) M scintilla/lexers/LexBatch.cxx (2) M scintilla/lexers/LexCOBOL.cxx (2) M scintilla/lexers/LexCPP.cxx (183) M scintilla/lexers/LexCSS.cxx (6) M scintilla/lexers/LexCaml.cxx (7) M scintilla/lexers/LexCmake.cxx (2) M scintilla/lexers/LexCoffeeScript.cxx (7) M scintilla/lexers/LexD.cxx (5) M scintilla/lexers/LexDiff.cxx (10) M scintilla/lexers/LexErlang.cxx (7) M scintilla/lexers/LexForth.cxx (2) M scintilla/lexers/LexFortran.cxx (16) M scintilla/lexers/LexHTML.cxx (818) M scintilla/lexers/LexHaskell.cxx (5) M scintilla/lexers/LexLaTeX.cxx (4) M scintilla/lexers/LexLisp.cxx (2) M scintilla/lexers/LexLua.cxx (184) M scintilla/lexers/LexMake.cxx (2) M scintilla/lexers/LexMarkdown.cxx (2) M scintilla/lexers/LexMatlab.cxx (29) M scintilla/lexers/LexNsis.cxx (2) M scintilla/lexers/LexNull.cxx (2) M scintilla/lexers/LexPO.cxx (2) M scintilla/lexers/LexPascal.cxx (2) M scintilla/lexers/LexPerl.cxx (18) M scintilla/lexers/LexPowerShell.cxx (2) M scintilla/lexers/LexProps.cxx (2) M scintilla/lexers/LexPython.cxx (53) M scintilla/lexers/LexR.cxx (2) M scintilla/lexers/LexRuby.cxx (4) M scintilla/lexers/LexRust.cxx (11) M scintilla/lexers/LexSQL.cxx (7) M scintilla/lexers/LexTCL.cxx (3) M scintilla/lexers/LexTxt2tags.cxx (2) M scintilla/lexers/LexVHDL.cxx (103) M scintilla/lexers/LexVerilog.cxx (5) M scintilla/lexers/LexYAML.cxx (2) M scintilla/lexlib/Accessor.cxx (2) M scintilla/lexlib/Accessor.h (4) M scintilla/lexlib/CharacterCategory.cxx (9) M scintilla/lexlib/CharacterCategory.h (4) M scintilla/lexlib/CharacterSet.cxx (14) M scintilla/lexlib/CharacterSet.h (16) A scintilla/lexlib/DefaultLexer.cxx (125) A scintilla/lexlib/DefaultLexer.h (51) M scintilla/lexlib/LexAccessor.h (18) M scintilla/lexlib/LexerBase.cxx (65) M scintilla/lexlib/LexerBase.h (46) M scintilla/lexlib/LexerModule.cxx (35) M scintilla/lexlib/LexerModule.h (33) M scintilla/lexlib/LexerNoExceptions.cxx (2) M scintilla/lexlib/LexerNoExceptions.h (12) M scintilla/lexlib/LexerSimple.cxx (6) M scintilla/lexlib/LexerSimple.h (10) M scintilla/lexlib/OptionSet.h (4) M scintilla/lexlib/PropSetSimple.cxx (36) M scintilla/lexlib/PropSetSimple.h (6) M scintilla/lexlib/SparseState.h (22) M scintilla/lexlib/StringCopy.h (4) M scintilla/lexlib/StyleContext.cxx (8) M scintilla/lexlib/StyleContext.h (17) M scintilla/lexlib/SubStyles.h (38) M scintilla/lexlib/WordList.cxx (14) M scintilla/lexlib/WordList.h (4) M scintilla/scintilla_changes.patch (4) M scintilla/src/AutoComplete.cxx (17) M scintilla/src/AutoComplete.h (18) M scintilla/src/CallTip.cxx (53) M scintilla/src/CallTip.h (8) M scintilla/src/CaseConvert.cxx (435) M scintilla/src/CaseConvert.h (4) M scintilla/src/CaseFolder.cxx (5) M scintilla/src/CaseFolder.h (6) M scintilla/src/Catalogue.cxx (6) M scintilla/src/Catalogue.h (6) M scintilla/src/CellBuffer.cxx (215) M scintilla/src/CellBuffer.h (64) M scintilla/src/CharClassify.cxx (4) M scintilla/src/CharClassify.h (4) M scintilla/src/ContractionState.cxx (274) M scintilla/src/ContractionState.h (78) A scintilla/src/DBCS.cxx (42) A scintilla/src/DBCS.h (17) M scintilla/src/Decoration.cxx (226) M scintilla/src/Decoration.h (86) M scintilla/src/Document.cxx (717) M scintilla/src/Document.h (181) M scintilla/src/EditModel.cxx (10) M scintilla/src/EditModel.h (10) M scintilla/src/EditView.cxx (430) M scintilla/src/EditView.h (26) M scintilla/src/Editor.cxx (1432) M scintilla/src/Editor.h (86) A scintilla/src/ElapsedPeriod.h (35) M scintilla/src/ExternalLexer.cxx (4) M scintilla/src/ExternalLexer.h (13) M scintilla/src/FontQuality.h (4) M scintilla/src/Indicator.cxx (132) M scintilla/src/Indicator.h (4) A scintilla/src/IntegerRectangle.h (29) M scintilla/src/KeyMap.cxx (3) M scintilla/src/KeyMap.h (4) M scintilla/src/LineMarker.cxx (137) M scintilla/src/LineMarker.h (46) M scintilla/src/MarginView.cxx (80) M scintilla/src/MarginView.h (4) M scintilla/src/Partitioning.h (87) M scintilla/src/PerLine.cxx (26) M scintilla/src/PerLine.h (44) M scintilla/src/Position.h (15) M scintilla/src/PositionCache.cxx (113) M scintilla/src/PositionCache.h (45) M scintilla/src/RESearch.cxx (48) M scintilla/src/RESearch.h (12) M scintilla/src/RunStyles.cxx (142) M scintilla/src/RunStyles.h (59) M scintilla/src/ScintillaBase.cxx (210) M scintilla/src/ScintillaBase.h (20) M scintilla/src/Selection.cxx (12) M scintilla/src/Selection.h (4) M scintilla/src/SparseVector.h (58) M scintilla/src/SplitVector.h (91) M scintilla/src/Style.cxx (12) M scintilla/src/Style.h (18) M scintilla/src/UniConversion.cxx (350) M scintilla/src/UniConversion.h (42) M scintilla/src/UniqueString.h (4) M scintilla/src/ViewStyle.cxx (21) M scintilla/src/ViewStyle.h (16) M scintilla/src/XPM.cxx (59) M scintilla/src/XPM.h (25) M scintilla/version.txt (2) M scripts/update-scintilla.sh (5) M src/highlighting.c (2) M src/highlightingmappings.h (20) M src/plugindata.h (4)
-- Patch Links --
https://github.com/geany/geany/pull/1914.patch https://github.com/geany/geany/pull/1914.diff
WFM (at least with C++) will continue to test
@b4n why do you suggest an ABI change? Clearly if any Scintilla enums or offsets visible to plugins might have changed (other than at the end) then yeah ABI change needed to avoid risk.
@elextr see the message in https://github.com/geany/geany/pull/1914/commits/3fa7576e13e129900a6e0acbd54... To have those, one needs to define `INCLUDE_DEPRECATED_FEATURES` when including `Scintilla.h` *and* when building Scintilla so it knows these messages.
Ok, so ABI change to force re-compile, which will then fail without a specially built Geany is fine to handle removal.
I have some questions, with numbers for a more conveniently answer: 1) Is this PR for version 1.34? 2) Maybe approximate release time of 1.34 is already known? 3) Is [PR #1752](https://github.com/geany/geany/pull/1752) has a chance? Or hardly? (I update it from time to time and this PR will require a little more work, but, perhaps, in vain?)
P.S. And as I see ```Scintilla.h``` and ```Scintilla.iface ``` were updated and it may require to update the list of supported ```SCI_*``` message for GeanyLua plugin (for ```geany.scintilla()```).
@Skif-off 1.34 is due https://github.com/geany/geany/milestone/12 ... oh wait, missed it :)
Since its been several releases since Scintilla has been updated probably this indeed should be included in 1.34, not sure what else is likely to make it, depends on peoples time availability.
If anybody notices plugins that need changing to match this Scintilla then they should ping the maintainer I guess.
About ABI and API... I checked Geany, all default plugins and third-party plugins from https://plugins.geany.org and [Peasy](https://github.com/kugel-/peasy), I found ```SCI_*STYLEBITS*``` in: 1) ```geanylua/glspi_sci.h```, but GeanyLua don't use these messages, this file just have the list of available messages for ```geany.scintilla()``` (sends a ```SCI_*``` message directly to the Scintilla widget of the active document), we just need to update ```geanylua/glspi_sci.h``` and it will disappear. Well, this file needs to be updated after each update of Scintilla. 2) ```peasy/api/geany-scintilla-tmp-1.0.vapì```: as I understood this file can be regenerated too.
I also checked Geany and default plugins by numeric values of messages ```SCI_*STYLEBITS*``` (2090, 2091, 4011).
I.e. changes of ABI and API are not required. Or I'm wrong, because I can not check custom Python and Lua scripts too?
P.S. GeanyLua currently has no maintainer, but I like it easy plugin, my last change is [adding support command "Strip Trailing Spaces"](https://github.com/geany/geany-plugins/pull/759) and I think I can update the```geanylua/glspi_sci.h``` and make PR after updating the Scintilla (also Scintilla 3.10.0 has new ```SCI_*``` messages and other changes, that require update ```glspi_sci.h```).
@b4n, I have been using this for several weeks no problems, since nobody else seems like they will test it you might as well commit it.
@b4n, whats holding this up from simply being committed?
@elextr no, I just got sidetracked by life.
@Skif-off while in practice it might be ok-ish to just drop the messages and modify those users, it's not really a good thing to rely on because we can't be sure we caught all cases (what about unknown third party plugins?), and is more generally not a safe approach to compatibility break where the safe path is usually the best one. And here the "problem" it causes is that plugins have to be recompiled, which usually isn't much of a big deal.
I just got sidetracked by life.
ditto
@b4n, Just to be sure, your TODO in the OP is outside this PR? So I can just commit as is?
@elextr ideally the merge commit (or the update commit itself) would reference issues this fixes, but it can be done later on too I guess.
You mean your bash script doesn't have AI capabilities to work it out? :grin:
Ummm, actually how do you find out what it fixes, for all the languages you don't use?
Merged #1914 into master.
@elextr I usually either check the Scintilla history to see what changed or simply look for open issues that could have been fixed. Usually it's not so hard because there's not a huge delta, this time it's a little trickier -- and I only found 1 to close.
github-comments@lists.geany.org