Hyperliens pour les appels de fonctions et d'expressions dans l'éditeur de scriptDans l'éditeur de script, serait-il possible de transformer tous les appels aux fonctions ou expressions définies par l'utilisateur en liens hypertextes ? Par exemple, j'aimerais pouvoir cliquer sur une occurrence de « myfunc » dans mon script et être immédiatement redirigé vers l'emplacement où cette fonction est définie. Bien sûr, j'aimerais également disposer d'un bouton « Retour » pour revenir à ma position initiale dans le script. Le même principe s'applique aux expressions.
Automatisation et scriptageRe : Liens hypertextes pour les appels de fonctions et d'expressions dans l'éditeur de scriptSalut. J'espère qu'il n'est pas trop tard pour le faire, mais je voulais juste ajouter d'autres éléments à ma liste de souhaits initiale :
1. (déjà mentionné ci-dessus) Un double-clic sur une fonction ou une expression utilisateur amènera l'utilisateur à la définition dans le script.
2. (déjà mentionné ci-dessus) Un bouton "Précédent" pour ramener l'utilisateur à l'emplacement d'origine dans le script.
3. (Nouveau) Un simple clic sur une fonction utilisateur, une expression ou une variable mettra automatiquement en surbrillance toutes les instances de cet élément dans le script.
4. (Nouveau) Un bouton "Suivant". Supposons que si l'utilisateur a double-cliqué sur la fonction A, puis B, puis C, puis appuie sur "Précédent" pour revenir à la fonction B, le bouton "Suivant" le ramènera à la fonction C.
5. (Nouveau) Si la fenêtre de script a été divisée en deux (par exemple droite/gauche), j'aimerais que les fonctionnalités ci-dessus fonctionnent sur la division actuellement active, par opposition à toujours uniquement sur la division du côté gauche.
6. (Nouveau) Une liste déroulante dans la fenêtre de script affichant toutes les fonctions et expressions utilisateur. En sélectionner un amènera l’utilisateur à cet élément dans le script.
J'espère que cela a du sens et qu'il est raisonnable. Merci!
Re : Liens hypertextes pour les appels de fonctions et d'expressions dans l'éditeur de script - Statut modifié en : AcquittéSalut @nikles , Merci pour votre suggestion! Nous avons pris en compte votre demande et la prendrons en considération.
Re : Liens hypertextes pour les appels de fonctions et d'expressions dans l'éditeur de scriptMettre en surbrillance une fonction définie par l'utilisateur et appuyer sur une touche de fonction pour accéder à la définition serait pratique.
Re : Liens hypertextes pour les appels de fonctions et d'expressions dans l'éditeur de scriptSalut @gzmorgan0 et @nikles , je viens de publier une version mise à jour du script ci-dessus sous le nom Liste des fonctions JSL ajouter à. Vérifiez-le et faites-moi savoir si vous avez des questions.
Re : Liens hypertextes pour les appels de fonctions et d'expressions dans l'éditeur de scriptVoici un aperçu de ce que j'utilise aujourd'hui :
- mettez le texte en surbrillance et appuyez sur Ctrl+F ou Édition>Rechercher>Rechercher et appuyez sur Rechercher, ou
- le script ci-dessous. Il s'agit d'un script précurseur d'un développeur JMP. Il a peut-être une version mise à jour, je ne l'ai pas vue dans la liste des fichiers partagés et des compléments. Je n'ai pas publié son nom, mais je vérifierai s'il dispose d'une version mise à jour.Lorsqu'il est exécuté, ce script crée un affichage de tous les scripts JSL actuellement ouverts et répertorie le numéro de ligne des fonctions. Un double-clic vous y amènera.
/*
Author: xxxxxx xxxxxxx
Copyright (c) 2016 by SAS Institute Inc., Cary, NC 27513, USA. All rights reserved.
*/
Names Default To Here( 1 );
getRoots = Function({searchCriteria=""},
wins = Window();
roots = {};
For( iWin = 1, iWin <= N Items( wins ), iWin++,
If( (wins[iWin] << window class name) == "Script",
tmpNode = Tree Node( wins[iWin] << Get Window Title );
tmpNode << Set Data( wins[iWin] );
tmpNode << Set Icon( "ScriptFile" );
If( searchCriteria != "",
If( !Contains( wins[iWin][Script Box( 1 )] << get text, searchCriteria ), Continue() )
);
lines = wins[iWin][Script Box( 1 )] << Get Lines();
For( iLine = 1, iLine <= N Items( lines ), iLine++,
fName = Regex( lines[iLine], "([a-z\d_\s]+)[\s]*=\s*function\s*\(", "\1", IGNORECASE );
/* () collect everything that matches this pattern [a-z alphabetical, \d digit, _ underscore, \s white space]
+ one or many, so there must be at least one of these items
[\s]* this is white space, but * says 0 or many
= must occur, that is, it is a part of the pattern
function must occur
\s* 0 or many instances of white space ( tab, space, new line)
( left parentheses is part of the pattern
If the pattern is found, \1 states to return the collection, that is the function name
*/
//"([a-z\d_=\s]+)[\s]*<<\s*xpath\s*\(", "\1", IGNORECASE );
If( !Is Missing( fName ),
tmpChildNode = Tree Node( Trim( fName ) || ": " || Char( iLine ) );
tmpChildNode << Set Data( iLine );
tmpChildNode << Set Icon( "FunctionIndex" );
tmpNode << Append( tmpChildNode );
);
);
Insert Into( roots, tmpNode );
)
);
Return(roots);
);
roots = getRoots();
goToLine = Function( {sb, lineNum},
sb << Set Line text( lineNum, sb << get line text(lineNum) );
);
nw = New Window( "JSL Function Manager",
H List Box(
Button Box("",<<SET icon=""></SET>
Re : Liens hypertexte pour les appels de fonctions et d’expressions dans l’éditeur de scriptsouhait associé :
Fonctionnalité « Aller à » de l’éditeur JSL