Change Indent Keyboard Shortcut?
-
Interestingly, if you remove the Tab and Shift+Tab mappings on the Scintilla commands page in Shortcut Mapper, the indent stuff in the Edit menu now looks like this:
Note, no key mappings shown to the right of the commands.
So then it would seem that Tab and Shift+Tab are now totally unmapped.
BUT…trying them in an editor window I see that Tab still works. Curiouser and curiouser… Of course, maybe now it is at the point where it is just inserting a raw
\x09
. :-) -
@Alan-Kilborn said in Change Indent Keyboard Shortcut?:
Probably I am not adding new information, but the oddness of this situation made me do my own little investigation.
Thanks Alan - I surmised as much and it’s good to have someone confirm by actually looking at N++ source (I didn’t know where to begin to find it). I had assumed they were just calling the SCI_TAB and SCI_BACKTAB and looks like indeed that’s what they do.
You can find the SCI_TAB and SCI_BACKTAB in Shortcut Mapper as well as some shortcuts for Cut / Paste:
And notice the Edit menu for Cut / Paste:
The two (multiple) shortcuts are assigned, something you can’t do with Shortcut Mapper, so again, assuming N++ code is somehow adding the shortcuts based on Scintilla “defaults” or something?
So to sum up from our previous comments, it seems the Edit => Indent => menu items are not quite doing what they advertise. Not sure this is a bug, rather just a discrepancy between what the menu item implies and what it actually does.
To be honest, I never knew they were there but now that I do, I like the functionality I’ve implemented above with NppExec - it’ll come in real handy when editing Python where indents MATTER and i can’t just add or comment out loops (like with Perl) when troubleshooting - I need to also change indent levels. It’ll be easier now with my new shortcuts!
Cheers.
-
@Michael-Vincent said in Change Indent Keyboard Shortcut?:
You can find the SCI_TAB and SCI_BACKTAB in Shortcut Mapper
Yes, but if it was that alone we would be talking about “weirdness”. :-)
The two (multiple) shortcuts are assigned, something you can’t do with Shortcut Mapper…
You can assign multiple, but only for the Scintilla commands.
Edit => Indent => menu items are not quite doing what they advertise … I never knew they were there but now that I do, I like the functionality I’ve implemented above…
Yes, but it seems like standard Notepad++ could do better here. I mean, the stuff in the Edit -> Indent menu is rather pointless if it is just going to do the same thing as Tab or Shift+Tab.
Or maybe the idea is to give script writers a way to invoke these keys without calling a “key sender”?
I have no idea of the history on this.
But I do know that Increase Line Indent (and Decrease) surely seems misleading (unless you have a multiline selection).BTW, if you like source code references, here’s where in Scintilla the Tab keycombos get processed, and you can see the difference in the multiline versus non-multiline handling: https://github.com/notepad-plus-plus/notepad-plus-plus/blob/3b2d2bb300d01fe02091c837bc65f87d07cf6b8c/scintilla/src/Editor.cxx#L3953
-
I was browsing the code link in my post just above, and noticed that the Scintilla code handles multi-selections and rectangular selections as well as the more usual single selection.
I’m not much of a NppExec scripter, but I’m curious about what your scripts will do with those circumstances, so I may just try it out! :-)
-
@Alan-Kilborn said in Change Indent Keyboard Shortcut?:
I’m not much of a NppExec scripter, but I’m curious about what your scripts will do with those circumstances, so I may just try it out! :-)
My script basically looks at the selection and if it’s single line - it does some magic before calling the Edit=>Indent=>menu options. If it’s multiline selection, I just call the Edit=>Indent=>menu options.
I don’t fully grok the source code at your link, but if all that’s in there, I wonder if it may be an easy lift for a talented N++ developer to change the current simple menu code to sending SCI_TAB/BACKTAB to actually doing some logic about single / multiline selection and making the menu items “do what they say”.
Til then, I’m loving my scripts (since I’m actually editing Python right now with the exact troubleshooting use case I described above). Everything “looks like a nail” now to me I guess …
Cheers.
-
@Michael-Vincent said in Change Indent Keyboard Shortcut?:
I wonder if it may be an easy lift for a talented N++ developer to change the current simple menu code to sending SCI_TAB/BACKTAB to actually doing some logic about single / multiline selection and making the menu items “do what they say”.
That’s a good idea, but I quoted some “issue” links above on it, and it doesn’t appear they’ve generated enough interest for any of the talents to work on it.
-
This post is deleted! -
Oh wow, quite the topic I see.
I’m trying to get this to work but finding it a bit frustrating.
@Michael-Vincent, thank you so much for the plugin and the code!
I’m a novice at Notepad++ and coding and general. I’ve installed the plugin, but then I’m confused as to what to do next. Macro\Modify Shortcut/Delete Macro? Plugins\NppExec\Show Console…? Save the code into a dll file? (I’m not even sure how dll files work)… oh boy
-
@Stefane-Guevremont said in Change Indent Keyboard Shortcut?:
I’m a novice at Notepad++ and coding and general. I’ve installed the plugin, but then I’m confused as to what to do next. Macro\Modify Shortcut/Delete Macro? Plugins\NppExec\Show Console…? Save the code into a dll file? (I’m not even sure how dll files work)… oh boy
Plugins=>NppExec=>Execute. In the window, paste one of the “scripts” without the name and save with that name instead:
Do the same for the other saving it as the other name.
Then, Plugins=>NppExec=> Advanced Options…
Add a name, select the script name you saved that matches and press the Add/Modify button. Make sure the “Place to the Macros submenu” at the top is checked.
Finally, open Setting=>Shortcut Mapper… and add the “Ctrl + Alt + [” shortcuts:
Cheers.
-
Wow, that’s so awesome. Thank you!
-
Here’s a weird condition…maybe:
Select one or more empty lines.
Press Tab.
Exactly nothing happens.My goal was to have leading whitespace inserted on all lines at once, for each press of the tab key.