Community
    • Login

    Search in target is sometimes failing

    Scheduled Pinned Locked Moved Notepad++ & Plugin Development
    46 Posts 3 Posters 3.7k Views
    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.
    • Peter GoddardP
      Peter Goddard @Ekopalypse
      last edited by

      @Ekopalypse

      I see what you mean, but I don’t think that applies to my situation as when my plugin fails, I can simply reopen notepad and continue to format some more content until it fails again. If this issue was happening to every instance of content all of the time then I could see why this makes sense.

      EkopalypseE 1 Reply Last reply Reply Quote 1
      • EkopalypseE
        Ekopalypse @Peter Goddard
        last edited by Ekopalypse

        @Peter-Goddard

        yes, it could be that this is not the issue, but a new npp start also means that your data is not the same as before,
        but you certainly have more information to evaluate this than I do,
        I am fishing here more or less in the dark.
        Can you describe in pseudocode what you are doing, maybe this could be helpful to find the issue.

        Peter GoddardP 1 Reply Last reply Reply Quote 1
        • Peter GoddardP
          Peter Goddard @Ekopalypse
          last edited by

          @Ekopalypse

          Sure. This plugin just places a “\n” infront every case of “<” in the selected area.

          function(){

          Set the target search area to the area that has been selected.

          Look for the first case of “<” in the targeted area.

          While a, “<” can be found, get the placement of, “<”, insert a “\n” at that spot. Set the beginning of the target search area just ahead of where “<” is now found and increase the end of the target search area by 1. Search again for the next “<” in the target search area

          }

          EkopalypseE 1 Reply Last reply Reply Quote 0
          • EkopalypseE
            Ekopalypse @Peter Goddard
            last edited by

            @Peter-Goddard

            From your explanation this doesn’t work.
            You need to advance the start by 2, correct?
            Assuming the following, 0123… are positions made visible.

            0123456789
            ab<def<h
            

            position of < is 2 correct?
            Insert c at that position results in

            0123456789
            abc<def<h
            

            and if you set the start now to position+1 (=3) it will re-find the same <

            Sure this is what you do?
            My pseudocode would look like this

            target = selected text
            target_end = last position of selected text
            position = search in target for '<'
            while position > -1:
                insert char '\n' at position 
                reset target_start to position+2 and target_end to target_end+1
                position = search in target for '<'
            
            Peter GoddardP 2 Replies Last reply Reply Quote 0
            • Peter GoddardP
              Peter Goddard @Ekopalypse
              last edited by

              @Ekopalypse

              Sorry, I am increasing the start by 2, I just didn’t clarify that. I meant that when I said, “Set the beginning of the target search area just ahead of where “<” is now found”. My mistake. I know my code works because when I select the text,

              <<<<

              it results in

              <
              <
              <
              <

              Sorry for the confusion

              EkopalypseE 1 Reply Last reply Reply Quote 0
              • Peter GoddardP
                Peter Goddard @Ekopalypse
                last edited by Peter Goddard

                @Ekopalypse Of course, my code works, until it breaks liked we talked about before

                1 Reply Last reply Reply Quote 0
                • EkopalypseE
                  Ekopalypse @Peter Goddard
                  last edited by

                  @Peter-Goddard

                  ok, then I would say it is time to debug/print some info about
                  target_start, target_end and position found.
                  Make a debug build, use OutputDebugStringW and tools like DebugView
                  to capture the output. Of course only, if you can’t run within Visual Studio.

                  1 Reply Last reply Reply Quote 1
                  • EkopalypseE
                    Ekopalypse
                    last edited by

                    Actually, it doesn’t have to be a debug build, a release build should do it as well.

                    Peter GoddardP 1 Reply Last reply Reply Quote 0
                    • Peter GoddardP
                      Peter Goddard @Ekopalypse
                      last edited by

                      @Ekopalypse

                      Okay, I’m trying that now. I am using visual studios and I have added in my code a OutputDebugStringW, now where would I find the values that it outputs when I use my plugin in notepad?

                      EkopalypseE 1 Reply Last reply Reply Quote 0
                      • EkopalypseE
                        Ekopalypse @Peter Goddard
                        last edited by

                        @Peter-Goddard

                        Did you start npp from within Visual Studio or did you attach (from Debug menu) npp to visual studio? If so, those should appear in
                        View->Output window.

                        Peter GoddardP 1 Reply Last reply Reply Quote 0
                        • Peter GoddardP
                          Peter Goddard @Ekopalypse
                          last edited by

                          @Ekopalypse

                          I think I have made a very obvious mistake. I forgot to specify my search flag as you mentioned in my other post. After switching it to Regexp, it seems to be working. I feel like that was very obvious and you have taken a lot of your time to help me, so thank you again for all your help.

                          If anything else happens, I’ll post again. Thanks.

                          1 Reply Last reply Reply Quote 3
                          • First post
                            Last post
                          The Community of users of the Notepad++ text editor.
                          Powered by NodeBB | Contributors