• Login
Community
  • Login

Autocomplete Items Order Issue

Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
35 Posts 6 Posters 6.3k 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.
  • M
    Michael Vincent @PeterJones
    last edited by Feb 17, 2022, 6:40 PM

    @peterjones said in Autocomplete Items Order Issue:

    That said, I think that it shouldn’t have been sorted with the ?1000

    That’s tough, I agree I’d like to add it later, but the code structure (as-is) really doesn’t allow that. As we loop through the “functions” from the autocomplete language file, we add the ?1000 since later those are merged with the word completions found in the current document. If we wait until the merge, I couldn’t see a way to identify the “functions” and add the icon identifier. Then, the whole merged list is sorted - which means the ?1000 are in the items during the sort. And I’m guessing ? comes after ( in the sort routine.

    Cheers.

    P 1 Reply Last reply Feb 17, 2022, 6:46 PM Reply Quote 1
    • P
      PeterJones @Michael Vincent
      last edited by Feb 17, 2022, 6:46 PM

      @michael-vincent ,

      4e71340c-3d57-4196-a5ae-fe34206f9bea-image.png

      Left paren ( (0x28) comes before ? (0x3F) in ASCII order, so it really should be sorted before by any normal lexicographical sort function.

      M 1 Reply Last reply Feb 17, 2022, 6:48 PM Reply Quote 3
      • M
        Michael Vincent @PeterJones
        last edited by Feb 17, 2022, 6:48 PM

        @peterjones said in Autocomplete Items Order Issue:

        Left paren ( (0x28) comes before ? (0x3F) in ASCII order, so it really should be sorted before by any normal lexicographical sort function.

        Pretty sure that’s the answer then.

        Cheers.

        P V 2 Replies Last reply Feb 17, 2022, 6:59 PM Reply Quote 1
        • P
          PeterJones @Michael Vincent
          last edited by Feb 17, 2022, 6:59 PM

          @michael-vincent ,

          Since you were involved in that old ticket, could you maybe suggest to Don that instead of ?1000, just use a low-ASCII control character (0x01-0x1F – obviously not 0x00 NUL, since that would end the string) – that way it would sort after the words found in the current document, but before any visible ASCII character when sorting the function-list keywords. That would fix the OP issue

          M 1 Reply Last reply Feb 17, 2022, 7:03 PM Reply Quote 3
          • M
            Michael Vincent @PeterJones
            last edited by Feb 17, 2022, 7:03 PM

            @peterjones said in Autocomplete Items Order Issue:

            maybe suggest to Don that instead of ?1000, just use a low-ASCII control character (0x01-0x1F

            the ? is the default in Scintilla so that’s what I used. I didn’t bother trying a low control character for sort order since ? is a non-word character - who would’ve thought it could even be used in the Notepad++ autocomplete/ directory files?

            Hmm… I guess OP?

            You present a good idea. I can try some testing. If it works, it’s a simple enough change.

            Cheers.

            1 Reply Last reply Reply Quote 3
            • L
              Lycan Thrope @Michael Vincent
              last edited by Feb 17, 2022, 7:16 PM

              @michael-vincent ,

              I installed portable 8.3.1 to test whether what I know changed or not, and after copying my own UDL, FunctionList, Autocomplete and overridemap files over to the portable it works as it should.

              Granted, by the way, who decided to include that fx glyph in the Autocomplete keywords and function list? As screenshot shows for me, the only thing different is that glyph, the list still sorts lexocographically.

              NPP8_3_1portableAutoComplete.PNG

              That glyph is now a distraction. :)

              Lee

              A 1 Reply Last reply Feb 17, 2022, 7:20 PM Reply Quote 2
              • A
                Alan Kilborn @Lycan Thrope
                last edited by Feb 17, 2022, 7:20 PM

                @lycan-thrope said in Autocomplete Items Order Issue:

                who decided to include that fx glyph

                That would be @michael-vincent
                Or rather, ultimately, @don-ho

                1 Reply Last reply Reply Quote 1
                • V
                  Valery Bogomolov @Michael Vincent
                  last edited by Feb 17, 2022, 7:35 PM

                  @michael-vincent If Notepad++ could autocomplete snippets - would be very handy to write faster things.

                  For example, this item

                  <KeyWord name="error_reporting(0);&#x0D;&#x0A;ini_set('display_errors',0);&#x0D;&#x0A;ini_set('display_startup_errors',0);&#x0D;&#x0A;"/>

                  inserts each function on the new line.

                  Before:
                  Npp_Autocomplete_Snippet.png

                  After:
                  Npp_Autocomplete_Snippet_Result.png

                  I used hexadecimal XML entities in the php.xml autocomplete file, except spaces &#x20; that broke the autocomplete box behaviour:

                  Hexadecimal Decimal Unicode Name
                  &#x09; or &#09; CHARACTER TABULATION
                  &#x0A; or &#10; LINE FEED (LF)
                  &#x0D; or &#13; CARRIAGE RETURN (CR)
                  &#x20; or &#32; SPACE

                  It’s useful for me. It could be great if somebody could remain the same functionality.

                  My current Notepad++ v8.3.1 autocompletion behaves the same as in the previous version, except for the order of items in the autocomplete results box.

                  Cheers.

                  M 1 Reply Last reply Feb 17, 2022, 7:39 PM Reply Quote 0
                  • M
                    Michael Vincent @Valery Bogomolov
                    last edited by Feb 17, 2022, 7:39 PM

                    @valery-bogomolov

                    Yes, what you are describing is the EXACT use case for the code snippets plugins I mentioned and NOT the intended use of the Notepad++/autoComplete/ files.

                    But alas, @PeterJones had a good suggestion and ASCII record separator 30 (\x1E) seems to be a good alternative that is “lower” in sort order than all visible ASCII characters so should fix the sorting problem if I can get an issue and pull request accepted.

                    Cheers.

                    P M 2 Replies Last reply Feb 17, 2022, 8:37 PM Reply Quote 4
                    • P
                      PeterJones @Michael Vincent
                      last edited by Feb 17, 2022, 8:37 PM

                      @michael-vincent said in Autocomplete Items Order Issue:

                      alas …

                      It’s not just for the snippet-abuse of auto-complete.

                      if I can get an issue and pull request accepted.

                      If you need additional justification: Perfectly valid autocomplete word characters (0-9) are sorted incorrectly because of the use of ? as the image separator character:

                      The following three keywords are sorted in lexicographical sort order. They only have valid word characters (\w) in their keyword. But they still sort incorrectly in the function list:

                      print_r
                      print_r0
                      print_rand
                      

                      The shorter print_r should always come before anything longer that starts with the same sequence.

                      But because asc(0)=48=0x30 is less than asc(?)=63=0x3F, the auto-complete will list print_r0 before print_r. This is a bug in the current implementation.

                      744c0861-2f0b-4be1-b58a-714c7e28f382-image.png

                      <?xml version="1.0" encoding="UTF-8" ?>
                      <!--
                      @author	 Geoffray Warnants - http://www.geoffray.be
                      @version	1.35.20100625
                      -->
                      <NotepadPlus>
                      	<AutoComplete>
                      		<KeyWord name="print_r" func="yes">
                      			<Overload retVal="mixed">
                      				<Param name="mixed expression"/>
                      				<Param name="[bool return=false]"/>
                      			</Overload>
                      		</KeyWord>
                      		<KeyWord name="print_r0" func="yes">
                      			<Overload retVal="mixed">
                      				<Param name="argument"/>
                      			</Overload>
                      		</KeyWord>
                      		<KeyWord name="print_rand" func="yes"/>
                      	</AutoComplete>
                      </NotepadPlus>
                      

                      Feel free to use this image and minimized auto-completion file in your issue report as justification.

                      Notepad++ v8.3.1 (64-bit)
                      Build time : Feb 13 2022 - 15:41:12
                      Path : C:\usr\local\apps\npp\npp.8.3.1.portable.x64\notepad++.exe
                      Command Line :
                      Admin mode : OFF
                      Local Conf mode : ON
                      Cloud Config : OFF
                      OS Name : Windows 10 Enterprise (64-bit)
                      OS Version : 2009
                      OS Build : 19042.1526
                      Current ANSI codepage : 1252
                      Plugins : mimeTools.dll NppConverter.dll NppExport.dll

                      But I definitely agree, @Valery-Bogomolov should learn how to use one of the code-snippet tools (I would personally recommend Michael’s fork of the QuickText plugin, as I found that the most intuitive of the snippet-plugins for my use-case), rather than continuing to abuse the auto-complete files for things it wasn’t intended to do.

                      V 1 Reply Last reply Feb 17, 2022, 9:29 PM Reply Quote 4
                      • M
                        Michael Vincent @Michael Vincent
                        last edited by Feb 17, 2022, 8:40 PM

                        @michael-vincent said in Autocomplete Items Order Issue:

                        get an issue and pull request accepted

                        Done and Done. Well, submitted at least, the accepted part will need to wait a bit.

                        Cheers.

                        1 Reply Last reply Reply Quote 4
                        • V
                          Valery Bogomolov @PeterJones
                          last edited by Feb 17, 2022, 9:29 PM

                          @peterjones I’m sorry for the “snippet-abuse”, I just wanted to get the most from the Npp’s auto-complete interface. I experimented with autocomplete a lot before developing the parser that generates KeyWords for my favorite language PHP. I wrote about it here

                          Unexpectedly, I figured out that I was able, for example, to write faster SQL queries code rather than using any other editor for that.

                          FingerText is not compatible with my configured Notepad++, QuickText is not convenient for me to use, but I use it. NppSnippets is a great plugin, but I have to search for a specific item in a dialog to insert a snippet and it takes some time.

                          Regards.

                          M A 2 Replies Last reply Feb 18, 2022, 12:51 PM Reply Quote 0
                          • M
                            Michael Vincent @Valery Bogomolov
                            last edited by Feb 18, 2022, 12:51 PM

                            @valery-bogomolov

                            You can try the pull request AppVeyor build by downloading, and replacing your current notepad++.exe with the appropriate downloaded, renamed version. Of course, save your current notepad++.exe (notepad++.exe.orig) so you can revert back when done testing.

                            Cheers.

                            V 1 Reply Last reply Feb 18, 2022, 3:31 PM Reply Quote 3
                            • A
                              Alan Kilborn @Valery Bogomolov
                              last edited by Feb 18, 2022, 1:01 PM

                              @valery-bogomolov

                              @michael-vincent said in Autocomplete Items Order Issue:

                              You can try the…

                              More details (if you need them) on exactly how you’d do that are HERE .

                              1 Reply Last reply Reply Quote 3
                              • V
                                Valery Bogomolov @Michael Vincent
                                last edited by Feb 18, 2022, 3:31 PM

                                @michael-vincent Thank you for the great work, but personally, I don’t like the new UX of the autocomplete: the fx icon is really distracting and I have to look down a couple of lines to see the first result. I would prefer to have the old autocomplete if it could be possible, sorry

                                M 1 Reply Last reply Feb 18, 2022, 3:37 PM Reply Quote 1
                                • M
                                  Michael Vincent @Valery Bogomolov
                                  last edited by Feb 18, 2022, 3:37 PM

                                  @valery-bogomolov said in Autocomplete Items Order Issue:

                                  Thank you for the great work

                                  Assuming that means is sorts as you expect now?

                                  V 2 Replies Last reply Feb 18, 2022, 4:09 PM Reply Quote 1
                                  • V
                                    Valery Bogomolov @Michael Vincent
                                    last edited by Valery Bogomolov Feb 18, 2022, 4:11 PM Feb 18, 2022, 4:09 PM

                                    This post is deleted!
                                    1 Reply Last reply Reply Quote 0
                                    • V
                                      Valery Bogomolov @Michael Vincent
                                      last edited by Feb 18, 2022, 4:20 PM

                                      @michael-vincent Ok, now it works. I compared it with the old autocomplete version and the results seem to be the same.

                                      Only fx icon is everywhere. There is a func="yes", or func="no" attribute in XML that describes the KeyWord, and the func attribute is not always required. There could be some language expression like return, but it’s not fx, right?

                                      Best regards.

                                      M 1 Reply Last reply Feb 18, 2022, 5:07 PM Reply Quote 1
                                      • M
                                        Michael Vincent @Valery Bogomolov
                                        last edited by Feb 18, 2022, 5:07 PM

                                        @valery-bogomolov

                                        The “fx” distinguishes the option comes from an autocomplete/*.xml file versus a word from the current file when both word and API autocomplete is active.

                                        Scintilla autocomplete has a lot to be desired and Notepad++ does the best it can with it, but plugins can use autocomplete too (e.g., QuickText, TagLEET, I have PythonScripts that do it to provide Python-IDE-like features with jedi). Only you can’t merge the lists - only 1 autocomplete is active at any time. So which suggestion is coming from what source?

                                        TagLEET global tags file:
                                        df1fbbe0-ccc1-46d5-80f8-57cf3b120ab5-image.png

                                        TagLEET local tags file:
                                        710d17f3-bc6d-477e-b6af-cea349052caf-image.png

                                        QuickText:
                                        e6a76f98-3b3f-4ec2-8564-154fc336970a-image.png

                                        PythonScript custom Python IDE:
                                        99fc1b29-3886-432a-8c57-769cf47e4421-image.png

                                        523668f6-5208-4226-93f7-d0053f27df19-image.png

                                        It’d be nice to see them all in the same list, but alas, each time a character is typed and a best match is found, whatever Notepad++ / Plugin matches best displays it’s abbreviated list. The Icons help determine where in the heck this suggestion is coming from.

                                        This is no different than most other editors that offer autocomplete (VS Code example )
                                        7a6eba30-6a8b-40f1-aacf-e7acb2193295-image.png

                                        Cheers.

                                        V 1 Reply Last reply Feb 18, 2022, 5:54 PM Reply Quote 3
                                        • L
                                          Lycan Thrope
                                          last edited by Feb 18, 2022, 5:24 PM

                                          This post is deleted!
                                          1 Reply Last reply Reply Quote 0
                                          19 out of 35
                                          • First post
                                            19/35
                                            Last post
                                          The Community of users of the Notepad++ text editor.
                                          Powered by NodeBB | Contributors