2009-10-27 3 views
1

[Utilisation Notepad ++ 5.5.1 et fonction Liste plug-in v2.0beta]Notepad ++ Liste des fonctions plug-in: règles d'analyse syntaxique Javascript pour soutenir les fonctions imbriquées

J'essaie d'ajouter ou de modifier les règles existantes pour les fonctions Javascript pour pour montrer les fonctions imbriquées (ou membres) dans la liste des fonctions. Par exemple:

function parentA (base){ 
    function childA (exp){ 
    return Math.pow(base, exp); 
    } 

    alert(childA(2)); // call private function 
} 

parentA(4); // alerts 4^2 = 16 


var parentB = function(str1){ 
    return { 
    childB: function(str2){ 
     alert(str1 + str2); 
    } 
    }; 
}('foo'); 

parentB.childB('bar'); // alerts 'foobar' 

Le parentA et parentB fonctions sont répertoriées, mais le Childa et fonctions childB sont pas énumérés. Ce paradigme imbriqué-enfant est commun dans les bibliothèques Javascript et le code réutilisable, et important d'être entièrement navigable dans la liste des fonctions.

Est-ce que cela peut être fait avec des groupes et/ou des sous-groupes? J'ai essayé de fouiller dans les règles d'analyse pour d'autres langages basés sur les classes (qui listent les fonctions membres en utilisant des sous-groupes), mais je n'arrive pas à faire fonctionner ceci pour Javascript.

Des suggestions? Quelqu'un at-il accompli ceci pour leur propre usage? Je suis probablement stupide, mais je deviens fou en essayant de comprendre celui-ci - s'il vous plaît aidez! ;)

Répondre

2

Retirez les caractères « corps commencer » et « fin du corps » et il fonctionnera:

<Group name="Functions" subgroup="" icon="" child="" autoexp="0" matchcase="0" fendtobbeg="" bbegtobend="" keywords=""> 
    <Rules regexbeg="^\s*function" regexfunc='\s*[&quot;\w_]+' regexend="" bodybegin="" bodyend="" sep="" /> 
</Group> 

(cet exemple ne fonctionne que pour le premier type de fonctions que vous avez mis comme exemple)

+1

Merci! J'ai depuis longtemps utilisé le plugin SourceCookifier (qui est remarquable) au lieu de FunctionList, donc je ne peux pas tester cela pour vérifier - mais je vais l'accepter pour l'effort;) – acatalept

Questions connexes