[Geany] Editor navigation custom keybindings

Todd Chambery todd.chambery at xxxxx
Sat Feb 5 16:23:19 UTC 2011


I've loaded the Geany source into Geany, run automake, autoconf, but I'm
getting an error:

chambery at fry:~/Temp/geany/trunk$ ./configure
./configure: line 2191: syntax error near unexpected token `geany,'
./configure: line 2191: `AM_INIT_AUTOMAKE(geany, 0.21)'


I've installed libtools and intltools.  The hacking doc is a little short on
details....

Todd

I should say (if it isn't obvious) I have no experience developing in C/C++



On Sun, Jan 30, 2011 at 8:42 PM, Lex Trotman <elextr at gmail.com> wrote:

>
>
> On 31 January 2011 12:15, Todd Chambery <todd.chambery at gmail.com> wrote:
>
>> Just browsing the Notepad++ code, it looks like this is the method to
>> update Scintilla's mappings:
>>
>> void ScintillaAccelerator::updateKeys()
>> {
>> NppParameters *pNppParam = NppParameters::getInstance();
>>  vector<ScintillaKeyMap> & map = pNppParam->getScintillaKeyList();
>>  size_t mapSize = map.size();
>> size_t index;
>>
>> for(int i = 0; i < _nrScintillas; i++)
>>  {
>> ::SendMessage(_vScintillas[i], SCI_CLEARALLCMDKEYS, 0, 0);
>>  for(size_t j = mapSize - 1; j >= 0; j--) //reverse order, top of the
>> list has highest priority
>>  {
>>  ScintillaKeyMap skm = map[j];
>> if (skm.isEnabled())
>>  { //no validating, scintilla accepts more keys
>>  size_t size = skm.getSize();
>> for(index = 0; index < size; index++)
>>  *::SendMessage(_vScintillas[i], SCI_ASSIGNCMDKEY, skm.toKeyDef(index),
>> skm.getScintillaKeyID());*
>>  }
>> if (skm.getMenuCmdID() != 0)
>>  {
>> updateMenuItemByID(skm, skm.getMenuCmdID());
>>  }
>> if (j == 0) //j is unsigned, so default method doesnt work
>>  break;
>> }
>>  }
>> }
>>
>> where they send a map of Scintilla key codes to each of the buffers?
>>
>
> Yes, Geany has a binding for sending the SCI_ASSIGNCMDKEY message but it
> isn't used anywhere.  All you need to do is write code to read the settings
> and shove them into Scintilla.*
>
> *
>
>>
>> Here is my Scintilla config from Notepad++:
>>
>>     <ScintillaKeys>
>>         <ScintKey ScintID="2302" menuCmdID="0" Ctrl="yes" Alt="yes"
>> Shift="no" Key="73">
>>             <NextKey Ctrl="yes" Alt="no" Shift="no" Key="73" />
>>         </ScintKey>
>>         <ScintKey ScintID="2300" menuCmdID="0" Ctrl="yes" Alt="yes"
>> Shift="no" Key="75">
>>             <NextKey Ctrl="yes" Alt="no" Shift="no" Key="75" />
>>         </ScintKey>
>>         <ScintKey ScintID="2308" menuCmdID="0" Ctrl="yes" Alt="no"
>> Shift="no" Key="37">
>>             <NextKey Ctrl="yes" Alt="yes" Shift="no" Key="74" />
>>         </ScintKey>
>>         <ScintKey ScintID="2310" menuCmdID="0" Ctrl="yes" Alt="no"
>> Shift="no" Key="39">
>>             <NextKey Ctrl="yes" Alt="yes" Shift="no" Key="76" />
>>         </ScintKey>
>>         <ScintKey ScintID="2307" menuCmdID="0" Ctrl="no" Alt="no"
>> Shift="yes" Key="39">
>>             <NextKey Ctrl="yes" Alt="no" Shift="yes" Key="76" />
>>         </ScintKey>
>>         <ScintKey ScintID="2337" menuCmdID="0" Ctrl="no" Alt="no"
>> Shift="no" Key="0" />
>>         <ScintKey ScintID="2338" menuCmdID="0" Ctrl="yes" Alt="no"
>> Shift="no" Key="69" />
>>         <ScintKey ScintID="2304" menuCmdID="0" Ctrl="no" Alt="no"
>> Shift="no" Key="37">
>>             <NextKey Ctrl="yes" Alt="no" Shift="no" Key="74" />
>>         </ScintKey>
>>         <ScintKey ScintID="2453" menuCmdID="0" Ctrl="no" Alt="no"
>> Shift="no" Key="36">
>>             <NextKey Ctrl="yes" Alt="no" Shift="no" Key="72" />
>>         </ScintKey>
>>         <ScintKey ScintID="2451" menuCmdID="0" Ctrl="no" Alt="no"
>> Shift="no" Key="35">
>>             <NextKey Ctrl="yes" Alt="no" Shift="no" Key="186" />
>>         </ScintKey>
>>         <ScintKey ScintID="2180" menuCmdID="42006" Ctrl="no" Alt="no"
>> Shift="no" Key="46">
>>             <NextKey Ctrl="yes" Alt="no" Shift="no" Key="68" />
>>         </ScintKey>
>>         <ScintKey ScintID="2442" menuCmdID="0" Ctrl="yes" Alt="no"
>> Shift="yes" Key="0" />
>>         <ScintKey ScintID="2311" menuCmdID="0" Ctrl="yes" Alt="yes"
>> Shift="yes" Key="76">
>>             <NextKey Ctrl="yes" Alt="no" Shift="yes" Key="39" />
>>         </ScintKey>
>>         <ScintKey ScintID="2301" menuCmdID="0" Ctrl="yes" Alt="no"
>> Shift="yes" Key="75">
>>             <NextKey Ctrl="yes" Alt="yes" Shift="yes" Key="75" />
>>         </ScintKey>
>>         <ScintKey ScintID="2303" menuCmdID="0" Ctrl="yes" Alt="no"
>> Shift="yes" Key="73">
>>             <NextKey Ctrl="yes" Alt="yes" Shift="yes" Key="73" />
>>         </ScintKey>
>>         <ScintKey ScintID="2309" menuCmdID="0" Ctrl="yes" Alt="no"
>> Shift="yes" Key="37">
>>             <NextKey Ctrl="yes" Alt="yes" Shift="yes" Key="74" />
>>         </ScintKey>
>>         <ScintKey ScintID="2315" menuCmdID="0" Ctrl="yes" Alt="no"
>> Shift="yes" Key="186">
>>             <NextKey Ctrl="yes" Alt="yes" Shift="yes" Key="186" />
>>         </ScintKey>
>>         <ScintKey ScintID="2332" menuCmdID="0" Ctrl="no" Alt="no"
>> Shift="yes" Key="36">
>>             <NextKey Ctrl="yes" Alt="no" Shift="yes" Key="72" />
>>         </ScintKey>
>>         <ScintKey ScintID="2306" menuCmdID="0" Ctrl="no" Alt="no"
>> Shift="no" Key="39">
>>             <NextKey Ctrl="yes" Alt="no" Shift="no" Key="76" />
>>         </ScintKey>
>>         <ScintKey ScintID="2312" menuCmdID="0" Ctrl="yes" Alt="no"
>> Shift="no" Key="72">
>>             <NextKey Ctrl="yes" Alt="yes" Shift="no" Key="72" />
>>         </ScintKey>
>>         <ScintKey ScintID="2313" menuCmdID="0" Ctrl="yes" Alt="no"
>> Shift="yes" Key="72">
>>             <NextKey Ctrl="yes" Alt="yes" Shift="yes" Key="72" />
>>         </ScintKey>
>>         <ScintKey ScintID="2314" menuCmdID="0" Ctrl="yes" Alt="no"
>> Shift="no" Key="186">
>>             <NextKey Ctrl="yes" Alt="yes" Shift="no" Key="186" />
>>         </ScintKey>
>>         <ScintKey ScintID="2305" menuCmdID="0" Ctrl="no" Alt="no"
>> Shift="yes" Key="37">
>>             <NextKey Ctrl="yes" Alt="no" Shift="yes" Key="74" />
>>         </ScintKey>
>>     </ScintillaKeys>
>>
>> Do the ScintIDs look familiar?
>>
>
> Just guessing what the XML means, but Ids look ok, see Geany source
> sciltilla/include/Scintilla.h
>
> To be compatible with the rest of Geanys config files it would be best to
> use a GKeyfile format instead of Notepads XML to store the settings.
>
> Cheers
> Lex
>
>
>
>>
>> On Sat, Jan 29, 2011 at 2:32 PM, Lex Trotman <elextr at gmail.com> wrote:
>>
>>>
>>>
>>> On 30 January 2011 01:38, Todd Chambery <todd.chambery at gmail.com> wrote:
>>>
>>>> Hi all,
>>>>
>>>> Is there a mechanism for customizing the cursor movement keybindings in
>>>> Geany?
>>>>
>>>> I'm a happy Notepad++ user on WIndows, largely because
>>>> it accommodates my "inverted T" editor navigation keybindings:
>>>>
>>>> (http://chambery.subfire.org/images/keybindings-simplified.png)
>>>>
>>>> Notepad++ uses Scintilla underneath, maybe I can port these over?
>>>>
>>>
>>> Hi Todd,
>>>
>>> You are correct that these keybindings are handled by Scintilla.
>>> Scintilla can have the keybindings configured, but Geany currently does not
>>> have the ability to do it.  It could be a useful addition but someones got
>>> to do it (tm) patches welcome.
>>>
>>> Cheers
>>> Lex
>>>
>>> PS doesn't have to be a GUI configurator, just loading a file would do
>>>
>>>>
>>>> Thanks,
>>>> Todd
>>>>
>>>> _______________________________________________
>>>> Geany mailing list
>>>> Geany at uvena.de
>>>> http://lists.uvena.de/cgi-bin/mailman/listinfo/geany
>>>>
>>>>
>>>
>>> _______________________________________________
>>> Geany mailing list
>>> Geany at uvena.de
>>> http://lists.uvena.de/cgi-bin/mailman/listinfo/geany
>>>
>>>
>>
>> _______________________________________________
>> Geany mailing list
>> Geany at uvena.de
>> http://lists.uvena.de/cgi-bin/mailman/listinfo/geany
>>
>>
>
> _______________________________________________
> Geany mailing list
> Geany at uvena.de
> http://lists.uvena.de/cgi-bin/mailman/listinfo/geany
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geany.org/pipermail/users/attachments/20110205/bc9a91ce/attachment.html>


More information about the Users mailing list