Function List

Ce plugin permettait de lister, trier et filtrer les fonctions de son programme afin d’y accéder rapidement. Il a été développé entre 2007 et 2010 par Jens Lorenz, avant que le plugin SourceCookifier à partir de 2010, puis la liste des fonctions native de Notepad++ à partir de 2013 n’en recouvrent les fonctionnalités.

Les sources sont disponibles sur le projet SourceForge.

Installation

Notepad++ intègre nativement une Liste des fonctions depuis la version 7 qui recouvre les fonctionnalités de ce plugin.

Il peut être installé ou désinstallé simplement depuis le Plugin Manager.

Utilisation

Panneau de FonctionList

FonctionList est accessible :

Il suffit de double-cliquer sur un nom de fonction pour y être ammené.

La première ligne du panneau indique l’état du plugin :

Si No Rule Defined s’affiche pour des langages que le plugin est sencé prendre en compte, c’est qu’il y a un problème avec le fichier de configuration FunctionListRules.xml (introuvable, mauvaise version…). Revoir l’étape d’installation.

La barre d’outils contiens les outils suivants :

Ajouter des règles

Il est possible de créer ses propres règles par le biais de la fenêtre Compléments -> Function List -> Language Parsing Rules…, ou en modifiant manuellement le fichier FunctionListRules.xml (voir l’emplacement des fichiers de configuration dans le chapitre plugins).

La création de règles vous demandera une connaissance de base des expressions régulières.

Pour rajouter la prise en compte des classes en Python, il suffit par exemple de créer un nouveau groupe similaire au groupe FUNCTIONS, en remplaçant le mot def dans Function Begin par class.

Création d'une règle pour les classes Python dans la fenêtre *Language Parsing Rules*

Cette configuration est toute fois très limitée, les fonctions de premier niveau et les méthodes de classes étant mêlées. Pour une configuration plus complète du langage python, vous pouvez remplacer le nœud en question dans le fichier de configuration par celui-ci :

<Language name="Python" imagelistpath="">
    <CommList param1="#" param2="" />
    <Group name="GlobalFunction" subgroup="Function" icon="0" child="0" autoexp="4" matchcase="1" fendtobbeg="" bbegtobend="" keywords="">
        <Rules regexbeg="^def\s+" regexfunc="[\w_]+" regexend="" bodybegin="" bodyend="" sep="" />
    </Group>
    <Group name="Class" subgroup="Function" icon="0" child="0" autoexp="4" matchcase="1" fendtobbeg="" bbegtobend="" keywords="">
        <Rules regexbeg="^class\s+" regexfunc="[\w_]+" regexend="" bodybegin="" bodyend="" sep="" />
    </Group>
    <Group name="Function" subgroup="" icon="0" child="0" autoexp="4" matchcase="1" fendtobbeg="" bbegtobend="" keywords="">
        <Rules regexbeg="^[\s\t]+def\s+" regexfunc="[\w_]+" regexend="" bodybegin=":" bodyend="$" sep="" />
    </Group>
</Language>

Pour actualiser les changements, sélectionnez un autre langage, cliquez sur Try!, sélectionnez Python et cliquez sur Try!.