Community
    • Login

    [New Plugin] SurroundSelection

    Scheduled Pinned Locked Moved Notepad++ & Plugin Development
    12 Posts 5 Posters 7.9k Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • dailD Offline
      dail
      last edited by

      This automatically surrounds the selection(s) in quotes/brackets/parenthesis/etc that you type. This can also be used on multiple or rectangular selections. This is a nice feature in SublimeText and wanted it in Notepad++. I threw this together quickly for my own use but figured others might find it of interest.

      Note: This is still in early development. It has not been tested with non-US keyboard layouts. This uses a keyboard hook instead of normal N++ shortcuts. If anyone can check this out on a different layout I’d appreciate it.

      demo

      Download (32 & 64bit): https://github.com/dail8859/SurroundSelection/releases
      Readme/code/github project: https://github.com/dail8859/SurroundSelection

      1 Reply Last reply Reply Quote 7
      • YaronY Offline
        Yaron
        last edited by

        Hello dail,

        Thank you for this nice and useful feature. I appreciate your prolific great work.

        It works perfectly both with English and Hebrew keyboard layout.

        Some suggestions/questions:

        1. An option to toggle the selection surrounding would be a nice addition.
        2. Any reason only the opening characters surrounds the selection?
        3. This is related to [2]: in RTL ( { [ are the closing characters.

        Best regards.

        1 Reply Last reply Reply Quote 0
        • DaveyDD Offline
          DaveyD
          last edited by

          Hi Dail, Awesome plugin! Thanks!
          I’ve wanted this functionality for quite a while now, I even “made” a python script to do this, only to later learn that I can’t get the keystrokes before the text is overridden… so it didn’t work. I thought to try my first plugin, but never got around to it… Now I don’t have to, thanks to you!

          I tested it on my machine - plain ol’ English - but I tested it and it worked perfectly!

          Regards,
          David

          1 Reply Last reply Reply Quote 0
          • chcgC Offline
            chcg
            last edited by

            Could you update PluginManagers list with the new plugin if you consider it stable enough for more widespreaded usage.

            1 Reply Last reply Reply Quote 0
            • guy038G Offline
              guy038
              last edited by guy038

              Hi, @Dail,

              I was quite eager to test your plugin, on my French configuration ! At first sight, it did not seem to work, on my N++ v7.3.3 configuration, with default plugins, except for the DSpellCheek.dll plugin !

              But, as you spoke about testing our current layout, I began to test all the keys combinations, on my French keyboard…

              I, finally, got the five equivalent keys, on a French keyboard :

              For [......]   =>           VK_OEM_4 key   =   FR Key   ° ) ]
              
              For {......}   =>   SHIFT + VK_OEM_4 key   
              
              For (......)   =>   SHIFT + VK_9     key   =   FR Key   9 ç ^
              
              For '......'   =>           VK_OEM_7 key   =   FR Key   ²
              
              For "......"   =>   SHIFT + VK_OEM_7 key
              

              @dail, to compare the US and FR keyboard layouts, just click on the two links, below :

              http://ascii-table.com/keyboard.php/103P-1

              http://ascii-table.com/keyboard.php/189

              ( BTW, I’ve never seen any French 251 keyboard layout !? )

              Any keyboard, from a world list, can be seen, at :

              http://ascii-table.com/keyboards.php


              In addition, you’ll find, in the two next posts, two lists, of my own, which recapitulate :

              • Firstly, all VK_ codes, in hexa and decimal, of all keys of a standard American keyboard

              • Secondly, all VK_ codes, in hexa and decimal, of all keys of a standard French keyboard

              I do hope that these lists may help you, somehow !

              Best Regards,

              guy038

              1 Reply Last reply Reply Quote 1
              • guy038G Offline
                guy038
                last edited by guy038

                @dail,

                As explained, in my previous post, here is the US list of VK_codes of an US keyboard

                
                // https://msdn.microsoft.com/en-us/library/windows/desktop/dd375731(v=vs.85).aspx
                
                // http://ascii-table.com/keyboards.php
                
                
                *==================*========*=======*===================*
                |     VK Name      |  Hex   |  Dec  |      Notes        |
                *------------------*--------*-------*-------------------*
                |  VK_NULL         |  0x00  |    0  |                   |
                *==================*========*=======*===================*
                
                
                *==================*========*=======*===================*
                |  US keyboard   -   LEFT part   -   FIRST Row          |
                *------------------*--------*-------*-------------------*
                |     VK Name      |  Hex   |  Dec  |      Notes        |
                *------------------*--------*-------*-------------------*
                |  VK_ESCAPE       |  0x1B  |   27  |                   |
                |                  |        |       |                   |
                |  VK_F1           |  0x70  |  112  |                   |
                |  VK_F2           |  0x71  |  113  |                   |
                |  VK_F3           |  0x72  |  114  |                   |
                |  VK_F4           |  0x73  |  115  |                   |
                |                  |        |       |                   |
                |  VK_F5           |  0x74  |  116  |                   |
                |  VK_F6           |  0x75  |  117  |                   |
                |  VK_F7           |  0x76  |  118  |                   |
                |  VK_F8           |  0x77  |  119  |                   |
                |                  |        |       |                   |
                |  VK_F9           |  0x78  |  120  |                   |
                |  VK_F10          |  0x79  |  121  |                   |
                |  VK_F11          |  0x7A  |  122  |                   |
                |  VK_F12          |  0x7B  |  123  |                   |
                *------------------*--------*-------*-------------------*
                |  US keyboard   -   LEFT part   -   SECOND Row         !
                *------------------*--------*-------*-------------------*
                |  VK_OEM_3        |  0xC0  |  192  |  Key US  '~ `'    |
                |  VK_1            |  0x31  |   49  |                   |
                |  VK_2            |  0x32  |   50  |                   |
                |  VK_3            |  0x33  |   51  |                   |
                |  VK_4            |  0x34  |   52  |                   |
                |  VK_5            |  0x35  |   53  |                   |
                |  VK_6            |  0x36  |   54  |                   |
                |  VK_7            |  0x37  |   55  |                   |
                |  VK_8            |  0x38  |   56  |                   |
                |  VK_9            |  0x39  |   57  |                   |
                |  VK_0            |  0x30  |   48  |                   |
                |  VK_OEM_MINUS    |  0xBD  |  189  |  Key US  '_ -'    |
                |  VK_OEM_PLUS     |  0xBB  |  187  |  Key US  '+ ='    |
                |  VK_BACK         |  0x08  |    8  |                   |
                *------------------*--------*-------*-------------------*
                |  US keyboard   -   LEFT part   -   THIRD Row          |
                *------------------*--------*-------*-------------------*
                |  VK_TAB          |  0x09  |    9  |                   |
                |  VK_Q            |  0x51  |   81  |                   |
                |  VK_W            |  0x57  |   87  |                   |
                |  VK_E            |  0x45  |   69  |                   |
                |  VK_R            |  0x52  |   82  |                   |
                |  VK_T            |  0x54  |   84  |                   |
                |  VK_Y            |  0x59  |   89  |                   |
                |  VK_U            |  0x55  |   85  |                   |
                |  VK_I            |  0x49  |   73  |                   |
                |  VK_O            |  0x4F  |   79  |                   |
                |  VK_P            |  0x50  |   80  |                   |
                |  VK_OEM_4        |  0xDB  |  219  |  Key US  '{ ['    |
                |  VK_OEM_6        |  0xDD  |  221  |  Key US  '} ]'    |
                |  VK_OEM_5        |  0xDC  |  220  |  Key US  '| \'    |
                *------------------*--------*-------*-------------------*
                |  US keyboard   -   LEFT part   -   FOURTH Row         |
                *------------------*--------*-------*-------------------*
                |  VK_CAPITAL      |  0x14  |   20  |                   |
                |  VK_A            |  0x41  |   65  |                   |
                |  VK_S            |  0x53  |   83  |                   |
                |  VK_D            |  0x44  |   68  |                   |
                |  VK_F            |  0x46  |   70  |                   |
                |  VK_G            |  0x47  |   71  |                   |
                |  VK_H            |  0x48  |   72  |                   |
                |  VK_J            |  0x4A  |   74  |                   |
                |  VK_K            |  0x4B  |   75  |                   |
                |  VK_L            |  0x4C  |   76  |                   |
                |  VK_OEM_1        |  0xBA  |  186  |  Key US  ': ;'    |
                |  VK_OEM_7        |  0xDE  |  222  |  Key US  '" ''    |
                |  VK_RETURN       |  0x0D  |   13  |                   |
                *------------------*--------*-------*-------------------*
                |  US keyboard   -   LEFT part   -   FIFTH Row          |
                *------------------*--------*-------*-------------------*
                |  VK_SHIFT        |  0x10  |   16  |                   |
                |  VK_Z            |  0x5A  |   90  |                   |
                |  VK_X            |  0x58  |   88  |                   |
                |  VK_C            |  0x43  |   67  |                   |
                |  VK_V            |  0x56  |   86  |                   |
                |  VK_B            |  0x42  |   66  |                   |
                |  VK_N            |  0x4E  |   78  |                   |
                |  VK_M            |  0x4D  |   77  |                   |
                |  VK_OEM_COMMA    |  0xBC  |  188  |  Key US  '< ,'    |
                |  VK_OEM_PERIOD   |  0xBE  |  190  |  Key US  '> .'    |
                |  VK_OEM_2        |  0xBF  |  191  |  Key US  '? /'    |
                |  VK_SHIFT        |  0x10  |   16  |                   |
                *------------------*--------*-------*-------------------*
                |  US keyboard   -   LEFT part   -   SIXTH Row          |
                *------------------*--------*-------*-------------------*
                |  VK_CONTROL      |  0x11  |   17  |                   |
                |  VK_LWIN         |  0x5B  |   91  |                   |
                |  VK_MENU         |  0x12  |   18  |                   |
                |  VK_SPACE        |  0x20  |   32  |                   |
                |  VK_RWIN         |  0x5C  |   92  |                   |
                |  VK_APPS         |  0x5D  |   93  |                   |
                |  VK_CONTROL      |  0x11  |   17  |                   |
                *==================*========*=======*===================*
                
                
                *==================*========*=======*===================*
                |  US keyboard   -   MIDDLE part   -   FIRST Row        |
                *------------------*--------*-------*-------------------*
                |     VK Name      |  Hex   |  Dec  |      Notes        |
                *------------------*--------*-------*-------------------*
                |  VK_INSERT       |  0x2D  |   45  |                   |
                |  VK_HOME         |  0x24  |   36  |                   |
                |  VK_PRIOR        |  0x21  |   33  |                   |
                *------------------*--------*-------*-------------------*
                |  US keyboard   -   MIDDLE part   -   SECOND Row       |
                *------------------*--------*-------*-------------------*
                |  VK_DELETE       |  0x2E  |   46  |                   |
                |  VK_END          |  0x23  |   35  |                   |
                |  VK_NEXT         |  0x22  |   34  |                   |
                *------------------*--------*-------*-------------------*
                |  US keyboard   -   MIDDLE part   -   THIRD Row        |
                *------------------*--------*-------*-------------------*
                |  VK_UP           |  0x26  |   38  |                   |
                *------------------*--------*-------*-------------------*
                |  US keyboard   -   MIDDLE part   -   FOURTH Row       |
                *------------------*--------*-------*-------------------*
                |  VK_LEFT         |  0x25  |   37  |                   |
                |  VK_DOWN         |  0x28  |   40  |                   |
                |  VK_RIGHT        |  0x27  |   39  |                   |
                *==================*========*=======*===================*
                
                
                *==================*========*=======*===================*
                |  US keyboard   -   RIGHT part   -   FIRST Row         |
                *------------------*--------*-------*-------------------*
                |     VK Name      |  Hex   |  Dec  |      Notes        |
                *------------------*--------*-------*-------------------*
                |  VK_SNAPSHOT     |  0x2C  |   44  |                   |
                |  VK_SCROLL       |  0x91  |  145  |                   |
                |  VK_PAUSE        |  0x13  |   19  |                   |
                |  VK_ATTN         |  0xF6  |  246  |                   |
                *------------------*--------*-------*-------------------*
                |  US keyboard   -   RIGHT part   -   SECOND Row        |
                *------------------*--------*-------*-------------------*
                |  VK_NUMLOCK      |  0x90  |  144  |                   |
                |  VK_DIVIDE       |  0x6F  |  111  |                   |
                |  VK_MULTIPLY     |  0x6A  |  106  |                   |
                |  VK_SUBTRACT     |  0x6D  |  109  |                   |
                *------------------*--------*-------*-------------------*
                |  US keyboard   -   RIGHT part   -   THIRD Row         |
                *------------------*--------*-------*-------------------*
                |  VK_NUMPAD7      |  0x67  |  103  |                   |
                |  VK_NUMPAD8      |  0x68  |  104  |                   |
                |  VK_NUMPAD9      |  0x69  |  105  |                   |
                |  VK_ADD          |  0x6B  |  107  |                   |
                *------------------*--------*-------*-------------------*
                |  US keyboard   -   RIGHT part   -   FOURTH Row        |
                *------------------*--------*-------*-------------------*
                |  VK_NUMPAD4      |  0x64  |  100  |                   |
                |  VK_NUMPAD5      |  0x65  |  101  |                   |
                |  VK_NUMPAD6      |  0x66  |  102  |                   |
                *------------------*--------*-------*-------------------*
                |  US keyboard   -   RIGHT part   -   FIFTH Row         |
                *------------------*--------*-------*-------------------*
                |  VK_NUMPAD1      |  0x61  |   97  |                   |
                |  VK_NUMPAD2      |  0x62  |   98  |                   |
                |  VK_NUMPAD3      |  0x63  |   99  |                   |
                *------------------*--------*-------*-------------------*
                |  US keyboard   -   RIGHT part   -   SIXTH Row         |
                *------------------*--------*-------*-------------------*
                |  VK_NUMPAD0      |  0x60  |   96  |                   |
                |  VK_DECIMAL      |  0x6E  |  110  |                   |
                |  VK_RETURN       |  0x0D  |   13  |                   |
                *==================*========*=======*===================*
                
                
                *=======================================================*
                |                  OTHER Virtual Keys                   |
                *------------------*--------*-------*-------------------*
                |  VK_CANCEL       |  0x03  |    3  |                   |
                |  VK_CLEAR        |  0x0C  |   12  |                   |
                |                  |        |       |                   |
                |  VK_KANA         |  0x15  |   21  |                   |
                |  VK_HANGUL       |  0x15  |   21  |                   |
                |  VK_JUNJA        |  0x17  |   23  |                   |
                |  VK_FINAL        |  0x18  |   24  |                   |
                |  VK_HANJA        |  0x19  |   25  |                   |
                |  VK_KANJI        |  0x19  |   25  |                   |
                |                  |        |       |                   |
                |  VK_CONVERT      |  0x1C  |   28  |                   |
                |  VK_NONCONVERT   |  0x1D  |   29  |                   |
                |  VK_ACCEPT       |  0x1E  |   30  |                   |
                |  VK_MODECHANGE   |  0x1F  |   31  |                   |
                |                  |        |       |                   |
                |  VK_SELECT       |  0x29  |   41  |                   |
                |  VK_PRINT        |  0x2A  |   42  |                   |
                |  VK_EXECUTE      |  0x2B  |   43  |                   |
                |  VK_HELP         |  0x2F  |   47  |                   |
                |                  |        |       |                   |
                |  VK_SLEEP        |  0x5F  |   95  |                   |
                |                  |        |       |                   |
                |  VK_SEPARATOR    |  0x6C  |  108  |                   |
                |                  |        |       |                   |
                |  VK_F13          |  0x7C  |  124  |                   |
                |  VK_F14          |  0x7D  |  125  |                   |
                |  VK_F15          |  0x7E  |  126  |                   |
                |  VK_F16          |  0x7F  |  127  |                   |
                |  VK_F17          |  0x80  |  128  |                   |
                |  VK_F18          |  0x81  |  129  |                   |
                |  VK_F19          |  0x82  |  130  |                   |
                |  VK_F20          |  0x83  |  131  |                   |
                |  VK_F21          |  0x84  |  132  |                   |
                |  VK_F22          |  0x85  |  133  |                   |
                |  VK_F23          |  0x86  |  134  |                   |
                |  VK_F24          |  0x87  |  135  |                   |
                |                  |        |       |                   |
                |  VK_OEM_8        |  0xDF  |  223  |                   |
                |                  |        |       |                   |
                |  VK_OEM_102      |  0xE2  |  226  |  Key US  '< >'    |
                |  VK_OEM_RESET    |  0xE9  |  233  |                   |
                |  VK_OEM_JUMP     |  0xEA  |  234  |                   |
                |  VK_OEM_PA1      |  0xEB  |  235  |                   |
                |  VK_OEM_PA2      |  0xEC  |  236  |                   |
                |  VK_OEM_PA3      |  0xED  |  237  |                   |
                |  VK_OEM_WSCTRL   |  0xEE  |  238  |                   |
                |  VK_OEM_CUSEL    |  0xEF  |  239  |                   |
                |                  |        |       |                   |
                |  VK_OEM_ATTN     |  0xF0  |  240  |                   |
                |  VK_OEM_FINISH   |  0xF1  |  241  |                   |
                |  VK_OEM_COPY     |  0xF2  |  242  |                   |
                |  VK_OEM_AUTO     |  0xF3  |  243  |                   |
                |  VK_OEM_ENLW     |  0xF4  |  244  |                   |
                |  VK_OEM_BACKTAB  |  0xF5  |  245  |                   |
                |  VK_CRSEL        |  0xF7  |  247  |                   |
                |  VK_EXSEL        |  0xF8  |  248  |                   |
                |  VK_EREOF        |  0xF9  |  249  |                   |
                |  VK_PLAY         |  0xFA  |  250  |                   |
                |  VK_ZOOM         |  0xFB  |  251  |                   |
                |  VK_NONAME       |  0xFC  |  252  |                   |
                |  VK_PA1          |  0xFD  |  253  |                   |
                |  VK_OEM_CLEAR    |  0xFE  |  254  |                   |
                *==================*========*=======*===================*
                

                Cheers,

                guy038

                1 Reply Last reply Reply Quote 0
                • guy038G Offline
                  guy038
                  last edited by

                  @dail,

                  And, here is, below, the equivalent list of VK_codes, on a standard FR keyboard !

                  *==================*========*=======*===================*
                  |     VK Name      |  Hex   |  Dec  |      Notes        |
                  *------------------*--------*-------*-------------------*
                  |  VK_NULL         |  0x00  |    0  |                   |
                  *==================*========*=======*===================*
                  
                  
                  *==================*========*=======*===================*
                  |  FRENCH keyboard   -   LEFT part   -   FIRST Row      |
                  *------------------*--------*-------*-------------------*
                  |     VK Name      |  Hex   |  Dec  |      Notes        |
                  *------------------*--------*-------*-------------------*
                  |  VK_ESCAPE       |  0x1B  |   27  |                   |
                  |                  |        |       |                   |
                  |  VK_F1           |  0x70  |  112  |                   |
                  |  VK_F2           |  0x71  |  113  |                   |
                  |  VK_F3           |  0x72  |  114  |                   |
                  |  VK_F4           |  0x73  |  115  |                   |
                  |                  |        |       |                   |
                  |  VK_F5           |  0x74  |  116  |                   |
                  |  VK_F6           |  0x75  |  117  |                   |
                  |  VK_F7           |  0x76  |  118  |                   |
                  |  VK_F8           |  0x77  |  119  |                   |
                  |                  |        |       |                   |
                  |  VK_F9           |  0x78  |  120  |                   |
                  |  VK_F10          |  0x79  |  121  |                   |
                  |  VK_F11          |  0x7A  |  122  |                   |
                  |  VK_F12          |  0x7B  |  123  |                   |
                  *------------------*--------*-------*-------------------*
                  |  FRENCH keyboard   -   LEFT part   -   SECOND Row     !
                  *------------------*--------*-------*-------------------*
                  |  VK_OEM_7        |  0xDE  |  222  |  Key FR  '²'      |
                  |  VK_1            |  0x31  |   49  |                   |
                  |  VK_2            |  0x32  |   50  |                   |
                  |  VK_3            |  0x33  |   51  |                   |
                  |  VK_4            |  0x34  |   52  |                   |
                  |  VK_5            |  0x35  |   53  |                   |
                  |  VK_6            |  0x36  |   54  |                   |
                  |  VK_7            |  0x37  |   55  |                   |
                  |  VK_8            |  0x38  |   56  |                   |
                  |  VK_9            |  0x39  |   57  |                   |
                  |  VK_0            |  0x30  |   48  |                   |
                  |  VK_OEM_4        |  0xDB  |  219  |  Key FR  '° ) ]'  |
                  |  VK_OEM_PLUS     |  0xBB  |  187  |  Key FR  '+ = }'  |
                  |  VK_BACK         |  0x08  |    8  |                   |
                  *------------------*--------*-------*-------------------*
                  |  FRENCH keyboard   -   LEFT part   -   THIRD Row      |
                  *------------------*--------*-------*-------------------*
                  |  VK_TAB          |  0x09  |    9  |                   |
                  |  VK_A            |  0x41  |   65  |                   |
                  |  VK_Z            |  0x5A  |   90  |                   |
                  |  VK_E            |  0x45  |   69  |                   |
                  |  VK_R            |  0x52  |   82  |                   |
                  |  VK_T            |  0x54  |   84  |                   |
                  |  VK_Y            |  0x59  |   89  |                   |
                  |  VK_U            |  0x55  |   85  |                   |
                  |  VK_I            |  0x49  |   73  |                   |
                  |  VK_O            |  0x4F  |   79  |                   |
                  |  VK_P            |  0x50  |   80  |                   |
                  |  VK_OEM_6        |  0xDD  |  221  |  Key FR  '¨ ^'    |
                  |  VK_OEM_1        |  0xBA  |  186  |  Key FR  '£ $ ¤'  |
                  |  VK_RETURN       |  0x0D  |   13  |                   |
                  *------------------*--------*-------*-------------------*
                  |  FRENCH keyboard   -   LEFT part   -   FOURTH Row     |
                  *------------------*--------*-------*-------------------*
                  |  VK_CAPITAL      |  0x14  |   20  |                   |
                  |  VK_Q            |  0x51  |   81  |                   |
                  |  VK_S            |  0x53  |   83  |                   |
                  |  VK_D            |  0x44  |   68  |                   |
                  |  VK_F            |  0x46  |   70  |                   |
                  |  VK_G            |  0x47  |   71  |                   |
                  |  VK_H            |  0x48  |   72  |                   |
                  |  VK_J            |  0x4A  |   74  |                   |
                  |  VK_K            |  0x4B  |   75  |                   |
                  |  VK_L            |  0x4C  |   76  |                   |
                  |  VK_M            |  0x4D  |   77  |                   |
                  |  VK_OEM_3        |  0xC0  |  192  |  Key FR  '% ù'    |
                  |  VK_OEM_5        |  0xDC  |  220  |  Key FR  'µ *'    |
                  *------------------*--------*-------*-------------------*
                  |  FRENCH keyboard   -   LEFT part   -   FIFTH Row      |
                  *------------------*--------*-------*-------------------*
                  |  VK_SHIFT        |  0x10  |   16  |                   |
                  |  VK_OEM_102      |  0xE2  |  226  |  Key FR  '> <'    |
                  |  VK_W            |  0x57  |   87  |                   |
                  |  VK_X            |  0x58  |   88  |                   |
                  |  VK_C            |  0x43  |   67  |                   |
                  |  VK_V            |  0x56  |   86  |                   |
                  |  VK_B            |  0x42  |   66  |                   |
                  |  VK_N            |  0x4E  |   78  |                   |
                  |  VK_OEM_COMMA    |  0xBC  |  188  |  Key FR  '? ,'    |
                  |  VK_OEM_PERIOD   |  0xBE  |  190  |  Key FR  '. ;'    |
                  |  VK_OEM_2        |  0xBF  |  191  |  Key FR  '/ :'    |
                  |  VK_OEM_8        |  0xDF  |  223  |  Key FR  '§ !'    |
                  |  VK_SHIFT        |  0x10  |   16  |                   |
                  *------------------*--------*-------*-------------------*
                  |  FRENCH keyboard   -   LEFT part   -   SIXTH Row      |
                  *------------------*--------*-------*-------------------*
                  |  VK_CONTROL      |  0x11  |   17  |                   |
                  |  VK_LWIN         |  0x5B  |   91  |                   |
                  |  VK_MENU         |  0x12  |   18  |                   |
                  |  VK_SPACE        |  0x20  |   32  |                   |
                  |  VK_RWIN         |  0x5C  |   92  |                   |
                  |  VK_APPS         |  0x5D  |   93  |                   |
                  |  VK_CONTROL      |  0x11  |   17  |                   |
                  *==================*========*=======*===================*
                  
                  
                  *==================*========*=======*===================*
                  |  FRENCH keyboard   -   MIDDLE part   -   FIRST Row    |
                  *------------------*--------*-------*-------------------*
                  |     VK Name      |  Hex   |  Dec  |      Notes        |
                  *------------------*--------*-------*-------------------*
                  |  VK_INSERT       |  0x2D  |   45  |                   |
                  |  VK_HOME         |  0x24  |   36  |                   |
                  |  VK_PRIOR        |  0x21  |   33  |                   |
                  *------------------*--------*-------*-------------------*
                  |  FRENCH keyboard   -   MIDDLE part   -   SECOND Row   |
                  *------------------*--------*-------*-------------------*
                  |  VK_DELETE       |  0x2E  |   46  |                   |
                  |  VK_END          |  0x23  |   35  |                   |
                  |  VK_NEXT         |  0x22  |   34  |                   |
                  *------------------*--------*-------*-------------------*
                  |  FRENCH keyboard   -   MIDDLE part   -   THIRD Row    |
                  *------------------*--------*-------*-------------------*
                  |  VK_UP           |  0x26  |   38  |                   |
                  *------------------*--------*-------*-------------------*
                  |  FRENCH keyboard   -   MIDDLE part   -   FOURTH Row   |
                  *------------------*--------*-------*-------------------*
                  |  VK_LEFT         |  0x25  |   37  |                   |
                  |  VK_DOWN         |  0x28  |   40  |                   |
                  |  VK_RIGHT        |  0x27  |   39  |                   |
                  *==================*========*=======*===================*
                  
                  
                  *==================*========*=======*===================*
                  |  FRENCH keyboard   -   RIGHT part   -   FIRST Row     |
                  *------------------*--------*-------*-------------------*
                  |     VK Name      |  Hex   |  Dec  |      Notes        |
                  *------------------*--------*-------*-------------------*
                  |  VK_SNAPSHOT     |  0x2C  |   44  |                   |
                  |  VK_SCROLL       |  0x91  |  145  |                   |
                  |  VK_PAUSE        |  0x13  |   19  |                   |
                  |  VK_ATTN         |  0xF6  |  246  |                   |
                  *------------------*--------*-------*-------------------*
                  |  FRENCH keyboard   -   RIGHT part   -   SECOND Row    |
                  *------------------*--------*-------*-------------------*
                  |  VK_NUMLOCK      |  0x90  |  144  |                   |
                  |  VK_DIVIDE       |  0x6F  |  111  |                   |
                  |  VK_MULTIPLY     |  0x6A  |  106  |                   |
                  |  VK_SUBTRACT     |  0x6D  |  109  |                   |
                  *------------------*--------*-------*-------------------*
                  |  FRENCH keyboard   -   RIGHT part   -   THIRD Row     |
                  *------------------*--------*-------*-------------------*
                  |  VK_NUMPAD7      |  0x67  |  103  |                   |
                  |  VK_NUMPAD8      |  0x68  |  104  |                   |
                  |  VK_NUMPAD9      |  0x69  |  105  |                   |
                  |  VK_ADD          |  0x6B  |  107  |                   |
                  *------------------*--------*-------*-------------------*
                  |  FRENCH keyboard   -   RIGHT part   -   FOURTH Row    |
                  *------------------*--------*-------*-------------------*
                  |  VK_NUMPAD4      |  0x64  |  100  |                   |
                  |  VK_NUMPAD5      |  0x65  |  101  |                   |
                  |  VK_NUMPAD6      |  0x66  |  102  |                   |
                  *------------------*--------*-------*-------------------*
                  |  FRENCH keyboard   -   RIGHT part   -   FIFTH Row     |
                  *------------------*--------*-------*-------------------*
                  |  VK_NUMPAD1      |  0x61  |   97  |                   |
                  |  VK_NUMPAD2      |  0x62  |   98  |                   |
                  |  VK_NUMPAD3      |  0x63  |   99  |                   |
                  *------------------*--------*-------*-------------------*
                  |  FRENCH keyboard   -   RIGHT part   -   SIXTH Row     |
                  *------------------*--------*-------*-------------------*
                  |  VK_NUMPAD0      |  0x60  |   96  |                   |
                  |  VK_DECIMAL      |  0x6E  |  110  |                   |
                  |  VK_RETURN       |  0x0D  |   13  |                   |
                  *==================*========*=======*===================*
                  
                  
                  *=======================================================*
                  |                  OTHER Virtual Keys                   |
                  *------------------*--------*-------*-------------------*
                  |  VK_CANCEL       |  0x03  |    3  |                   |
                  |  VK_CLEAR        |  0x0C  |   12  |                   |
                  |                  |        |       |                   |
                  |  VK_KANA         |  0x15  |   21  |                   |
                  |  VK_HANGUL       |  0x15  |   21  |                   |
                  |  VK_JUNJA        |  0x17  |   23  |                   |
                  |  VK_FINAL        |  0x18  |   24  |                   |
                  |  VK_HANJA        |  0x19  |   25  |                   |
                  |  VK_KANJI        |  0x19  |   25  |                   |
                  |                  |        |       |                   |
                  |  VK_CONVERT      |  0x1C  |   28  |                   |
                  |  VK_NONCONVERT   |  0x1D  |   29  |                   |
                  |  VK_ACCEPT       |  0x1E  |   30  |                   |
                  |  VK_MODECHANGE   |  0x1F  |   31  |                   |
                  |                  |        |       |                   |
                  |  VK_SELECT       |  0x29  |   41  |                   |
                  |  VK_PRINT        |  0x2A  |   42  |                   |
                  |  VK_EXECUTE      |  0x2B  |   43  |                   |
                  |  VK_HELP         |  0x2F  |   47  |                   |
                  |                  |        |       |                   |
                  |  VK_SLEEP        |  0x5F  |   95  |                   |
                  |                  |        |       |                   |
                  |  VK_SEPARATOR    |  0x6C  |  108  |                   |
                  |                  |        |       |                   |
                  |  VK_F13          |  0x7C  |  124  |                   |
                  |  VK_F14          |  0x7D  |  125  |                   |
                  |  VK_F15          |  0x7E  |  126  |                   |
                  |  VK_F16          |  0x7F  |  127  |                   |
                  |  VK_F17          |  0x80  |  128  |                   |
                  |  VK_F18          |  0x81  |  129  |                   |
                  |  VK_F19          |  0x82  |  130  |                   |
                  |  VK_F20          |  0x83  |  131  |                   |
                  |  VK_F21          |  0x84  |  132  |                   |
                  |  VK_F22          |  0x85  |  133  |                   |
                  |  VK_F23          |  0x86  |  134  |                   |
                  |  VK_F24          |  0x87  |  135  |                   |
                  |                  |        |       |                   |
                  |  VK_OEM_MINUS    |  0xBD  |  189  |                   |
                  |                  |        |       |                   |
                  |  VK_OEM_RESET    |  0xE9  |  233  |                   |
                  |  VK_OEM_JUMP     |  0xEA  |  234  |                   |
                  |  VK_OEM_PA1      |  0xEB  |  235  |                   |
                  |  VK_OEM_PA2      |  0xEC  |  236  |                   |
                  |  VK_OEM_PA3      |  0xED  |  237  |                   |
                  |  VK_OEM_WSCTRL   |  0xEE  |  238  |                   |
                  |  VK_OEM_CUSEL    |  0xEF  |  239  |                   |
                  |                  |        |       |                   |
                  |  VK_OEM_ATTN     |  0xF0  |  240  |                   |
                  |  VK_OEM_FINISH   |  0xF1  |  241  |                   |
                  |  VK_OEM_COPY     |  0xF2  |  242  |                   |
                  |  VK_OEM_AUTO     |  0xF3  |  243  |                   |
                  |  VK_OEM_ENLW     |  0xF4  |  244  |                   |
                  |  VK_OEM_BACKTAB  |  0xF5  |  245  |                   |
                  |  VK_CRSEL        |  0xF7  |  247  |                   |
                  |  VK_EXSEL        |  0xF8  |  248  |                   |
                  |  VK_EREOF        |  0xF9  |  249  |                   |
                  |  VK_PLAY         |  0xFA  |  250  |                   |
                  |  VK_ZOOM         |  0xFB  |  251  |                   |
                  |  VK_NONAME       |  0xFC  |  252  |                   |
                  |  VK_PA1          |  0xFD  |  253  |                   |
                  |  VK_OEM_CLEAR    |  0xFE  |  254  |                   |
                  *==================*========*=======*===================*
                  

                  Cheers,

                  guy038

                  1 Reply Last reply Reply Quote 0
                  • dailD Offline
                    dail
                    last edited by

                    @Yaron

                    An option to toggle the selection surrounding would be a nice addition.

                    This has been committed now so this will be in the next release.

                    Any reason only the opening characters surrounds the selection?

                    Honestly I just did it this way since this is what SublimeText does and was waiting to see if anyone would mention it ;) But I can definitely understand how this would be a bit confusing for RTL having to type the closing characters. So this has also been pushed and will be in the next release.

                    @chcg

                    I’ll probably still wait a little while to see if there are any bugs or improvements before putting it in the PM.

                    @guy038

                    Thanks for the testing and very detailed information!

                    @ anybody

                    As I don’t have any way of easily testing other types of layouts I would be glad to accept any Pull Requests adding support for other layouts ;)

                    1 Reply Last reply Reply Quote 0
                    • YaronY Offline
                      Yaron
                      last edited by

                      Hello dail,

                      Thank you for accepting and implementing my requests. I appreciate it.
                      I’ll be looking forward to the next version. :)

                      Best regards.

                      1 Reply Last reply Reply Quote 0
                      • dailD Offline
                        dail
                        last edited by

                        v1.1 has been release for your typing pleasure. This release has a few minor updates:

                        • Add menu option to enable/disable plugin
                        • Allow typing of closing symbols (e.g. ), ], or })

                        Download (32 & 64bit): https://github.com/dail8859/SurroundSelection/releases/tag/v1.1

                        1 Reply Last reply Reply Quote 1
                        • YaronY Offline
                          Yaron
                          last edited by

                          Hello dail,

                          Thank you very much for the new version. I appreciate it.
                          It’s working like a charm. Great work.

                          Best regards.

                          1 Reply Last reply Reply Quote 0
                          • guy038G Offline
                            guy038
                            last edited by guy038

                            Hello, @dail,

                            With your new version 1.1 of your SurroundSelection.dll plugin, the equivalent keys, on my French keyboard, are, as below :

                                                        VK_OEM_4 key   =   FR Key   ° ) ]
                            For [......]   =>
                                                        VK_OEM_6 key   =   FR Key   ^ ¨
                            
                            
                            
                                                SHIFT + VK_OEM_4 key   =   FR Key   ° ) ]
                            For {......}   =>                           
                                                SHIFT + VK_OEM_6 key   =   FR Key   ^ ¨
                            
                            
                            
                                                SHIFT + VK_9     key   =   FR Key   9 ç ^
                            For (......)   =>
                                                SHIFT + VK_0     key   =   FR Key   0 à @
                            
                            
                            
                            For '......'   =>           VK_OEM_7 key   =   FR Key   ²
                            
                            
                            
                            For "......"   =>   SHIFT + VK_OEM_7 key   =   FR Key   ²
                            

                            @dail, although I’m quite able to remember these five weird French keys, is there any way to adapt your plugin to “non-English” users ?

                            May be, I’m going to tell some technical impossibilities, but why not a simple .ini file, where these five keys could be defined ?

                            Anyway, @dail, many thanks for that very handy plugin, especially, when using rectangular selection !!

                            Cheers,

                            guy038

                            1 Reply Last reply Reply Quote 0

                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                            With your input, this post could be even better 💗

                            Register Login
                            • First post
                              Last post
                            The Community of users of the Notepad++ text editor.
                            Powered by NodeBB | Contributors