• Login
Community
  • Login

Search in target is sometimes failing

Scheduled Pinned Locked Moved Notepad++ & Plugin Development
46 Posts 3 Posters 5.9k 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.
  • P
    Peter Goddard @Ekopalypse
    last edited by Jun 1, 2020, 4:19 PM

    @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.

    E 1 Reply Last reply Jun 1, 2020, 4:29 PM Reply Quote 1
    • E
      Ekopalypse @Peter Goddard
      last edited by Ekopalypse Jun 1, 2020, 4:30 PM Jun 1, 2020, 4:29 PM

      @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.

      P 1 Reply Last reply Jun 1, 2020, 4:51 PM Reply Quote 1
      • P
        Peter Goddard @Ekopalypse
        last edited by Jun 1, 2020, 4:51 PM

        @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

        }

        E 1 Reply Last reply Jun 1, 2020, 6:27 PM Reply Quote 0
        • E
          Ekopalypse @Peter Goddard
          last edited by Jun 1, 2020, 6:27 PM

          @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 '<'
          
          P 2 Replies Last reply Jun 1, 2020, 6:47 PM Reply Quote 0
          • P
            Peter Goddard @Ekopalypse
            last edited by Jun 1, 2020, 6:47 PM

            @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

            E 1 Reply Last reply Jun 1, 2020, 6:56 PM Reply Quote 0
            • P
              Peter Goddard @Ekopalypse
              last edited by Peter Goddard Jun 1, 2020, 6:51 PM Jun 1, 2020, 6:51 PM

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

              1 Reply Last reply Reply Quote 0
              • E
                Ekopalypse @Peter Goddard
                last edited by Jun 1, 2020, 6:56 PM

                @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
                • E
                  Ekopalypse
                  last edited by Jun 1, 2020, 6:58 PM

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

                  P 1 Reply Last reply Jun 1, 2020, 7:16 PM Reply Quote 0
                  • P
                    Peter Goddard @Ekopalypse
                    last edited by Jun 1, 2020, 7:16 PM

                    @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?

                    E 1 Reply Last reply Jun 1, 2020, 7:24 PM Reply Quote 0
                    • E
                      Ekopalypse @Peter Goddard
                      last edited by Jun 1, 2020, 7:24 PM

                      @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.

                      P 1 Reply Last reply Jun 1, 2020, 7:38 PM Reply Quote 0
                      • P
                        Peter Goddard @Ekopalypse
                        last edited by Jun 1, 2020, 7:38 PM

                        @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
                        45 out of 46
                        • First post
                          45/46
                          Last post
                        The Community of users of the Notepad++ text editor.
                        Powered by NodeBB | Contributors