[18/11/2016] : ajout de ma configuration perso + quelques plugins
[26/08/2015] : ajout de la gestion des favoris
[24/11/2015] : l’éditeur est beaucoup plus stable qu’avant

Atom, un éditeur qui vous veut du bien

C’est quoi ?

Atom est un éditeur de texte développé par GitHub destiné aux développeurs. Il a été développé avec Electron, un framework permettant de développer des applications cross-platform avec des technologies web, dont le triptyque gagnant : HTML, CSS et JavaScript. Electron fournit un support natif de NodeJS.
Atom est très proche de SublimeText… vous y trouverez plusieurs points communs (palette de commandes, sélection multiple, plugins, …). Si vous utilisiez SublimeText en mode démo, c’est-à-dire, sans payer les $70 de licence, vous aurez un message vous invitant à acheter une licence tous les 10 enregistrements de fichiers. Avec Atom, vous n’aurez pas ce problème vu qu’il est open source ! Vous serez donc en conformité avec la loi (ça ne ferait pas de mal à certaines entreprises).

Si vous êtes toujours là, je vous invite à télécharger cet outil sur son site officiel.

Quelques packages

A l’instar de Sublime, Atom possède pléthore de packages (plugins).
Pour installer un packages, tout se fait en ligne de commande. J’ai cherché pendant pas mal de temps la console de l’éditeur… pour finalement comprendre qu’il n’y en avait pas. Il faut passer par le shell de votre OS :-)

Voici la commandes à exécuter pour installer un ou plusieurs package :

apm install monPackage
apm install monPackage monAutrePackage

La liste complète des packages disponibles est accessible sur le site officiel d’Atom. Mais je vous ai un peu prémâché le travail en vous sélectionnant quelques must have packages.

Exemple :

var a = b;
var ab = c;
var abcd = d;
var ddddd =d;

Deviendra (après un ctrl + alt + A) :

var a     = b;
var ab    = c;
var abcd  = d;
var ddddd = d;
  • docblockr : va générer la PHPDoc/JSDoc/… comme ci-dessous : docblockr

  • linter : affiche les erreurs dans votre code.
  • linter-php : Vous indique vos erreurs PHP (soyez sûrs d’avoir PHP dans votre PATH).
  • linter-phpcs : PHP CS pour PHP CodeSniffer. Sniffera votre code pour vous dire là où vous n’êtes pas en conformité avec les normes PSR. Fonctionne avec Linter.
  • Emmet : Doit-je le présenter ? ;-)
  • Project Manager : Permet d’ouvrir rapidement ses projets en cours
  • Material UI : une UI de type matérial design

Et parce que parfois notre métier n’est pas toujours simple, voici un thème pour les nerveux : Activate Power Mode.

A propos des snippets

De nombreux snippets sont nativement présents dans Atom (exemple : PHP, JavaScript). Pour avoir la liste des snippets disponibles, faites la combinaison suivante : Alt + Shift + S. Vous pouvez aussi créer vos propres snippets (File > Open Your Snippets). Ces snippets sont écrits dans un fichier CSON.

En voici un exemple :

'.source.php':
  'var_dump("…");die();':
    'prefix': 'vdie'
    'body': 'var_dump($1);die();$0'

Ce snippet transforme l’expression vdie en var_dump();die(); après avoir appuyé sur tab (oui, on est d’accord, on débug plus comme ça en PHP depuis longtemps !). Le source.php indique que ce n’est valable que pour les fichier PHP.

Il vous est aussi possible de l’écrire sur plusieurs lignes :

'.source.php':
  'var_dump("…");die();':
    'prefix': 'vdie'
    'body': """
        var_dump($1);
        die();P
        $0
        """

Si vous le souhaitez, vous pouvez aussi écraser des snippets existants.

Features natives intéressantes

Intégration de Git

Je vous l’ai dit plus haut, Atom est un produit créé par GitHub. Donc c’est pas un grande surprise que d’apprendre que les fonctions Git sont présentes nativement. Les plugins git-time-machine et merge-conflicts sont intéressants.
Mais côté pratique, je préfère de loin utiliser GitHub Desktop ou bien SourceTree (si vous n’êtes pas sur GitHub).

