notepad++ Customization of language suggestion (function parameter hint)


Parameters hints can be customized by the user as indicated in this link:

How to create keyword auto-completion definition files

Since version 5.0 Notepad++ has support for so called Calltips, and has introduced a new way of storing autocomplete data. Now everything is stored in the XML format, which allows for easy extension of functionality. By doing so, autocomplete and calltip data are combined in a single file. Older .api plain text files are no longer used by Notepad++, and can be safely deleted if present.

You can choose what srt of auto-completion you wish to have, from Settings -> Preferences -> Auto Completion -> Enable Auto-completion on each input: words from the current document, functions from the current language, or both.

The AutoComplete files are located in the "plugins\APIs" folder, to be found in the Notepad++ Install Folder, most often C:\Program Files\Notepad++.

The syntax of AutoComplete files is simple, but does have a few rules, most importantly correct syntax and proper sorting. If the syntax is incorrect, the XML file will fail to load and AutoComplete will be disabled. A more formal description can be found at Editing Auto-Completion files.

Improper sorting (see below) can cause the AutoComplete function to behave erratic, causing it to fail on certain words.

The basic character set used to recognise keywords is made of letters (i.e. a-z, A-Z, 0-9 digits and the underscore). [...]

<?xml version="1.0" encoding="Windows-1252" ?>
   <AutoComplete language="C++">
       <Environment ignoreCase="no" startFunc="(" stopFunc=")" paramSeparator="," terminal=";" additionalWordChar = "."/>
       <KeyWord name="abs" func="yes">
           <Overload retVal="int" descr="Returns absolute value of given integer">
               <Param name="int number" />

A small example of how the XML file is built is given above. NotepadPlus, AutoComplete and Environment are singleton elements, there should be only one of each, and all of them should be present for correctness, although it is allowed to remove the <Environment> element. Doing so will default all values to the ones given in the above example.

For keywords that are not functions, the Keyword tag is autoclosing and only has the name attribute. To indicate a keyword can be displayed in a calltip, add the attribute func with the value yes. In this case, the Keyword tag is a node and contains other tags.

Then, for each overload of the function, an Overload element should be added ,which specifies the behavior and the parameters of the function. A function must have at least one Overload or it will not be displayed as a calltip. The retVal attribute must be present and specifies the type of the return value, but the descr attribute is optional and describes the functions behavior, like a comment.

You can add newlines in the description if you wish to do so. For each parameter the function takes, a Param element can be added. The name attribute must be present and specifies the type of the parameters and/or any name of the parameter.

In the AutoComplete element you can add the language attribute but it is not used by Notepad++, you can add it for completeness if you wish and can take any string you want.