geany / geany-plugins

The combined Geany Plugins collection
http://plugins.geany.org/
581 stars 262 forks source link

Feature request - extend plugin Save Actions - code fixers #1319

Closed StrayFeral closed 3 months ago

StrayFeral commented 3 months ago

I want in the settings for SaveActions to specify few code-fixers for the current language and run them all automatically upon file Save.

For example for Python I use "black" and "isort" - I want that I use them for Python and have SaveActions auto-run them in background for me on each file save.

elextr commented 3 months ago

A well written pull request might be accepted by the Save actions maintainer.

StrayFeral commented 3 months ago

As you mentioned in #3799 as a workaround, on linux several commands could be executed by separating with semi-colon. So I did it.

So this now works for me as a workaround. However I still need a little help - I don't understand how Geany decides to automatically assign a keybinding to a certain menu item. For example the Lint build menu command automatically got F9 assigned to it.

Is there a way for me to specify a keybinding to a certain menu item OR at least could you let me know how Geany does automatically this, because I want my new "python formatting" menu item to get a keybinding. Point is - until I wait for someone to implement this in the "AutoSave actions" (if ever implemented), to have at least being run by a keystroke, rather than clicking with the mouse trough the menu.

So in my situation I have a build menu item "_Pythonic format" (written exactly like this) and at least I want to execute it with let's say F10 or CTRL+F9, something like this.

Hope you could help. Thanks

By the way this is exactly what my Python build menu is: [build-menu] FT_01_LB=_Lint FT_01_CM=flake8 "%f";mypy "%f" FT_01_WD= FT_02_LB= FT_02_CM= FT_02_WD= EX_01_LB=_Pythonic format EX_01_CM=black "%f";isort "%f" EX_01_WD=

StrayFeral commented 3 months ago

PS: I experimented by moving the _Pythonic format from he EX_01_blah to FT_02_blah (no idea what FT and EX stand for). Result is the menu item just got under "Lint", but no keybinding assigned. I tried also Edit > Preferences > Keybindings, but I don't see it there.

Hope you could help.

elextr commented 3 months ago

Would be better if you didn't play with files you don't understand, just use the GUI "set build commands" menu items.

See "Edit->preferences->keybindings" for setting keybindings.

StrayFeral commented 3 months ago

Yes, I told you I was looking there, but I don't see my menu item there.

Also there is no "New" button, there is only "Change" button which means I could only change existing menu items.

In the entire "Build" menu my item is not there.

eht16 commented 3 months ago

Duplicate of #3295. There are some ideas on how to implement it but it still needs someone to do it :).

elextr commented 3 months ago

@StrayFeral adding extra build menu entries is possible but is not dynamic, look at the Geany wiki, there is a small thesis on configuring the build menu, it even explains the file format so after studying that you are qualified to edit it if you really need to ;-).

Note that due to limitations of the implementation of the keybinding prefs as a fixed menu it is not possible to bind shortcuts to additional build items, but you can use accelerators.