Function List

From Notepad++ Wiki
Jump to: navigation, search
Displaying a source file as a tree of classes and functions

A number of programming languages, and prominently among them C and C++, structure the code using classes (not in C) and functions. Navigating between them is a definite productivity enhancer for codrs. Since Notepad++ is also a programmer's text editor, it was only fit that it provides such help.

Actually, it had done for a long time through the List plugin, which had been featured on the official distribution of Notepad++. However, due to changes in Notepad++ internals and Scintilla upgrades, and because it was no longer maintained, it became unstable or unusable. Its usefulness was acknowledged up to the point to integrate its main features natively into Notepad++.

Please note than another plugin, Cookifier also provides similar services. It works correctly with v6.6.6.

The integrated function list, like its plugin counterparts, shows in a dockable window, showing a list of functions present in the C or C++ source file. For C++ sources, classes show as nodes which expand, showing the functions in the class, and collapse. All the lists are listed in th order they appear in the document.

Invoke it using View -> Function List, or the corresponding button on the toolbar.

You can switch between order of appearance and alphabetical order for the items. There is a refresh button as well.

Actually, the feature is not limited to C or C++. By adding and enabling lexer in the functionList.xml configuration file, you can extend its use to other Built-in Languages. Parsers are already provided for:

  • C
  • C++
  • DOS Batch
  • INI files
  • Java
  • JavaScript
  • NSIS
  • Perl
  • PHP
  • XML

To learn how to write , associate and enable parsers, please refer to Editing Configuration Files#FunctionList.

As of v6.6.6, nested function or classes are not quite supported, because there is no good TreeView item to represent them on the panel, leading to Notepad++ crashing.

The following forum thread features new or enhanced parser suggestions:

This is a ÿthon parser: