[Geany-Devel] pull request on GitHub, to add GeanyHighlightSelectedWords, into Geany Plugins
Thomas Martitz
kugel at xxxxx
Thu Jul 9 05:23:27 UTC 2015
Am 09.07.2015 um 04:28 schrieb Steve:
> On Jul 8, 2015 7:18 PM, Matthew Brush <mbrush at codebrainz.ca> wrote:
>> On 2015-07-08 10:57 AM, Steven Blatnick wrote:
>>> So I've finally got a chance to look at my non-API calls. I was able to
>>> code around most of them, but there are two that would be much easier if
>>> we could make them APIs. (I haven't pushed any of these changes to my
>>> git repo yet.) Could we consider making these API?
>>>
>>> * keybindings_load_keyfile - I dynamically add/remove a variable
>>> number of plugin keybindings based on the plugin settings, so this
>>> allows me to refresh the results easily. This allows my
>>> external-tools plugin to have any number of tools with each their
>>> own keybinding. Otherwise, most plugins have a set number of bindings.
>> This sounds dubious.
>>
>> I assume you're talking about `external-tools` plugin? Maybe I don't
>> understand the code enough, but it looks to me like it's just leaking
>> GeanyKeyGroups in `reload_tools()` and then calling
>> `keybindings_load_keyfile()` happens to reload the key group it newly
>> created?
>>
>> I completely agree there needs to be a way to dynamically add/remove
>> keybindings, but I'm not sure we should promote this way if I understand
>> it correctly. IMO, it would be much better to fix Geany.
> I agree. Maybe a reload_plugin type function? I saw a similar problem in gedit plugins, where you have to restart the editor for some things to take effect. And you're right, if i remember correctly, I just want to be able to reload my own shortcuts, and the existing call does them all, which is overkill to say the least.
Remember that plugin_set_key_group() can be called repeatedly. Calling
it again will simply clear all existing keybindings, then you can start
over again with keybindings_set_item().
So it looks like this can be achieved with current Geany.
>>> * keybindings_lookup_item - I know keybindings_get_item is available
>>> already, but I am attempting to look up a core group keybinding and
>>> not plugin's own keybindings.
>> This sounds reasonable, though I think it would be better if made public
>> to rename it to something like `keybindings_get_builtin_item()` or
>> something. Also I think we should change the signature to use the
>> correct types (those enums we already expose).
> Alternatively, is there an event i can tie in to? Basically the issue here is in focusing on the side panel or bottom panel, the focus lands in the wrong place to then capture ctrl+pg_up/down to switch notebook tabs. For example, when focusing my panel in external-tools, I need the focus to update to the read-only text field instead of the notebook tab label. I know I can use tab, but I'm trying to make the usage fluid.
Not sure I completely understood this, but this sounds very much like
not a keybinding issue.
The expected behavior is that ctrl+tab and ctrl+shift+tab switch the
notebook page of whatever notebook their are in (the inner-most notebook
in case of nested ones - this is sometimes inconvinient).
So if the sidebar is focussed, then ctrl+tab will switch pages in the
sidebar.
But I don't fully understand what's the problem with this here. Where is
this field you want to focus, is it not part of the youor sidebar panel?
>
>>> * keybindings_dialog_show_prefs_scroll - I remember someone saying the
>>> "Configure Plugins" window would have a button to this already in a
>>> later version, but I still don't see it. I only need this API if
>>> the button isn't added.
>>>
>> Could probably make such a button/link use the same code as the
>> "Keybindings" button in the Plugin Manager dialog, since it does just
>> that. It might be a bit awkward UI-wise though.
> I'm not sure why that would be awkward? I'm away from the code right now, but I think this call is the same as that button, it just needs to be made an API.
I agree this button would make some sense in the configuration dialog.
>>> Let me know if this is possible or how I should proceed. I use geany
>>> with my plugins daily, and can't upgrade my code base until my plugins
>>> are working.
>>>
>> Best is to make a PR with the changes you want. Second best is to raise
>> an Issue and hope somebody else wants them enough to do it.
> Ok, thanks! I'll see what I can do based on the feedback.
>
> Steve
>
>
Best regards
More information about the Devel
mailing list