• Login
Community
  • Login

Parameter hints on userDefinedLang

Scheduled Pinned Locked Moved Help wanted · · · – – – · · ·
5 Posts 2 Posters 438 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.
  • V
    Vincent Van Humbeeck
    last edited by Oct 2, 2021, 5:51 PM

    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.

    P 1 Reply Last reply Oct 2, 2021, 6:36 PM Reply Quote 0
    • P
      PeterJones @Vincent Van Humbeeck
      last edited by Oct 2, 2021, 6:36 PM

      @Vincent-Van-Humbeeck ,

      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 called Language With Space, with a couple keywords and the extension lws. 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 by name 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

      V 1 Reply Last reply Oct 2, 2021, 7:05 PM Reply Quote 1
      • V
        Vincent Van Humbeeck @PeterJones
        last edited by Vincent Van Humbeeck Oct 2, 2021, 7:08 PM Oct 2, 2021, 7:05 PM

        @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.

        P 1 Reply Last reply Oct 2, 2021, 7:48 PM Reply Quote 0
        • P
          PeterJones @Vincent Van Humbeeck
          last edited by Oct 2, 2021, 7:48 PM

          @Vincent-Van-Humbeeck ,

          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 main userDefinedLang.xml file. Then exit Notepad++ and restart, and it will see the copy in the folder, and recognize that UDL again.

          V 1 Reply Last reply Oct 2, 2021, 10:01 PM Reply Quote 1
          • V
            Vincent Van Humbeeck @PeterJones
            last edited by Oct 2, 2021, 10:01 PM

            @PeterJones

            Thank you very much.
            It worked!

            1 Reply Last reply Reply Quote 0
            5 out of 5
            • First post
              5/5
              Last post
            The Community of users of the Notepad++ text editor.
            Powered by NodeBB | Contributors