Function List Plugin on Notepad++ 5.3
Function List is one of the many cool features of Notepad++. But the latest version requires extra steps to set up Function List properly. This 2-part article shows how to install Function List and how to configure the new parser rules for your own favorite language.
A Problem
The problem happens to be that the latest version of Notepad++ (5.3 as of this writing) doesn’t have the Function List plugin packaged with it. You certainly can download the Plugin separately – it is the first plugin listed in the Plugin table on the Notepad++ website. But it appears that the developer of Function List, Jens Lorenz, has been busy enough to not have updated the code since Aug 2007. The latest downloadable version of Function List is from July 26, 2007 and is an Alpha version. Further, this version (v2.0 alpha) is only compatible with the ANSI version of Notepad++.
So, if you want Function List to work with Notepad++, you need to use the ANSI version of Notepad++. Jens Lorenz significantly updated the parsing engine for Function List in v2.0 alpha and has included a brief Howto and a sample parsing rules file (FunctionListRules.xml).
Installing Function List
To install Function List 2.0 alpha, download the zip file from the Notepad++ website and extract its contents to some directory. Now, copy FunctionList.dll to the ‘plugins’ folder. Copy ‘FunctionListRules.xml’ and ‘C++.flb’ to the ‘plugins\Config’ folder. If you feel like it, copy the ‘Howto’ file to the ‘plugins\doc’ folder and rename it appropriately (I named it ‘FunctionList_HOWTO.txt’.
This should be sufficient to get FunctionList working again in Notepad++. This is what your Function List will probably look like.
You can also switch to ‘Tree View’ by clicking on the rightmost icon on the Function List toolbar. This will categorize items into ‘Include’, ‘Function’ and ‘# Define’. But you can go even further and add small bitmap icons to each item. Jens made this feature customizable and he has created a sample icon list in C++.flb. You can activate this feature by selecting Plugins->Function List->Language Parsing Rules from the menu bar. You will then need to select the ‘C++’ rules in the list of parsed languages. The ‘Bitmap List’ checkbox should be unchecked by default. Check that checkbox and click on the double arrow button next to the text box. This will let you select an ‘flb’ file with the icon bitmaps. Browse to the Plugins\Config directory and choose C++.flb. When you come back to Notepad++ and choose the ‘Tree view’ option, you will see a much cleaner list like the one below:
In part 2 of this post, we will see how to create your own parsing rules and icon list. I will specifically show the configuration for Python parsing.
Weird – I’ve installed Function List and it shows up on the menu, but the language rules are not being used?! The FunctionListRules.xml has rules as expected, but if I look in the Language Parsing Rules dialog, there are no rules – what’s up w/that?! Anyone know how to fix this?
I’m on WinXP Pro sp2, using NP++ v5.3.1 unicode
@Mark
have a look on your personal setting folder (document and settingusenameapplication datanotepad++pluginsconfig…) This is THE place you have to put the default xml file you got with the plugin. (BTW, I deleted xml cfg file on “program files”, to avoid future error.)
I have tried to copy the configurarion files as described by Claude, but continues not working. Any idea why?
Also with the zipped file doesn’t comes the C++.flb configuration file.
Please help
Hi,
I take N++ UNICODE version 5.3 then I get the UNICODE beta version of FunctionList there :
http://sourceforge.net/apps/mediawiki/notepad-plus/index.php?title=Plugin_Central
I get the same problem has Mark, so I copy the file has Claude says but it was change automaticaly when I open N++. So I copy again and change the file attribut to read only… It works (but I can’t had new parsing rules)
@claude
Nice claude, help me wit this problem. Thx 🙂
@Steph, I had the same issue with the file being overwritten, but it seemed to happen on CLOSE, not OPEN.
So, once I figured that out and closed N++, _then_ copied the FunctionList.xml into
…application_datanotepad++… as @Claude said, things worked. No need to mark it read-only, and therefore new rules can be added.
I Agree with Todd here. I had to close N++ before dropping the xml config file in C:Documents and SettingsUSERNAMEApplication DataNotepad++pluginsconfig directory.
I am using the FunctionList_2_0_UNI_dll.zip beta version of the Functions plugin and N++ 5.4.5
freak3dot
cheers Claude, good tip 🙂
This is precisely what I was looking for, thanks.
I am surprised they didn’t include this plugin in the installer by default – it is so handy!
Just one little remark for Windows 7 users, the “Application Data” folder is this one:
C:Users%username%AppDataRoamingNotepad++
Todd and freak3dot are right. Notepad++ will hold the file and revert it to some crappy old version if it is open when you copy.
Great! I was going mad!
Function List was working, but it did not show nothing. But now I’m happy 🙂
Hi,
I have Notepad++ version 5.8.6 and I install this handy plugin (FunctionList_2_UNI_dll.zip) but… it isn’t work.
I have Windows Vista Business edition and I try to put FunctionListRules.xml in c:users%username%Local SettingsApplication DataNotepad++Config but it isn’t work: Notepad++ always says that No Rule Defined.
Any help is welcome! Thanks!
Javier
Try using the dll on Ruslan website.
I was having same problem – when I would start Function List in Notepad++ it would always say No Rule Defined. Just about to give up, and I tried one more thing, working off a suggestion made here. Note – I’m on a Windows XP system.
First, FunctionList.dll should go in the notepad++ program folder/plugins as the instructions say.
But the other files: C++.flb, functionlistrlues.xml, and the bmp file ALL go in your
C:Documents and SettingsUserApplication DataNotepad++pluginsconfig folder
I just did this as a last ditch thing, and I went to Notepad++ and bingo it was listing my functions in my PHP file.
Thanks Tom, that worked for me too!
Don’t forget to update the XML file in the roaming directory too!
What I did:
Upgrade Notepad++
Installed Unicode version of functionlist
Closed Notepad
Copied dll into plugins directory
Copied everything else into plugins/config
Overwrite ruleslist xml file in application roaming directory.
Now shiney. 🙂
Yep, the trick is to have NPP closed when performing the .xml copy to the roaming directory.
what [Steph Says] is right…
the attribute of the file: FunctionListRules.xml in the dir of [C:Users%username%AppDataRoamingNotepad++…]should be set to read only!!!
I had the same problem as Tom. His solution fixed it.
I think it was because Notepad++ was open!