Fr/Nasal Browser
| The FlightGear forum has a subforum related to: Nasal Scripting |
| Nasal scripting |
|---|
| Nasal internals |
|---|
| Memory Management (GC) |
L'explorateur « Nasal (Namespace) » est une boîte de dialogue créée par l'utilisateur Philosopher qui permet d'avoir un aperçu de l'état interne de Nasal (à partir de l'espace de noms global). Il affiche une liste alphabétique des clés associées à des valeurs à l'aide du framework Canvas. Les hachages et les vecteurs sont indiqués par leur taille et sont accessibles en cliquant dessus ; les valeurs complètes des scalaires sont affichées, tandis que les « ghosts » et les autres types sont représentés entre crochets.
Le code source est disponible ici.
| Note Les performances de la boîte de dialogue à chaque rafraîchissement (c'est-à-dire sa vitesse d'exécution) dépendent de la taille de l'espace de noms. Sur l'ordinateur du développeur, la mise à jour de l'espace de noms global prend environ 20 à 30 ms ; ce temps est bien plus court pour des espaces de noms beaucoup plus petits. La boîte de dialogue est mise à jour automatiquement toutes les 0,6 seconde environ. |
Caractéristiques
Chaque entrée est identifiée par un code couleur en fonction de son type et peut être parcourue à l'aide du widget de défilement de Canvas, triée soit par nom, soit par type et nom. Dans un hachage, chaque clé est affichée sous forme de chaîne, de nombre ou de symbole, selon sa nature réelle (par exemple, un scalaire peut être numérique tout en restant une chaîne ; de même, les symboles internés constituent des cas particuliers de chaînes). Les chaînes de caractères sont affichées entre guillemets simples, tandis que les symboles et les nombres sont affichés sans guillemets. Pour les chaînes de caractères, la luminosité de la couleur peut être réduite.
Si le fichier binaire inclut la fonction d'extension debug.decompile() (c'est-à-dire s'il fait partie de extended-nasal), les fonctions peuvent alors, si on le souhaite, être affichées avec leurs arguments, par exempleisa = <func(obj,class)> et _setlistener = <internal func>(au sens d'une fonction implémentée en C/C++).
Il est possible de modifier les valeurs en cliquant dessus ; la barre d'édition s'active alors et prend en compte la saisie au clavier. Il faut saisir une expression Nasal valide, qui sera exécutée lorsque vous appuierez sur la touche ↵ Enter.
Renaissance de 2025
Depuis 2025, le projet de l'explorateur Nasal a été relancé et est désormais géré comme une extension autonome. Le dépôt de code source d'origine n'étant plus disponible, cette version en est le successeur direct, mise à jour pour être compatible avec les versions récentes de FlightGear.
La nouvelle version est hébergée sur GitHub : playerom/flightgear-addon-nasal-namespace-browser. Elle est entièrement intégrée au système d'extensions de FlightGear et offre une interface modernisée pour parcourir l'espace de noms Nasal, tout en conservant les fonctionnalités historiques.
Il convient de noter que l'extension inclut le code source d'origine, qui peut être activé si l'utilisateur le souhaite, notamment pour ceux qui préfèrent l'expérience classique ou qui souhaitent comparer les implémentations.
- Interface utilisateur modernisée : compatibilité améliorée avec les dernières versions de FlightGear.
- Installation facile : entièrement compatible avec le système d'extensions de FlightGear.
- Page d'accueil du projet et code source : playerom/flightgear-addon-nasal-namespace-browser
- Compatibilité : FlightGear 2024.1 et versions ultérieur