I just made a test build of Geany Plugins 1.22 for Windows.
A little surprisingly for me, it all worked fine on the first attempt :).
I only had problems loading the Geany-Lua plugin with some strange error
message which I didn't investigate yet:
The error message occurs on plugin loading. I'm not sure whether it is
caused by my system or something else.
If anyone wants to test it, any feedback is appreciated.
... requires an existing Geany 1.22 installation.
Get my GPG key from http://www.uvena.de/pub.asc
I saw this code in src/symbols.c at line 1917:
while (sci_get_style_at(sci, start) != fn_style
&& start < max_pos) start++;
If start >= max_pos then sci_get_style_at will be called (with out of
bounds value?) and then the loop will bail out.
I suggest that the condition is reordered as:
while (start < max_pos
&& sci_get_style_at(sci, start) != fn_style)
Then sci_get_style_at will only be called if start is less than max_pos.
It is just my humble suggestion.
this topic has been brought up already a couple of times, for example on
What do you think about dropping Waf support in Geany and in the
While I was defending Waf in Geany, I somewhat changed my mind. Not
because I don't like it anymore, but I increasingly see the efforts in
maintaining two (to be exactly three for Geany) build systems is too
much. Since the make/MSYS build system support seems to get better and
better due to Nick's and Dimitar's work on it, I thought about dropping
the Waf support. It seems nobody knows it well enough and probably
except for a few users nobody is using it.
(And obviously I don't do so much anymore and also lost a bit interest
in maintaining forever.)
The other thing is that Waf causes often problems for distro packages,
especially for the Debian folks .
So, I'd go the easy way in this case and just remove Waf. Then we only
need to maintain the autotools based build system for non-Windows
systems and the make based for Windows.
For Geany-Plugins, we would need to get something working on Windows but
maybe we could re-use Geany's make based system for Windows here.
What do you guys think?
Get my GPG key from http://www.uvena.de/pub.asc
Now that 1.22 is out, how about removing the MSYS build dependency
under Win~1? I tried to compile Geany with the default MinGW make,
without any MSYS, and there were some easily fixable problems:
cd foo && $(MAKE) -f makefile.win32 && cd ..\..
does not work, probably requires some sh. But if we depend on GNU make
(which seems to be the case, since we're using ifdef/else/endif), it's
easier and shorter to:
$(MAKE) -C foo -f makefile.win32
Linking does not work, because the stock make supports \ only for
variables, not commands. But that's even easier to fix:
= ../scintilla/scintilla.a ../tagmanager/tagmanager.a ../tagmanager/mio/mio.a
$(TARGET): $(OBJS) $(RES) $(STLIBS)
$(CXX) $(OBJS) $(RES) -o $(TARGET) $(STLIBS) $(ALL_GTK_LIBS)
with the added benefit that static library names are not repeated
There is also some inconsistency: CP = copy, but "cp -r" and "cp" at
the end of makefile. The install target can be rewritten as several
-$(MD) and non-recursive $(CP) commands, and no MSYS will be required.
RFC. If we consider this worthy, I can make the required changes.
Attached a little patch concerning the file saving dialog.
I may have missed some use cases, but it works on all cases mentioned in
the commit message.
The main point is about the âRenameâ, the unsaved file one (last commit
message line) is a bonus.
Quentin "Sardem FF7" Glidic
I'm sending my stack of patches against geany again, this time as individual patches. Here's the full list:
[PATCH 01/19] Prevent -Wmissing-prototypes report warning when compiling a plugin
[PATCH 02/19] Add signals for project options dialog opening and closing
[PATCH 03/19] Make the project menu accessible by plugins
[PATCH 04/19] Make it possible to change project patterns by plugins
[PATCH 05/19] Don't be annoying when not necessary
[PATCH 06/19] Make it possible for plugins to change the base directory of msgwindow
[PATCH 07/19] Open the file in the msgwindow even if no linenumber is specified
[PATCH 08/19] When closing tab, return to the document at the top of the MRU list
[PATCH 09/19] Use wider entry for project file path
[PATCH 10/19] New utils function to get relative path from one directory to another
[PATCH 11/19] File name in the project settings dialog shouldn't look it is editable
[PATCH 12/19] Use relative paths in the project files
[PATCH 13/19] Remove the "set" button from the project properties dialog
[PATCH 14/19] Rewrite tab switching queue
[PATCH 15/19] Do not insert --include= when the search pattern entry is empty
[PATCH 16/19] Use project patterns in the FIF dialog
[PATCH 17/19] Make the tab switching dialog a bit more useful
[PATCH 18/19] Use standard include paths for "open selected file"
[PATCH 19/19] Use per document indent sizes
Only some of them are required by gproject - others are just suggestions for improvements. I didn't explicitly distinguish between these two types of patches but it should be pretty clear from the description. There have been some minor changes since my last post - mainly the change of the FIF dialog to contain combo box for pattern selection and there are also some new patches - the detailed description is in the individual emails. Of course many of the patches are suggestions only so further discussion is welcome.
I took a look at #3041948  and did a prototype patch (attached) to
fix it. Basically it's about the behavior of the Home and End keys
regarding wrapped lines. We have configurable keybindings already, but
they don't really make the editor display-line-friendly since they don't
change the behavior of <Shift>Home and <Shift>End, aka selection extension.
Instead of repeating me, I'll quote the attached patch:
> Add setting to make Home and End keys navigate in display coordinates
> This cannot really be mapped using the keybinding because holding
> Shift together with Home or End is expected to behave exactly the
> same as without it but extending the selection; which is tricky to
> get using configurable bindings.
> For this setting to behave correctly, the Home and End keys should
> obviously not be bound to any action, so the default bidings of Home
> and End should most probably be removed. Maybe the "Go to [display]
> line start/end" actions should be removed altogether now a global
> setting can be used to choose one behavior or the other; but they can
> also be kept but unmapped by default, which would allow a user to map
> another key to this action (like <Ctrl>A and <Ctrl>E to emulate a
> Bash/Emacs-like behavior).
> Closes #3041948.
So, what do you think? Is this a correct way to fix this, or should we
rather either add (4) separate configurable bindings for extending the
selection to the start/end? Or should we add a trick to extend
selection when <Shift> is pressed together with one of the current
bindings (that's probably not a good idea in the (unlikely) case one
binds one of these actions to <Shift>Something)?
Also, should we remove the bidings if we add that? Or should be just
not bind them by default?
What about backward compatibility?
Looking forward to read you :)
PS: This uses 2 new Scintilla (not yet released) commands to respect
"smart home key" feature when dealing with display lines, so you'll need
a patch for that too -- attached.
PPS: 3rd patch is to make "move to start of display line" command
respect the "smart home" feature, too.
Here is a small patch I made to improve Verilog coding in Geany. The
patch comes from my own practice. It makes some changes to highlighting
and tag recognition. It does not change Scintilla =)
Hope to get it included =)
Hi Enrico or some other Windows dev,
Had a report on IRC from a new Windows Geany user that when they
installed Geany the C compile command was gcc -m32 “%f” -o “%e.exe”
which didn't work, but when they pressed the reset in the build
commands dialog the command changed to the normal gcc -Wall -o "%e"
"%f which worked.
Is the build command being deliberately changed on windows builds or
is it something picked up from the build environment accidently? And
if it is deliberate, it doesn't seem to work?