How Notepad++ selects autocomplete?



  • @PeterJones, this is what I found: autocomplete does not work if the language, as defined in the UDL file, contains keywords with a hyphen in it. The actually weird language for what I wanted to create an autocomplete file includes lot of keywords of this kind, such as “category-keyword”. For these, no autocomplete tip will pop up. Even worse, the values of these so-called tags are followed by a space, so a line of the file looks like this:

    category-keyword “value”
    or
    position 0, 1, 0

    Now it would be okay to type a ( character after a tag name to display the hint, but the hyphen makes this language incompatible with the auto-complete logic. :(

    Anyway, thanks a lot for your efforts in explaining this whole situation.



  • @gusztavj said in How Notepad++ selects autocomplete?:

    autocomplete does not work if the language, as defined in the UDL file, contains keywords with a hyphen in it.

    That should be an easy fix. In the autoCompletion\weirdAl.xml file, add the additionalWordChars="-" parameter like so:

    <?xml version="1.0" encoding="UTF-8" ?>
    <NotepadPlus>
            <AutoComplete language="weirdAl">
                    <Environment ignoreCase="no" .....   additionalWordChars="-"/>
                    <KeyWord name=" ...
    

    I have an autoCompletion file for Powerwhell and most Powershell commands are Verb-Thing (e.g., Write-Host, Get-Item) so I include the additionalWordChars="-" and it works for me.

    Cheers.



  • @Michael-Vincent said in How Notepad++ selects autocomplete?:

    That should be an easy fix.

    I wish it were! :) First, thanks for mentioning this attribute. I took a look at the source code, but did not recognized it. But unfortunately it still does not work for me. Here is my piece of code, the AC file:

    <?xml version="1.0" encoding="UTF-8" ?>
    <NotepadPlus>
        <AutoComplete language="weirdAl">
            <Environment ignoreCase="yes" startFunc="(" stopFunc=")" paramSeparator="," terminal=";" additionalWordChars="-"/>
    	<KeyWord name="grapefruit-diet" func="yes">
              <Overload retVal="" descr="drink grapefruit juice only">
                <Param name="SeedlessStuff" />
              </Overload>
              <Overload retVal="" descr="drink grapefruit only">
    	    <Param name="Shapes" />
    	    <Param name="Seasons" />
              </Overload>
    	</KeyWord>
    	<KeyWord name="position" func="yes">
              <Overload retVal="" descr="elements's position">
                <Param name="on x axis" />
                <Param name="on y axis" />
                <Param name="on z axis" />
              </Overload>
    	</KeyWord>		
    	<KeyWord name="grapefruitDiet" func="yes">
    	  <Overload retVal="" descr="eat grapefruit only">
    	    <Param name="Seedless" />
    	  </Overload>
    	  <Overload retVal="" descr="eat grapefruit only">
    	    <Param name="Shape" />
    	    <Param name="Season" />
    	  </Overload>
    	</KeyWord>
        </AutoComplete>
    </NotepadPlus>
    

    It works for grapefruitDiet and position, but doesn’t offer anything for grapefruit-diet.

    Am I overlooking something?

    Cheers.
    Gus



  • A small clarification: it offers the name grapefruit-diet, but does not show the overloads, so nothing appears after typing the bracket, pressing CTRL+SPACE or CTRL+SHIFT+SPACE.



  • @gusztavj said in How Notepad++ selects autocomplete?:

    Am I overlooking something?

    Looks good, but I thought keywords needed to be in alphabetical order?

    Cheers.



  • @Michael-Vincent , tried to move them around, to place grapefruitDiet before grapefruit-diet and the other way around, but with no effect. grapefruitDiet is always recognized, the other is never recognized. :( Became clueless again. Yet, thanks for your help and tips.



  • And finally… I did not find the documentation page at https://npp-user-manual.org/docs/auto-completion/, only a link to a non-existing page. Now that I know the AC file needs to be named after the language name, life is much happier… :D

    Thanks for all your great help!



  • @gusztavj said in How Notepad++ selects autocomplete?:

    And finally… I did not find the documentation page at https://npp-user-manual.org/docs/auto-completion/, only a link to a non-existing page.

    That page exists (I even just checked using your exact link). Maybe you encountered a brief time when there was a server problem…



  • @PeterJones Yes, it works, but beforehand I found a different link that was not working. :)



  • @PeterJones and @Michael-Vincent, would you mind if I summon you to see a new post of mine to see if you have an idea for another autocomplete issue? It’s different from this one and I did not want to mess up this thread with a different issue.


Log in to reply