Community
    • Login

    How to highlight the underlined squiggle words

    Scheduled Pinned Locked Moved General Discussion
    35 Posts 6 Posters 3.2k 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.
    • guy038G
      guy038
      last edited by

      Hi, @peterjones, @alan-kilborn, @ekopalypse and All,

      Oh, my God ! I did not realize that I should have hidden my N++ tabs, with the Post-it view, ( F12 key ) for more privacy !!

      If you prefer, I may change my previous post, loading the same image, without the tabs, this time ?

      Just tell me !

      Cheers,

      guy038

      EkopalypseE 1 Reply Last reply Reply Quote 2
      • PeterJonesP
        PeterJones
        last edited by

        @guy038 said in How to highlight the underlined squiggle words:

        If you prefer, I may change my previous post,

        No need. It just struck me as something that needed to be humorously commented on.

        1 Reply Last reply Reply Quote 3
        • EkopalypseE
          Ekopalypse @guy038
          last edited by

          @guy038

          Since you are French, you must comply with the GDPR, right?

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

            @peterjones,

            You could have also mentioned the Don_Ho.txt and Terry.txt tabs ;-))

            @ekopalypse,

            From your Wikipedia link, I note that the “GDPR” regulation has become a model for many national laws outside EU !

            BR

            guy038

            1 Reply Last reply Reply Quote 0
            • PeterJonesP
              PeterJones
              last edited by

              If anyone violated privacy, it was I: I am the one who made the connection between random names from his screenshot to individual accounts on the forum – especially since technically, none of them used our screen names from this forum.

              Now I have to hope that none of the ones whose privacy I violated will issue a takedown request :-)

              /me contemplates what it would mean for me to issue a takedown request to myself; can I violate my own privacy?

              1 Reply Last reply Reply Quote 1
              • PeterJonesP
                PeterJones
                last edited by

                And again, sorry @Mia-Nguyen for hijacking your topic.

                1 Reply Last reply Reply Quote 1
                • Alan KilbornA
                  Alan Kilborn
                  last edited by Alan Kilborn

                  More hijacking:

                  At least we didn’t see these tabs:

                  0ce03638-3514-435a-8abd-d1f624e7a7d1-image.png

                  EkopalypseE 1 Reply Last reply Reply Quote 2
                  • EkopalypseE
                    Ekopalypse @Alan Kilborn
                    last edited by

                    @Alan-Kilborn

                    ok, I know who D_Trump is but who is E_Philippe??

                    Alan KilbornA 1 Reply Last reply Reply Quote 1
                    • Alan KilbornA
                      Alan Kilborn @Ekopalypse
                      last edited by

                      @Ekopalypse

                      https://en.wikipedia.org/wiki/Prime_Minister_of_France

                      but…I could be showing my ignorance of French governmental situations as I had to look that up to make my joke image. :-)

                      EkopalypseE 1 Reply Last reply Reply Quote 1
                      • EkopalypseE
                        Ekopalypse @Alan Kilborn
                        last edited by

                        @Alan-Kilborn

                        ahh - ok - maybe you should have added E_Macron.txt :-)
                        I guess you know Angela Merkel but who knows Frank-Walter Steinmeier :-D

                        1 Reply Last reply Reply Quote 1
                        • Mia NguyenM
                          Mia Nguyen
                          last edited by

                          This post is deleted!
                          1 Reply Last reply Reply Quote 0
                          • Mia NguyenM
                            Mia Nguyen
                            last edited by

                            Thanks a lot @PeterJones @guy038
                            That really highlighted the words. But I can not copy to excel keeping that highlight. It will be normal when i paste to Excel
                            Do you know any way i can copy that ?
                            Or another question, is there any way i can filter the rows with that highlighted word in NPP?
                            Btw, my final purpose here is that i have an excel with some misspelling words inside that can not figure it out, so i copy it into NPP to highlight it out. And then i need to fix in excel finally.

                            PeterJonesP 1 Reply Last reply Reply Quote 0
                            • PeterJonesP
                              PeterJones @Mia Nguyen
                              last edited by

                              @Mia-Nguyen said in How to highlight the underlined squiggle words:

                              Thanks a lot @PeterJones @guy038
                              That really highlighted the words. But I can not copy to excel keeping that highlight. It will be normal when i paste to Excel
                              Do you know any way i can copy that ?

                              It depends on which highlighting you mean. If you mean the normal syntax highlighting, you can use the NppExport plugin to Copy HTML to Clipboard or Copy All Formats to Clipboard; if you paste that into excel, you get the syntax highlighting. However, if you have a plugin like DSpellCheck, which puts squiggles under the misspelled words, you do not get that copied, even with Copy all formats…

                              b3f59b14-3551-431b-bb30-6d788f9a47ca-image.png
                              96e7d6b1-71e3-4643-bedb-e048dc34ef2b-image.png

                              Or another question, is there any way i can filter the rows with that highlighted word in NPP?

                              It depends on which highlighting you mean. If you mean the DSpellCheck squiggle highlighting, I don’t know of a way to filter on that. But Plugins > DSpellCheck > Find next misspelling will allow you to navigate between each misspelled word inside Notepad++

                              Btw, my final purpose here is that i have an excel with some misspelling words inside that can not figure it out, so i copy it into NPP to highlight it out. And then i need to fix in excel finally.

                              I think maybe “copy from Excel to Notepad++; use DSpellCheck to highlight and navigate the misspelled words and then fix them in Notepad++; then copy normally (not using NppExport plugin) and paste back into Excel” would be a possible sequence for you to try.

                              Michael VincentM 1 Reply Last reply Reply Quote 1
                              • Michael VincentM
                                Michael Vincent @PeterJones
                                last edited by

                                @PeterJones said in How to highlight the underlined squiggle words:

                                DSpellCheck squiggle highlighting, I don’t know of a way to filter on that

                                I did some playing with “PerlScript” but got a little farther with NppExec. It “seems” DSpellCheck uses indicator 19 for its squiggly lines (this is process of elimination, I looked at the DSpellCheck code and couldn’t find any of the Scintilla commands I’d expect would implement this).

                                The following “works”:

                                NPP_CONSOLE keep
                                
                                SET LOCAL INDICATOR = 19
                                
                                SCI_SENDMSG SCI_GETLENGTH
                                SET LOCAL END = $(MSG_RESULT)
                                
                                SET LOCAL I = 0
                                SET LOCAL INDICEND = 0
                                // FOR
                                :LOOP
                                
                                    SCI_SENDMSG SCI_GOTOPOS $(I)
                                    
                                    SCI_SENDMSG SCI_INDICATOREND $(INDICATOR) $(I)
                                    IF "$(MSG_RESULT)"=="0" GOTO END
                                    
                                    SET LOCAL INDICSTART = $(MSG_RESULT)
                                    SCI_SENDMSG SCI_INDICATOREND $(INDICATOR) $(INDICSTART)
                                    SET LOCAL INDICEND = $(MSG_RESULT)
                                    
                                    SET LOCAL I = $(INDICEND)
                                    IF "$(I)"=="$(END)" GOTO END
                                
                                    ECHO $(INDICSTART) - $(INDICEND)
                                
                                    GOTO LOOP
                                
                                :END
                                

                                However, it only seems to get the next squiggly indicator if it’s visible on screen. So in a long document where you’d find a squiggly and then have to page down to find the next one, this script only finds the first. The Scintilla docs don’t describe this limitation so not sure why it’s working that way. Also, using the SCI_GETINDICATORVALUE and SCI_GETINDICATORCURRENT don’t return the value I’d expect for DSpellCheck indicators (which I discovered was 19).

                                Obviously if this actually worked, you could use a the Scintilla multiple selection API to highlight the squigglies found as you iterate through the doc.

                                Cheers.

                                Michael VincentM 1 Reply Last reply Reply Quote 2
                                • Michael VincentM
                                  Michael Vincent
                                  last edited by

                                  Also, DSpellCheck has:

                                  Plugins => DSpellCheck => Additional Actions => Copy All Misspelled Words to Clipboard

                                  Does that help?

                                  Cheers.

                                  1 Reply Last reply Reply Quote 2
                                  • Mia NguyenM
                                    Mia Nguyen
                                    last edited by

                                    It seems i can not filter the rows as function is excel. Sad though…lol
                                    Thanks guys anyway…

                                    1 Reply Last reply Reply Quote 0
                                    • Michael VincentM
                                      Michael Vincent @Michael Vincent
                                      last edited by

                                      @Michael-Vincent said in How to highlight the underlined squiggle words:

                                      However, it only seems to get the next squiggly indicator if it’s visible on screen

                                      Now thinking this is an optimization in DSpellCheck for larger documents - only spell check the visible portions of a large document so the squigglys aren’t added to misspelled words off screen until those words are scrolled on screen which is why a top to bottom document search doesn’t turn up squigglies off screen.

                                      Investigating more with “PerlScript”.

                                      Cheers.

                                      Michael VincentM 1 Reply Last reply Reply Quote 0
                                      • Michael VincentM
                                        Michael Vincent @Michael Vincent
                                        last edited by

                                        @Michael-Vincent said in How to highlight the underlined squiggle words:

                                        Investigating more with “PerlScript”.

                                        I give up. Using the script to “scroll” through the doc does find more squigglies, but not all of them. I’m pretty sure this is due to a DSpellCheck optimization as I alluded to in previous post. Need to put my own indicators on a large document and see if the SCI_INDICATORSTART/END API finds them all.

                                        I tried 2 ways, with SCI_INDICATORSTART/END:

                                        #!perl
                                        
                                        use strict;
                                        use warnings;
                                        
                                        use Time::HiRes qw/sleep/;
                                        use Win32::Mechanize::NotepadPlusPlus ':main';
                                        
                                        my $indicator = 19;
                                        my $increment = 750;
                                        my ( $indicStart, $indicEnd ) = ( 0, 0 );
                                        my $loc = 0;
                                        my $end = editor->getLength();
                                        my $HELP = 0;
                                        while ( $loc < $end ) {
                                        
                                            if ( not $loc % $increment ) {
                                                editor->gotoPos( $loc );
                                                sleep 0.5;
                                            }
                                        
                                            $indicStart = editor->indicatorEnd( 19, $loc );
                                            if ( $indicStart == 0 ) {
                                                $HELP = 1;
                                                next;
                                            }
                                            $indicEnd = editor->indicatorEnd( 19, $indicStart );
                                        
                                            if ( $indicEnd == $end ) {
                                                $HELP = 1;
                                                next;
                                            }
                                            $loc = $indicEnd;
                                            print "$indicStart - $indicEnd\n";
                                        } continue {
                                            if ( $HELP ) {
                                                $HELP = 0;
                                                $loc = int( $loc / $increment +1 ) * $increment;
                                                if ( $loc >= $end ) {
                                                    last;
                                                }
                                            }
                                        }
                                        

                                        and with SCI_INDICATORVALUEAT:

                                        #!perl
                                        
                                        use strict;
                                        use warnings;
                                        
                                        use Time::HiRes qw/sleep/;
                                        use Win32::Mechanize::NotepadPlusPlus ':main';
                                        
                                        my $indicator = 19;
                                        
                                        my $FOUND = 0;
                                        for my $loc ( 0 .. editor->getLength() ) {
                                        
                                            if ( not $loc % 500 ) {
                                                editor->gotoPos( $loc );
                                                sleep 0.50;
                                            }
                                            my $iva = editor->indicatorValueAt( $indicator, $loc );
                                            if ( $iva and not $FOUND ) {
                                                print "$loc";
                                                $FOUND = 1;
                                            } elsif ( not $iva and $FOUND ) {
                                                printf " - %i\n", $loc - 1;
                                                $FOUND = 0;
                                            }
                                        }
                                        

                                        Cheers.

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

                                          Hello, @mia-nguyen, @peterjones, @alan-kilborn, @ekopalypse, @michael-vincent and All,

                                          Two months ago, I asked Sergey Smushin ( aka @Predelnik ), the DSpellCheck’s author, for the following request :

                                          https://github.com/Predelnik/DSpellCheck/issues/201

                                          I saw that a commit, referencing that issue, has been added :

                                          https://github.com/Predelnik/DSpellCheck/commit/9b5e740ce4440669d6daf29ca98d77edd99d466c

                                          From the moment that any line containing a misspelled word can be bookmarked, it would be easy to gather all these lines for subsequent processes !


                                          @michael-vincent said :

                                          Now thinking this is an optimization in DSpellCheck for larger documents - only spell check the visible portions of a large document so the squigglys aren’t added to misspelled words off screen until those words are scrolled on screen which is why a top to bottom document search doesn’t turn up squigglies off screen.

                                          If so, may be, studying the commit, above, would give some hues about the way, used by @predelnik, to bookmark, in one go, all lines with misspelled words ?

                                          Just a non-coder thought ;-))

                                          BR

                                          guy038

                                          1 Reply Last reply Reply Quote 1
                                          • EkopalypseE
                                            Ekopalypse @Michael Vincent
                                            last edited by

                                            @Michael-Vincent

                                            I did a quick test and it seems that logic below works

                                            INDICATOR_TO_SEARCH = 31
                                            length = editor.getLength()
                                            start = editor.indicatorStart(INDICATOR_TO_SEARCH, -1)
                                            end = editor.indicatorEnd(INDICATOR_TO_SEARCH, -1)
                                            
                                            real_start = start if editor.indicatorValueAt(INDICATOR_TO_SEARCH, start) else end
                                            print(start, end, length, real_start)
                                            
                                            i = 100
                                            while real_start != length:
                                                i -= 1
                                                if i == 0:
                                                    print('ahhh endless loop - breaking')
                                                    break
                                                end = editor.indicatorEnd(INDICATOR_TO_SEARCH, real_start)
                                                print(editor.getTextRange(real_start, end))
                                                print()
                                                real_start = editor.indicatorEnd(INDICATOR_TO_SEARCH, end)
                                            
                                            Michael VincentM 1 Reply Last reply Reply Quote 1
                                            • First post
                                              Last post
                                            The Community of users of the Notepad++ text editor.
                                            Powered by NodeBB | Contributors