Écriture de script pour XINX
Table of Contents
- Documentation de XINX
- Sommaire
- Installation de XINX
- Démarrage rapide
- Le mode projet
- La complétion sous XINX
- Spécifique
- Les Services Internet
- Utilisation du gestionnaire de version
- Personnalisation de XINX
- Liste des raccourcis disponibles dans XINX
- Écriture de Plugins Pour XINX
- Écriture de script pour XINX
- Écriture de Snipets
XINX propose le langage standardisé ECMASCript Edition 3 pour permettre l'extention des ses fonctionnalités. Ce langage est fortement similaire au JavaScript(Mozilla) et JScript(Microsoft) utilisé dans les navigateurs modernes.
Afin d'interagir plus facilement avec l'interface utilisateur, quelques fonctions ont été ajoutées par rapport aux standards ECMAScript purs.
Présentation de ECMAScript
Vous pouvez trouver un tutoriel sur l'ECMAScript sur Internet à l'adresse suivante.
Les bases du JavaScript sont les mêmes que celles du C et du Java : if pour les conditions, for, while pour les boucles, .... Ci-dessous un exemple de programme calculant le factoriel d'un nombre.
const NOMBRE = 10; function factoriel( val ) { var result = val; for( i = val - 1, i > 0; i-- ) { result *= i; } return result; } alert( factoriel( NOMBRE ) );
La fonction alert n'appartient pas au standard ECMAScript mais a été ajoutée pour son utilité. En ECMAScript, les variables ne sont pas typées et sont automatiquement déclarées à l'utilisation.
Les objets
En ECMASCript il est possible de définir des objets. La définition d'objet passe par la définition de propriété, comme suite :
function Shape( x, y ) { this.x = x; this.y = y; } Shape.prototype.manhattanPos = function() { return Math.abs( this.x ) + Math.abs( this.y ); }; Shape.prototype.translate = function( dx, dy ) { this.x += dx; this.y += dy; } /* Exemple tiré du livre "C++ Gui Programming with Qt4" contenant entre autre une très bonne explication sur le ECMAScript */
Propriété de l'objet Global
| Constantes | |
| NaN | Valeur IEEE 754 Not-a-Number (Pas un nombre) |
| undefined | Valeur par défaut pour les variables non initialisées |
| Fonctions | |
| alert(x)* | Affiche le texte dans une boite de dialogue |
| confirm(x)* | Affiche le texte dans une boite de dialogue et demande confirmation (Oui ou Non) |
| input(x,y)* | Demande d'entrer un texte ou une valeur numérique |
| eval(str) | Exécute un programme ECMAScript |
| parseInt(str, base) | Convertit une chaine en entier |
| parseFloat(str) | Convertit une chaine en flottant |
| Classes | |
| Object | Contient les fonctionnalités communes à tous les objets. |
| Function | Encapsule une fonction ECMAScript |
| Array | Représente un tableau redimensionnable |
| String | Représente une chaine de caractère |
| Boolean | Enregistre une Boolean (true ou false) |
| Number | Enregistre un nombre flottant |
| Date | Enregistre une date |
| RegExp | Permet d'utiliser des expressions régulières |
| Objets | |
| Math | Fournit des fonctions mathématiques et des constantes |
La liste est non-exhaustive.
Etendre l'application
L'extention de l'application se fait par l'écriture d'un script retournant un objet. C'est la méthode run de cet objet qui sera alors appelée.
var obj = new Object; obj.text = "Mon texte"; obj.run = function() { alert( "Roulez jeunesse" ); } return obj;
Depuis le script l'objet this.textEdit est accessible. Cet objet représentant l'éditeur de texte courant dans XINX. Cette variable peut être indéfinie si aucun onglet n'est ouvert dans l'éditeur ou l'onglet courant n'est pas un éditeur de texte.
Pour récupérer le texte de l'éditeur :
var text = this.textEdit.plainText;
Pour remplacer le texte de l'éditeur :
this.textEdit.plainText = text; this.textEdit.document.modified = true; // Cette ligne permet de rafraîchir l'indicateur de l'état du document.
A terme d'autres objets pourront être accessibles.
* Non spécifié dans le standard ECMAScript