Cette section traite des fonctionnalités futures. Cette section ne documente pas les fonctionnalités courantes. (Attention cependant, la dernière mise à jour de la version officielle date de 2012...)
GCLI a actuellement 3 axes d'améliorations :
- Les commandes
- Les types
- Les champs
Seules les commandes sont extensibles (au travers de gcli.addCommand()
et gcli.removeCommand()
). Il est probable que les types et les champs puissent être extensibles dans le futur. La disponibilités des ces extensions dans un fichier mozcmd est sujet à débat.
Autoriser les types et les champs dans des fichiers mozcmd
sera certainement problématique pour plusieurs raisons :
- Cela peut introduire des dépendances entre des fichiers
mozcmd
- Cela peut rendre la garantie de sécurisation plus difficile à contrôler (qu'arrive-t-il si un type remplace un autre type par défaut ?)
- Les types et les champs sont plus couplés avec d'autres parties de GCLI. Cela pourrait donc être plus difficile à réaliser proprement.
S'il devient nécessaire d'autoriser l'enregistrement de types et de champs dans un fichier mozcmd
. il est alors possible que nous introduisions une propriété 'class' qui possède les valeurs légales suivantes : ['command'|'type'|'field'], la valeur par défaut étant 'command'.
Par exemple :
[ { name: 'c1', // 'command' par défaut exec: function() { return 'Ceci est la commande c1'; } }, { name: 'c2', class: 'command', // explicitement exec: function() { return 'Ceci est la commande c1'; } }, { name: 't1', class: 'type', stringify: function(data) { return '...'; }, parse: function(str) { return new Conversion(...); } } ]