Parameter hints on userDefinedLang
-
Hello,
I have defined a userDefinedLang, and it is saved within userDefinedLang.xml file in the main directory. However, there are several langages inside that file. I would like to have parameters hints for functions on my langage.
I have understood that you need to create an xml file in the AutoCompletion subdirectory in order to do that, but what name do I give to that file ?
userDefinedLang.xml or myLang.xml ?
I’ve tried both, and it’s not working.
Thanks.
-
Your setup sounds right. So some things to double-check:
Per https://npp-user-manual.org/docs/config-files/#other-configuration-files, the autoCompletion files must go in the Notepad++ installation folder, not in
%AppData%\Notepad++\autoCompletion\
or a cloud folder.The official auto-completion docs at https://npp-user-manual.org/docs/auto-completion/#auto-completion-file-format do confirm that you need to name the file after the UDL language name:
<Language name>.xml
. So, for example, I just created a new UDL calledLanguage With Space
, with a couple keywords and the extensionlws
. I then created<installdir>\autoCompletion\Language With Space.xml
(yes, spaces in the name), which contained<?xml version="1.0" encoding="UTF-8" ?> <NotepadPlus> <AutoComplete language="Language With Space"> <Environment ignoreCase="no" startFunc="(" stopFunc=")" paramSeparator="," terminal=";" /> <KeyWord name="keyOne" /> <KeyWord name="keyThree" /> <KeyWord name="keyTwo" /> </AutoComplete> </NotepadPlus>
… making sure the
language="..."
matched the filename and UDL language name.Please also note that as per https://npp-user-manual.org/docs/auto-completion/#sorting, the
<KeyWord>
tags must be sorted byname
order, and “Failure to do so will result in a non working file, without a warning.”But when all of those are properly followed, I got the KeyWord entries to auto-complete in my User Defined Language
-
@PeterJones
Thanks a lot for the explanations !How could the autocompletion file go into the installation folder ?
There’s already the userDefinedLang.xml file there.
You cannot have the same file name twice there …There’s really something I do not understand : when you create a user defined langage, it’s being added into the userDefinedLang.xml file. It is not created into its own xml file. I can export it to a single xml file, but then how do I select it ?
I’m really not sure on how to create a new langage file that will stand on its own in a separate xml file. It seems to me that the standard way for NP++ will be to add it to the userDefinedLang.xml file.
-
How could the autocompletion file go into the installation folder ?
Sorry, I should have been more clear: " the autoCompletion files must go in the autoCompletion subdirectory of the Notepad++ installation folder". In my defense, my example slightly further in the post was quite explicit, that the auto-completion file for “Lanuage With Space” would be saved as
<installdir>\autoCompletion\Language With Space.xml
There’s already the userDefinedLang.xml file there.
But I didn’t say to call it
userDefinedLang.xml
, so there would have been no conflict.There’s really something I do not understand : when you create a user defined langage, it’s being added into the userDefinedLang.xml file. It is not created into its own xml file. I can export it to a single xml file, but then how do I select it ?
That’s confusing because of a change of mentality that Notepad++ made some versions back: it originally always kept all user defined languages in the one file; the more recent versions allow splitting those out into separate files in
%AppData%\Notepad++\userDefineLangs\
directory (to make for easy import of a new language: just copy the file to that folder and restart Notepad++), but when you initially create a UDL, it will still be created in the combined%AppData%\Notepad++\userDefinedLang.xml
file.not sure on how to create a new langage file that will stand on its own in a separate xml file
If you want it in a separate file for one you create: you can use the UDL dialog’s “Export” button to export it and save it in the
%AppData%\Notepad++\userDefineLangs\
, then use the Remove button to remove the copy in the mainuserDefinedLang.xml
file. Then exit Notepad++ and restart, and it will see the copy in the folder, and recognize that UDL again. -
Thank you very much.
It worked!