Mots-clé : mémo

ExtJs, DataGrid, Store et événements : mémo pour le déboguage

Voici un petit mémo simple : si vous essayez de comprendre dans quel ordre se font les événements, je vous conseille de lire la page ici.

Parmi tout ce qui est expliqué, voici ce que j’utilise le plus souvent : une fonction de trace des événements.
Faites comme moi : un bon copier-coller des familles, et vous aurez dans votre console tous les événements concernant l’objet que vous voulez :

function captureEvents(observable) {
    Ext.util.Observable.capture(
        observable,
        function(eventName) {
            console.info(eventName);
        },
        this
    );		
}
 
Ext.onReady(function(){
    var grid = new Ext.grid.GridPanel({
        ... 
    });
 
    captureEvents(grid);
});

Exemple concret : j’avais un problème, lorsque je créais un nouvel enregistrement dans une DataGrid, j’avais beau essayer de le sélectionner, rien n’y faisait. J’ai cherché pendant des heures, j’ai essayé d’éliminer au fur et à mesure des choses, jusqu’à ce que je mette en place ce code, et là, magie, dans la console :

>beforeload
>datachanged
>load
>read
>add
>datachanged
>beforesync
>write
>datachanged

J’ai vu qu’en fait après l’événement d’ajout « add » sur lequel je comptais pour sélectionner l’élément en cours, il y avait… une mise à jour (« beforesync », « write », « datachanged ») !
En fait ça a fait tilt : j’avais activé la synchronisation automatique des données, et donc juste après l’insertion, le store tentait de se synchroniser, donc la sélection était inévitablement dé-sélectionnée.

Ici aussi, comme dans la plupart de mes articles techniques, j’espère avoir aidé la communauté et avoir évité à d’autre personnes de perdre des heures inutiles, comme celles que j’ai passées !

Vim : mémo pour des ordres simples

Je vais ici mettre toutes les astuces au fur et à mesure que je les découvre :

Le fichier de configuration personnalisé par rapport à l’utilisateur connecté est :
~/.vimrc

Directement sous vim comment éditer le fichier de configuration :
:e $MYVIMRC

Pour mettre des espaces au lieu de tabulations :
set expandtab

Pour dire à combien d’espaces à insérer lorsqu’on appuie sur Tab :
set tabstop=2

Les macros :

  • Commencer l’enregistrement :
    q[lettre]
  • Terminer l’enregistrement :
    q
  • Rejouer une macro :
    @[lettre]

Directement sous vim comment éditer un fichier de coloration syntaxique :
:e $VIMRUNTIME/syntax/

Tiré de l’aide et ré-expliqué à ma sauce :

  • Donner un ordre uniquement applicable sur le fichier en cours :
    setlocal [ordre]
  • Aller à la ligne automatiquement si la taille dépasse 78 caractères :
    textwidth=78
  • Appliquer un ordre que si le fichier est de type « text » :
    autocmd FileType text [ordre]
  • Mélange des 3 précédents points :
    autocmd FileType text setlocal textwidth=78
    Explication : dès que le fichier est de type « text », appliquer uniquement sur ce fichier cet ordre : aller à la ligne automatiquement si la taille dépasse 78 caractères.

Lancer une commande shell sans quitter vim :
:![commande shell]

Lancer un commande shell sans quitter vim :
:sh
(puis quand vous avez fini, quitter le shell via Ctrl-d ou l’ordre « exit ») et vous revenez sous vim !

Si vous avez d’autres suggestions surtout n’hésitez pas !