Notepad++ 6.4 introduced a built-in Function List feature to replace the add-onย by the same name. By v6.4.5, the plugin was disabled by the installer. However it wasn't until v6.5 that it supported anything formats other than C++ and JavaScript.
Unfortunately upgrading from Notepad++ 6.4.5 to 6.5 does not automatically activate popular languages like PHP, Perl, XML, Batch, Ini and Nsis.
The solution is as easy as 1-2-3:
- Close Notepad++
- Press WindowsKey-R, paste "%APPDATA%\notepad++\" and press ENTER
- Delete the file called functionList.xml.
That's it. When you restart Notepad++, it will use the updated version of functionList.xml included with Notepad++ v6.5 and the Function List will work for all of the above mentioned file types.
Be sure to keep this tip handy as the next version of Notepad++ will very likely add more formats and may not upgrade the file again.
October 17, 2013 at 9:45 AM
Thanks a bunch! I’m so happy to have a Function list finally! I never could get 6.4 to work properly and was disappointed when I saw the change log for 6.5 and it still didn’t work.
October 17, 2013 at 9:58 AM
Thanks for your comment Wade. I know exactly how you felt. Glad it helped.
October 28, 2013 at 10:38 PM
Excellent! Finally got it working. Thanks so very much for posting this!
January 12, 2014 at 12:35 PM
You’re very welcome David. And thank you for sharing feedback.
December 14, 2013 at 3:38 AM
Thanks for this valuable tip. I was really struggling to make this work.
Got things working (y). Thanks a LOT Michael for sharing.
January 12, 2014 at 12:34 PM
Hi Modu, thank you for your feedback. Glad to hear this article helped.
January 7, 2014 at 5:52 AM
Yes … It finally worked.
THANKS A LOT …
Should it not be part of the forums and/or tips/tricks in the Notepad++ website.
Thanks, once again …
January 12, 2014 at 12:33 PM
I did add this tip to the forums as well. You are right though, this should be part of some kind of FAQ page. Hopefully the author will add it there one day.
January 7, 2014 at 5:56 AM
Also, I realised that I was making changes to the functionList.xml file in the ProgramFiles(X86)\Notepad++ directory instead of the file in %APPDATA%\Notepad++\ directory.
Great Tip …
January 12, 2014 at 12:31 PM
Glad it helped Srini.
January 8, 2014 at 10:44 PM
Hmmmm….I’ve installed the Notepad++ 6.5.3 and followed the Notepad++ installation routine. During installation the process told me it was going to disable the “Function List” plugin since it was an issue(unstable??). I ran the three lines listed in the above solution…but the list of functions does not show after I reopen the Notepad++ SW. What am I doing wrong? I found the FunctionList.dll in the “disabled ” folder. Do I need to move “FunctionList.dll” back into the “plugins” folder??
Thanks
January 12, 2014 at 12:30 PM
Hi Kevin,
Thank you for your comment. I remember going through the same thing when I upgraded.
The Function List plugin that was disabled is the old one that is was an add on for Notepad++. As the function is now integrated, the separate plugin is no longer required so this is normal and there is no need to do anything further witht eh FunctionList.dll.
What you need to do now is to simply turn on the Function List. You can do this by clicking View > Function List. When enabled, there will be a checkmark next to Function List in the View menu and the function list will appear in the left-hand pane of the editor.
Best regards,
Michael Milette
January 9, 2014 at 4:58 AM
Thanks a lot. That really helped!
January 30, 2014 at 2:02 PM
I tried this, but no joy. I don’t see the function list. I do see the checkmark on the menu, and the toggle button is enabled… I deleted functionList.xml in the suggested folder… but when that didn’t work, I was going to restore it… but the OS (W7) reports another copy of the file in the “roaming”. Double checked and that file gets added back into the folder when I start np++.
That sounds like what one would want… but the panel doesn’t display. Any thoughts?
January 30, 2014 at 3:04 PM
Hi Gene,
Do you see any side panel at all? If so, take a look all the way at the bottom. If you have more than one panel open at a time, there will be tabs. Click the one that has an “F” in it.
If you see the Function List side panel but there is nothing in it, check what language the editor thinks you are editing. It should be indicated in the left side of the status bar at the bottom of the editor. The new function list panel is not as feature rich in my opinion as the old plugin. For example, in a PHP file, it sometimes doesn’t include all of the classes and/or functions though it seems to be getting better with each release. Other languages may have even less support.
If you don’t see any side panel, that’s a different issue completely. Try turning on the Document Map panel. It’s right above the Function List option in the View menu. This will at least tell us whether the side panel feature is working or not on your computer.
I use Notepad++ on Windows 7 as well so it’s not an OS version related issue. I am assuming you are running Service Pack 1.
Other than that, could there be a conflict with some other plugin you are using? Try starting Notepad++ without any plugins. You’ll find the command line parameter to do this on the following page: http://sourceforge.net/apps/mediawiki/notepad-plus/?title=Command_Line_Switches
Best regards,
Michael
December 14, 2014 at 1:11 PM
Michael,
Thank you for your very timely clues in what to look for… I just installed (Zip version) 6.6.9… and have been wresting with FunctionList. I develop ASP.Net in VB, with code and HTML all in one .aspx file.
When I open a .aspx file, Notepad++ says I’m opening a text file. If I mark the language as VB, then the function list displays. However, if I reopen the file, I have to re-specify the language.
In the FunctionList.xml file, in the association, I have:
I also copied the vb_function parser, and named it “aspx”:
Can you suggest what I could do that would force Notepad++ to recognize that .aspx files should be treated as VB?
Thanks,
..eric
March 1, 2014 at 10:59 PM
The Function List feature does not work for Tcl code (I am using Notepad++ 6.5.2). Can anyone point me in the right direction?
Thanks.
March 11, 2014 at 12:50 PM
Thanks for the tip – it really helped me too! ๐
April 21, 2014 at 2:27 PM
Is there a way include the function list within the short cut mapper? I do not see it as an available option to short cut.
Thanks!
May 1, 2014 at 1:26 PM
Not that I could see. If you figure it out, please let me know!
April 30, 2014 at 4:49 PM
Thanks – I was wondering why it didn’t worked after the upgrade. You saved me a lot of time! ๐
May 21, 2014 at 12:03 PM
Thanks for this – worked like a charm!
May 29, 2014 at 3:15 AM
In Javascript, N++ 6.63 is not working very well. I have a .js with 50 functions of type:
function sphere ( N:float, k:int):Vector3{
and 35 of them are missing from the function list. the previous plugin version worked but i have changed OS and the new version isn’t useable in JS.
I had to revert to the previous version.
July 15, 2014 at 12:48 AM
Thank you, it worked!
February 11, 2015 at 11:08 PM
Thanks for this. I had it working on my previous computer, and couldn’t see why it was always blank now. It helps my productivity enormously.
February 26, 2015 at 11:57 PM
Thank you! Worked for me in Notepad++ 6.7.4. I’m looking forward to using the Function List, thanks for making it possible.
March 3, 2015 at 5:12 AM
Thank you for this!
April 7, 2015 at 8:25 AM
Hi,
I am using the Notepad++ V6.6.9 and I have the function list panel.
My question is if the is any way of indicate your position in the source file by highlighting the (current) function ?
So as you scroll to different locations in the file the highlighted item in the function list panel changes accordingly.
Thanks
April 7, 2015 at 8:55 AM
Hi Silvio, Thank you for your question. I was just wondering that myself last week but have yet to find any way of doing that. There might be something in the plugins. Let me know if you find a solution.
July 12, 2015 at 5:29 PM
Hi, this morning I upgraded to 6.7.9.2. I got a message telling me the function list was moved to “disabled”. On restart I still get a function list window but it is empty.
FYI I am running Windows 7 and writing in, wait for it, Pascal which NPP identifies on the status bar.
I have got used to having the function list at my fingertips so any advice is appreciated.
Cheers
July 28, 2015 at 11:39 PM
Hi Tim,
The Function List used to be a plugin. Now it is an integrated part of Notepad++. Just make sure the old plugin is removed. Once you have Notepad++ running, click View > Function List and it should re-appear. Depending on the language you are editing, it is still a little buggy in my opinion but it usually gets better with every new release of Notepad++. If the list appears empty and you are editing code, follow the above instructions to get it working again.
Best regards,
Michael Milette
July 22, 2015 at 6:03 AM
There’s not much point in paying for UltraEdit any more as with the function list, ctags and the explorer there not much else to want.
I gave them 5-Euro for a really good editor and they even came back with a thank-you.
Brilliant stuff ….
August 20, 2015 at 6:03 PM
OMG! UltraEdit in 2015???!?! I used to LIVE in there but moved to the free and easy to update NPP years ago. Good mode on your part. ๐
December 20, 2015 at 8:47 PM
I am using Notepad++ v6.8.6 and it seems that Function list is not defined for Pascal. In the generated AppData\FunctionList.xml, associationMap is defined for Pascal (11) but <association langID is not. I realise that the function list can be defined by entering instructions in the Parsers section, but my initial attempts are clumsy to say the least. Has anyone developed the code for a Pascal function list. Assistance greatly appreciated.
February 7, 2016 at 6:25 PM
Hi Errol,
I can empathize with your struggle. My experience with the built-in function list is that it either works (may or may not list all functions) or it doesn’t at all and many languages are still not fully supported. Worst of all, you can’t do it yourself due to bugs in Notepad++.
A couple of months ago, I tried to get this working with a colleague for a Pascal like language. We ended up re-configuring the NSIS language setting since we could not create new Function list settings and syntax definition for the language keywords. It was a very kludgy solution which required that they manually change the Notepad++ Language setting to NSIS in order to get the function list to work properly every time a Pascal file was opened.
That said, if you can’t get it to work, try an older version of Notepad++, before they integrate the function list feature into the core application. Personally I found that the old “Function List” plugin worked better. Unfortunately it is no longer supported in the current releases of Notepad++. Hopefully the author will get around to fixing this part of Notepad++ one of these days.
Hope something in all of this helps.
Best regards,
Michael
January 13, 2019 at 7:52 AM
Worked! As I use the N++ Arduino Plugin, I needed the Function List to work.
Here’s how i fixed Arduino Function List:
%APPDATA%\notepad++\functionList.xml is the workfile Notepad++ uses.
It’s the one to edit, you may also want to backup this file.
If you want the most updated Function List, copy it from C:\Program Files (x86)\Notepad++\functionList.xml
And paste into working directory %APPDATA%\notepad++\
Added to associationMap:
Added to parsers(copied c++):
Hope this helps Arduino users.
February 9, 2019 at 11:24 AM
Thanks for sharing this great tip Per Emil! As someone who dabbles in Arduino development myself, this tip is much appreciated.
Best regards,
Michael
January 22, 2019 at 4:05 PM
Is there a way to output “Function List” in some way? Such as cut and paste or print etc.
February 9, 2019 at 11:12 AM
Hi Kenneth,
Thank you for asking a great question. Unfortunately I am not aware of any way to do this from within Notepad++. However…
Depending on the programming language you are using, you could use the command line “find” in Windows or “grep” in Linux (also downloadable for Windows) to help you out. For example, in PHP, you would search for “function “. In Python, it would be “def “. Be sure to include the trailing space.
For example, assuming you are using PHP in Windows, you could use something similar to the following line:
find "function " lib.php|find /V " function"|find /V "$function"
This line finds all of the instances of “function ” and then excludes instances where function is preceded by a space or a dollar sign. The grep command is much more powerful and could do a better job. It would look something like this:
grep "^function " lib.php
Of course this assumes that all of your functions start at the beginning of a line in column 1.
You could do something similar if you wanted a listing of classes where you would search for “class ” – again including the trailing space.
This can also work for JavaScript except for things like named or anonymous functions. Languages like C++ and Java would be much more complicated.
Of course there is always a print-screen however I doubt that is what you are looking for. ๐
Hope something in all of this helps.
Best regards,
Michael