Plugins pour Atom

Thursday 14 September 2017 – 21:05

Table des matières

Plugins

Linter

PHP

Un linter permet d’afficher les erreurs de syntaxe dans le code source, durant son édition. Une fois le package linter installé, il faut ensuite installer un linter spécifique par type de code source (html, css, js, php, ...).

linter-php

linter-php est assez simple et est le plus facile à paramétrer. Il permet de lancer en background un php -l fichier.php et afficher au travers de l’éditeur la liste des erreurs ayant été rencontrées. Par exemple, un “;” manquant, une accollade de fin qui n’est pas mise, ...

Installation en command prompt : apm install linter-php

linter-php

Remarques : Dans les paramètres du plugin, il faut référencer le lien vers le dossier de PHP sur le PC1 (le dossier, pas l’exécutable)

linter-phpcs

PHP Code Sniffer

linter-phpcs

PHP Code Sniffer (CS) est un outil qui permet de contrôler la qualité du code source, de proposer des améliorations et même de corriger automatiquement certaines erreurs détectées.

Installation en command prompt : apm install linter-phpcs

Il faut d’abord installer PHP Code Sniffer : voir annexe.

Ensuite, s’assurer que l’exécutable phpcs soit dans la variable d’environnement Windows PATH

Remarques : Dans les paramètres du plugin linter-phpcs, il faut référencer le lien vers

!!! Attention !!! Le paramétrage peut vite être fastidieux si la case Search for configuration files est activée car PHP Code Sniffer va alors tenter de trouver un fichier type ruleset.xml et s’il le trouve, il va l’utiliser même si ce dernier est incorrect ou s’il n’est pas mentionner dans la case code standard or config file. Aussi, à moins d’être sûr de son fichier ruleset.xml, il vaut mieux ne pas cocher cette case.

Pour vérifier que PHP Code Sniffer est bien installé, on peut le lancer en ligne de commandes : C:\Christophe\Repository\devtools\PHP_CodeSniffer\scripts\phpcs source.php

php-cs-fixer

Exceptions

linter-phpcs va afficher des erreurs pour tous les fichiers faisant partie du projet, mêmême pour des dossiers comme /libs, /vendors, ... càd des sources de tiers dont, au final, nous n’avons pas à corriger la syntaxe du code.

PoPour ne plus scanner ces dossiers, se rendre dans les paramètres de linter-phpcs et, dadans la zone Ignore Patterns, spécifier la liste des dossiers à ignorer; p.ex. */dist/**/*, */gulp/**/*, */src/libs/**/*, */node_modules/**/*, */vendors/**/*

linter-phpmd

PHP Mess Detector

linter-phpmd

Il faut d’abord installer PHP Mess Detector : voir annexe. Bien suivre toutes les étapes !!!

Remarques : Dans les paramètres du plugin linter-phpmd, il faut référencer le lien vers

Pour vérifier que PHP Mess Detector est bien installé, on peut le lancer en ligne de commandes : C:\Christophe\Repository\devtools\phpmd\src\bin\phpmd source.php

Autres

linter-html

linter-html est un outil d’analyse (voir HTMLHint ) qui permettra d’éviter p.ex. d’alerter lorsqu’on oublie une balise fermante

linter-xmllint

linter-xmllint Attention il faut d’abord installer lintxml; lire cette note (Installation de xml-lint)

xmllint Executable Path : C:\Christophe\Repository\devtools\xmllint\bin\xmllint

Editor enhancements

atom-alignment

atom-beautifyatom-beautify

autocomplete-php

# EditorConfig is awesome: http://EditorConfig.org

root = true

[*]
charset = utf-8
indent_style = tab
indent_size = 4
tab_width = 4
end_of_line = lf
trim_trailing_whitespace = true
insert_final_newline = true

[*.md]
[*.markdown]
trim_trailing_whitespace = false

goto-definition

goto-definition

project-manager

Pas encore testé

Installation manuelle

Pour installer une extension, lancer un command prompt et tape apm install suivi du ou des noms des plugins. Exemple :

apm install atom-beautify

Tout installer en une fois

Copier/coller la ligne ci-dessous dans le command prompt (peut-être à lancer en mode administrateur) et les plugins seront tous installés en une seule étape.

apm install atom-beautify autocomplete-php docblockr editorconfig file-icons goto-definition highlight-line highlight-selected hyperclick linter linter-html linter-phpcs linter-phpmd linter-xmllint minimap php-cs-fixer project-manager snippets sort-lines sync-settings todo-show language-htaccess language-markdown language-vbscript

Support des langues dans l’éditeur.

Le support d’une langue permet p.ex. la colorisation syntaxique des mots clefs, variables, ... mais aussi d’en connaître la grammaire.

Annexe

Installer PHP Code Sniffer

PHP Code Sniffer

Installer PHP Mess Detector

Lire la note PHP Mess Detector. Attention à bien suivre toutes les étapes :

  1. faire le clone du dépôt
  2. puis git submodule update—init
  3. puis curl -s http://getcomposer.org/installer | php
  4. et enfin php composer.phar install

Cela devrait créer la structure suffisante pour pouvoir exécuter PHPMD.

ruleset.xml

Voici un fichier xml qui peut servir de base pour PHP Code Sniffer. Il faut le sauver p.ex. avec le nom ruleset.xml3 et le référencer dans les paramètres du plugin linter-phpcs

<?xml version="1.0"?>
<ruleset name="CAVO_PHP_Code_Sniffer_ruleset">

    <description>CAVO PHP CS ruleset</description>

    <arg name="tab-width" value="4"/>
    <arg name="encoding" value="utf-8"/>

    <!-- Exclude 3rd party libraries. -->
    <exclude-pattern>*/libs/*</exclude-pattern>
    <exclude-pattern>*/vendor/*</exclude-pattern>

    <!-- Force to use tab and not spaces for indentation -->
    <rule ref="PSR2">
        <exclude name="Generic.WhiteSpace.DisallowTabIndent"/>
    </rule>
    <rule ref="Generic.WhiteSpace.DisallowSpaceIndent"/>
    <rule ref="Generic.WhiteSpace.ScopeIndent">
        <properties>
            <property name="indent" value="4"/>
            <property name="tabIndent" value="true"/>
        </properties>
    </rule>

</ruleset>

  1. Exemple : C:\Christophe\Tools\wamp64\bin\php\php7.0.10 (le dossier, pas l’exécutable) 

  2. Exemple : C:\Christophe\Repository\devtools\PHP_CodeSniffer\scripts\phpcs (exécutable) 

  3. Exemple : C:\Christophe\Repository\ruleset.xml 

  4. Exemple : C:\Christophe\Repository\devtools\phpmd\src\bin\phpmd (exécutable)