I added an option used by cua_select to support emulating VS block selections.
The default for this will need to be emulation specific. For example, Mac users expect Alt+Shift+Left/Right to select words and not use a block selection. The VC++ emulations can definitely have this option on.
Right now, Alt+Shift+Up/Down/Left/Right in CUA emulation don't seem that useful to me. Ctl+Shift+Left/Right already takes care of selecting words so Alt+Shift+Left/Right are just redundant. Alt+Shift+Down -->select to bottom_left_of_window Alt+Shift+Up --> select to top_left_of_window. These seems pretty useless to me. I think CUA emulation should act like VS for these keys.
I've posted a modified cua.e that is compatible with 20.0.2.1. Load it and the cua_select command will do what you want. You will need to bind the cua_select command to Alt+Shift+Home and Alt+Shift+End if you want support for those keys too.
I don't think this will be added as a hot fix because there actually are a bunch of other changes needed to make this emulation specific. We will add this to v21.
That works perfectly thanks.
I was a little worried that if cua.e gets updated between now and v21 it will destroy these changes. I isolated the method you changed (cua_select, renamed to cua_select_updated and attached) and a few variable definitions (scursor_style_block_col, scursor_style_block_col, last_cua_key, gsaa_mark_keys, and gsaa_map_keys), imported the existing cua.e (so that it could access the other cua functions).
This works, but I'm a little confused as to why I had to redefine those variables in my extract (why they didn't work from importing cua.e), but it seems to work fine. I *only* mapped the alt-shift- keypresses to my cua_select_updated method, will I break something else if I don't map all of the keys that currently point to cua_select?
Also, I failed to have it load from my own directory, I had to put it in "C:\Program Files\SlickEdit Pro 20.0.2\macros". Now that I know it all works, I should attempt to pull it out of there again.
I really need to delve deeper into SlickEdit macro programming, the include and builtins.e are a bit confusing. I used to do a lot with CodeWright (in fact, I think I am the last person to maintain a
fairly complete library of CodeWright extension macros on my web site), but haven't done much with SlickEdit.
Thanks again for the code!