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.
2013-10-17 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.
2013-10-17 at 9:58 AM
Thanks for your comment Wade. I know exactly how you felt. Glad it helped.
2013-10-28 at 10:38 PM
Excellent! Finally got it working. Thanks so very much for posting this!
2014-01-12 at 12:35 PM
You’re very welcome David. And thank you for sharing feedback.
2013-12-14 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.
2014-01-12 at 12:34 PM
Hi Modu, thank you for your feedback. Glad to hear this article helped.
2014-01-07 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 …
2014-01-12 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.
2014-01-07 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 …
2014-01-12 at 12:31 PM
Glad it helped Srini.
2014-01-08 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
2014-01-12 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
2014-01-09 at 4:58 AM
Thanks a lot. That really helped!
2014-01-30 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?
2014-01-30 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
2014-12-14 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
2014-03-01 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.
2014-03-11 at 12:50 PM
Thanks for the tip – it really helped me too! ๐
2014-04-21 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!
2014-05-01 at 1:26 PM
Not that I could see. If you figure it out, please let me know!
2014-04-30 at 4:49 PM
Thanks – I was wondering why it didn’t worked after the upgrade. You saved me a lot of time! ๐
2014-05-21 at 12:03 PM
Thanks for this – worked like a charm!
2014-05-29 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.
2014-07-15 at 12:48 AM
Thank you, it worked!
2015-02-11 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.
2015-02-26 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.
2015-03-03 at 5:12 AM
Thank you for this!
2015-04-07 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
2015-04-07 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.
2015-07-12 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
2015-07-28 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
2015-07-22 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 ….
2015-08-20 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. ๐
2015-12-20 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.
2016-02-07 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
2019-01-13 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.
2019-02-09 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
2019-01-22 at 4:05 PM
Is there a way to output “Function List” in some way? Such as cut and paste or print etc.
2019-02-09 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