Community
    • Login

    Find and Add To Selection In 7.7

    Scheduled Pinned Locked Moved General Discussion
    37 Posts 7 Posters 18.5k Views 4 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.
    • EkopalypseE Offline
      Ekopalypse @Alan Kilborn
      last edited by Ekopalypse

      @dinkumoil - I guess your nppexec script can be reduced to this

      sci_sendmsg SCI_SETSEARCHFLAGS SCFIND_WHOLEWORD
      sci_sendmsg 2690  // SCI_TARGETWHOLEDOCUMENT
      
      sci_sendmsg SCI_GETSELECTIONEMPTY
      if $(MSG_RESULT) == 1 then
        sci_sendmsg 2688  // SCI_MULTIPLESELECTADDNEXT
       
      sci_sendmsg 2689  // SCI_MULTIPLESELECTADDEACH
      

      What do you think?

      dinkumoilD 1 Reply Last reply Reply Quote 4
      • dinkumoilD Offline
        dinkumoil @Ekopalypse
        last edited by dinkumoil

        @Ekopalypse said:

        What do you think?

        Except the missing endif ;) - nice catch, it works!

        Seems like SCI_MULTIPLESELECTADDEACH needs an active selection and SCI_MULTIPLESELECTADDNEXT doesn’t.

        EDIT: Seems like even the endif is not necessary, I apologize. ;)

        EkopalypseE 1 Reply Last reply Reply Quote 2
        • EkopalypseE Offline
          Ekopalypse @dinkumoil
          last edited by

          @dinkumoil

          aahhhhh - I constantly forget about using it. :-)
          Yes, it works without but as the syntax defines it, it should be used, imho.
          Who knows what a future update will do.

          1 Reply Last reply Reply Quote 2
          • guy038G Online
            guy038
            last edited by guy038

            Hi, @alan-kilborn and All,

            I admit that my enthusiasm is a bit excessive ! Just because I’m rather an old guy, which knew MS-DOS 5.0, WinWord 6 and Excel 5 and, even, some older goodies. So, I’m a little overwhelmed to see all these new powerful features ;-))

            By the way, I’m no longer surprised to create rectangular selections, over, let say, 50,000 lines , with N++, for years now ! Quite similar, except that all the cursors are aligned ;-))

            Cheers,

            guy038

            1 Reply Last reply Reply Quote 3
            • cipher-1024C Offline
              cipher-1024
              last edited by cipher-1024

              I thought this was a three post thread and then it was done! NPP Community delivers! I wound up putting @dail 's LuaScript into the startup script for the Lua plugin and it’s working great.

              Out of curiosity I tried installing NppExec on the 7.7 minimalist install and trying out @dinkumoil 's script but it would only select the current word and never go into multiedit mode. (7.7 32bit, NppExec 0.6RC3). There are no errors in the console. I don’t know if the minimalist version and my older, installed version are conflicting in some way, but I couldn’t get the script to work.

              @Alan-Kilborn , thanks for the python script, unfortunately I’m still on 1.0.8 so I haven’t tried it out yet. But once I’m back to being current, I will.

              My job is being inconvenient and making me do stuff, so I need to sit tight on upgrading for a bit until I have time to iron out any old plugin issues that I may run into after the upgrading. Thank you one and all. This is a great community.

              dinkumoilD Alan KilbornA 2 Replies Last reply Reply Quote 5
              • dinkumoilD Offline
                dinkumoil @cipher-1024
                last edited by

                @cipher-1024 said:

                trying out @dinkumoil 's script but it would only select the current word and never go into multiedit mode.

                I guess you only tried the first or second version of the script. The final one and the shortened version of @Ekopalypse some postings above should work.

                1 Reply Last reply Reply Quote 0
                • Alan KilbornA Offline
                  Alan Kilborn @cipher-1024
                  last edited by

                  @cipher-1024 said:

                  I tried installing NppExec on the 7.7 minimalist install…and trying out the script…but it would only select the current word and never go into multiedit mode

                  Multi-editing is disabled in a clean install or a portable install:

                  Imgur

                  Did you go into the preferences and enable it like this?:

                  Imgur

                  Alternatively, this can be added at the top of the NppExec script, to turn multi-selection ability ON:

                  sci_sendmsg 2563 1

                  Here’s where the 2563 comes from, in the Scintilla interface file:

                  # Set whether multiple selections can be made
                  set void SetMultipleSelection=2563(bool multipleSelection,)
                  
                  AndreCunhaA 1 Reply Last reply Reply Quote 6
                  • Alan KilbornA Offline
                    Alan Kilborn
                    last edited by

                    …and I guess for the same reason the Pythonscript presented earlier could benefit from the addition near the top of:

                    editor.setMultipleSelection(True) # in case not enabled in the Preferences

                    1 Reply Last reply Reply Quote 3
                    • cipher-1024C Offline
                      cipher-1024
                      last edited by

                      @Alan-Kilborn , you got it in one. Who would have thought you’d have to enable multi-edit to multi-edit… NppExec script is working on my 7.7 test install. Thanks again.

                      1 Reply Last reply Reply Quote 2
                      • AndreCunhaA Offline
                        AndreCunha @Alan Kilborn
                        last edited by

                        Besides enabling Multi-Editing (as explained by @Alan-Kilborn in his comment), I just had to call the functions directly, just like Scintilla documentation specifies:

                        • SCI_MULTIPLESELECTADDNEXT adds the next occurrence of the main selection within the target to the set of selections as main. If the current selection is empty then select word around caret.

                        • SCI_MULTIPLESELECTADDEACH is similar to SCI_MULTIPLESELECTADDNEXT but adds multiple occurrences instead of just one.

                        For me, it was unnecessary to call SCI_TARGETWHOLEDOCUMENT, so, for selecting all instances of the word at once, you could just call SCI_MULTIPLESELECTADDNEXT followed by SCI_MULTIPLESELECTADDEACH:

                        // selects all instances of the selected word (or the word around the caret)
                        sci_sendmsg 2688 // SCI_MULTIPLESELECTADDNEXT
                        sci_sendmsg 2689 // SCI_MULTIPLESELECTADDEACH
                        

                        …which has the same effect of simply calling SCI_MULTIPLESELECTADDEACH twice:

                        // selects all instances of the selected word (or the word around the caret)
                        sci_sendmsg 2689 // SCI_MULTIPLESELECTADDEACH
                        sci_sendmsg 2689 // SCI_MULTIPLESELECTADDEACH
                        

                        Or, instead of blindly calling it twice, you could check if something is already selected with SCI_GETSELECTIONEMPTY (as used on other comments) and then call it only once:

                        // selects all instances of the selected word (or the word around the caret)
                        sci_sendmsg SCI_GETSELECTIONEMPTY
                        if $(MSG_RESULT) == 1 then
                          sci_sendmsg 2688 // SCI_MULTIPLESELECTADDNEXT
                        endif
                        
                        sci_sendmsg 2689 // SCI_MULTIPLESELECTADDEACH
                        

                        PS: It would be really nice to have both commands (SCI_MULTIPLESELECTADDNEXT and SCI_MULTIPLESELECTADDEACH) available for hotkeys in “Settings” > “Shortcut Mapper” > “Scintilla commands”.

                        1 Reply Last reply Reply Quote 2

                        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