Recherche rapide partielle

Comme pour Sublime, Atom propose une recherche partielle. Par exemple, si vous souhaitez utiliser la commande Editor: Upper Case, vous n’êtes pas obligé de tout écrire. Contentez vous simplement de taper upca. Recherche rapide partielle

Markdown preview

Atom permet de prévisualiser vos fichier de syntaxe Markdown. Pour l’activer : Ctrl + Shift + P > Markdown preview: Toogle Markdown preview

Gestion des favoris

Si vous êtes allés sur le répo des packages, vous avez dû voir une petite étoile à côté des packages. Ce chiffre correspond au nombre de favoris. Je vous recommande vous aussi de mettre en favoris les packages que vous appréciez. Vous pouvez le faire via deux moyens :

  • Sur le répository des packages en cliquant sur l’étoile (vous devrez-être connectés avec votre compte GitHub)
  • En ligne de commande (possibilité de mettre plusieurs étoiles)

apm login
apm star linter minimap anotherPackage

Pourquoi faire ?

C’est simple, si un jour vous changez de poste de travail, vous n’aurez qu’à faire : apm stars --install pour installer vos favoris
apm stars --user maxpou --install pour installer les favoris d’un autre utilisateur (les miens dans ce cas présent).

Pour lister les packages favoris d’un autre utilisateur, supprimez l’annotation --install.

Raccourcis claviers

Vous les retrouverez tous dans File > Settings > Keybindings (avec la possibilité de faire des recherches).

Ctrl + Shift + P : Affiche palette des commandes
Ctrl + P : Recherche fichier dans le projet
Ctrl + R : Recherche dans la page
Ctrl + G + [numéro de ligne] : Se déplace à la ligne
Ctrl + flèche haut/bas : Déplace la ligne en haut/bas
Ctrl + shift + D : duplique la ligne courante
Ctrl + D : sélectionne une autre occurrence du mot déjà sélectionné
Ctrl + / : Commente la ligne
Ctrl + J : Joint la ligne courante et la suivante
Ctrl + C/X (sans sélection) : Copie/coupe la ligne courante
Ctrl + tab : Change d’onglet

Limites

Si Atom a souffert d’horribles latences à son tout début, on peut dire qu’il est beaucoup plus stable aujourd’hui. Cependant, il se peut que l’éditeur ne réponde plus si vous souhaitez ouvrir un fichier trop volumineux (un bon vieux fichier de logs par exemple). Bah oui, ce n’est pas non plus VI !
Error

Si vous avez un clavier français et que vous n’arrivez pas à écrire ces caractère “]”, “}” et “€”, allez dans file > Open Your Keymap. Un fichier CSON va s’ouvrir. Ajoutez ces quelques lignes ci-dessous et enregistrez (pour surcharger le snippet existant).

'atom-workspace atom-text-editor:not([mini])':
  'ctrl-alt-[': 'unset!'
  'ctrl-alt-]': 'unset!'

'atom-workspace atom-pane':
  'ctrl-alt-=': 'unset!'

'atom-workspace':
    'ctrl-alt-e': 'unset!'

Le mot de la Fin

Le passage de SublimeText vers Atom a presque été indolore pour moi. Beaucoup de raccourcis claviers, concepts… sont identiques (cas échéant, il vous est possible d’adapter le fichier de keymap).
La quantité de packages et de thèmes est impressionnante, il y en a pour tous les goûts. A vrai dire, je suis étonné que si peu de mes collègues l’utilisent.

Et vous, vous en avez pensé quoi de cet éditeur ?

Bonus : ma conf perso :)

Voir mes Dotfiles (répo GitHub).

Immutability without JS library

Last month, I gave a talk about [*Immutability for functional JavaScript* in the DublinJS meetup (slides)](http://slides.maxpou.fr/immuta...… Continue reading

A la découverte d'Hubot

Published on July 14, 2017