How Notepad++ selects autocomplete?
-
Thanks for the response again. I have NP++ 7.9.5, and here are my autocomplete settings, seemingly the same as yours:
The portable version just works fine. I’ll try to add my files to the portable instance and see if it works, and let you know about it.
Cheers,
Gus -
@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, 0Now 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 theadditionalWordChars="-"
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 theadditionalWordChars="-"
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
andposition
, but doesn’t offer anything forgrapefruit-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
beforegrapefruit-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.