[Geany] Editor navigation custom keybindings
Todd Chambery
todd.chambery at xxxxx
Mon Jan 31 01:15:45 UTC 2011
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?
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?
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
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.geany.org/pipermail/users/attachments/20110130/1ae1089f/attachment.html>
More information about the Users
mailing list