Il ne s'agit pas ici de faire une description exhaustive de chacune des étapes de la configuration de l'IDE, la documentation officielle est déjà très bien faite et parfaitement complète. Je pars aussi du principe que vous savez surement vous débrouiller par vous-même pour effectuer la configuration.

L'idée est plus de montrer rapidement tous les aspects sympas et les avantages de cet éditeur, toutes les options auxquelles on ne pense pas forcément mais qui au final vous simplifient la vie.

Sommaire

Avantages

  • Portable (java), ne nécessite pas d'installation ni de droits
  • On peut exporter facilement ses settings, et ainsi les transporter à travers toutes les plateformes
  • Par ailleurs, tous les IDE de JetBrains sont basés sur le même modèle, ce qui fait qu'on est pas perdu entre les différents langages (C, Java, JavaScript etc.) et que l'on peut exporter la plupart de ses settings entre les différents IDEs. Même AndroidStudio est basé sur un IDE JetBrains!
  • Intuitif et entièrement configurable
  • Propriétaire, donc propre, (NDLR: le blog décline toute responsabilité quant à ce genre de propos...) tout en étant open source, documenté et marche quelques soient les conditions, et non grâce à une succession d'éléments favorables
  • Support d'IPython
  • Par défaut un correcteur qui souligne ce qui n'est pas en accord avec la pep8 !
  • Supporte les environnements virtuels et conda

Inconvénients

  • Consommation mémoire élevée (500Mo sur mon pc), peut être dû à mes 16go de mémoire (oui la mienne est plus grosse que la tienne, je parle de mon unité centrale)
  • De base, le fichier du projet n'est pas en source root pour les modules, ce qui fait que l'on ne peut pas importer les classes que l'on a créées dans son projet. (clic droit marquer as root sur le dossier, puis dans settings "Add source roots to PYTHONPATH") Une fois que c'est fait il n'y a plus à s'en préoccuper, même pour les autres projets, juste mettre le dossier en source root.

root_folderadd_root

  • Pas de CTRL+F dans la sortie console
  • L'introspection du code est parfois (rarement) capricieuse pour les modules externes. Il est possible aussi d'exclure des dossiers de l'indexation pour un démarrage plus rapide dans les gros projets.
  • Sur Windows, le dossier contenant git.exe est un dossier caché, dont le nom à la fâcheuse tendance de changer aléatoirement. Un message d'erreur apparait alors vous demandant ou est git.exe, c'est donc bien pratique de cocher "show hidden path" pour retrouver le dossier...

hidepath

Prérequis pour une utilisation optimale

  • Windows 10
  • Ecran 4k

Ergonomie

  • Edition simple des raccourcis claviers, tous entièrement configurables
  • Des champs de recherche partout pour retrouver facilement les options
  • Editeur divisible en plusieurs fenêtres, réarangeables comme bon vous semble (clic droit sur l'onglet, "split")
  • Option plein écran, avec un affichage de l'heure! (mais aussi un mode présentation et "distraction free")
  • Thème et police intégralement configurables et indépendants des couleurs système (pas comme éclipse par exemple).
  • Une fonction "loupe" pour voir le code qui est plus loin sans scroller. Ici j'ai voulu regarder ce qu'il y avait autour de mes TODO, symbolisés par les barres bleues. Si vous ne savez pas à quoi correspondent les couleurs des marqueurs d'erreur, pas de problème, des petits messages marron (ici avec les todo) apparaissent par-dessus le code pour expliquer le type d'erreurs/remarques. Les marqueurs bleu/rouge/vert à côté des numéros de lignes correspondent au contrôle de version

loupe

Automatismes

Snippets

Création de snippets (ou "live template"): Ayant, parait-il, parfois un code difficilement lisible, j'aime bien insérer de beaux commentaires, avec de jolis effets entre deux gros pâtés de codes, histoire d'aérer un peu (je ne sais pas si c'est très Charlie ni PEP8, mais bon). Sauf que le processus est généralement assez chiant. C'est là qu'interviennent les snippets: On clique sur le '+' vert pour en ajouter un, (au passage on note que Pycharm dispose de plein d'options pour d'autres langages) puis on rentre l'abréviation qui appellera le snippet dans l'éditeur, puis enfin le bout de code. On place ensuite les variables sur lequel le curseur se placera automatiquement, puis on change l'ordre dans lequel les variables sont éditées, avec les flèches dans edit variable. Ainsi, lorsque je tape com1 dans l'éditeur, j'appuie sur entrée, je tape le commentaire, entrée, puis j'ajuste la longueur de la décoration en fonction. Il faut aussi penser à bien mettre Python dans le champ en bas, applicable in. On peut choisir plusieurs langages où le snippet sera effectif.

snippet

Les possibilités sont infinies, avec des commentaires aussi esthétiques que de bon goût vous ne manquerez pas d'impressionner vos zuperieurs ! arh !

Refactoring

  • Le refactoring (clic droit > refactor) (faut créer un projet cependant, sinon cela ne marche que pour les variables locales à l'intérieur de fonctions) existe en deux types:

    • Le classique, une boite de dialogue s'ouvre, avec ensuite une fenêtre pour contrôler que l'on a bien le résultat attendu: Ici, lors du renommage d'une méthode, tous les usages de la méthode sont affichés pour nous permettre de contrôler ce qui doit être renommé ou non.

    • Le "in-place" refactoring, pour certaines variables par exemple, qui se fait dans l'éditeur (sélection des occurrences de la variable, pour la renommer)

Docstring

Docstring automatique pour les fonctions (taper """ + entrée à l'emplacement de la docstring) Il y a aussi possibilité de mettre les types des paramètres de la fonction dans la docstring, il faut cocher la case Collect run-time types information for code insight dans les options du debugger Python, cependant je n'ai pas réussi à faire marcher ce truc (édition community ?). On peut aussi changer le type de formatage de docstring, dans settings -> tools -> python integrated tools.

Intentions

Lorsque vous placez votre curseur sur une ligne de code, une petite ampoule apparait parfois au niveau des numéros de ligne, et ce de manière contextuelle. Ce sont les intentions, et vous pouvez cliquer dessus ou faire alt+entrée. Ces intentions peuvent servir à corriger une erreur que Pycharm détecte, faire du refactoring, insérer des docstring, des annotations... Chaque intention peut être désactivée à la volée, en cliquant sur la petite flèche. Je vous suggère d'ailleurs d'explorer les différentes intentions pour voir les possibilités.

Contrôle de version

  • Intégration de git (et d'autres), possibilité de push, pull, merge... avec visualisation des changements et historique des commits et des versions à chaque enregistrement ! En fait, même si vous n'avez pas configuré votre projet pour être synchronisé avec git, un historique des versions est quand même conservé. (en rouge les lignes qui ont été supprimées, vert celles ajoutées et bleu les modifiées) Très pratique pour faire des merges, il n'y a qu'à cliquer sur les bouts que l'on veut garder. Lorsque vous faites des tests unitaires, les résultats de ces tests sont conservés et affichés au niveau des différentes versions.

git_change

  • Clic droit sur le code + create gist vous permet de faire des pastebin en passant par github

Autres automatismes

  • Détection automatique des todo et fixme dans les commentaires
  • Un outil d'inspection de code dégueulasse, qui vous montre toutes les conneries et les trucs moches que vous avez faits. (Code > inspect code)

inspection

Voici un exemple de ce qu'il peut trouver sur du code dégueulasse..

  • Dans la même veine, optimize import enlève tous les imports inutilisés

Visualisations

Tests unitaires

Clic droit sur la classe, GoTo > Test. Là, on propose de faire un nouveau test, et de sélectionner les méthodes à tester. Cela va créer par défaut un test avec le module unittest.TestCase, que l'on pourra ensuite éditer, en pensant à importer le module à tester.

À noter que PyCharm supporte nosetest (et d'autres), mais sa détection automatique pose un peu problème lorsque l'on complexifie le test. Il faut alors sélectionner la config de test via le menu déroulant à côté de la flèche de run. On peut choisir les différents niveaux d'exécution du test via edit run configuration: fonction, classe, script entier (conseillé) Il faut aussi bien penser à préfixer les methodes/fonctions par test_ pour nosetest.

test

Quelques soient les tests choisis, on obtient une visualisation graphique des résultats des tests, en plus de la sortie console. On peut même intégrer les tests dans le script que l'on veut tester, et juste changer de config de run pour lancer les tests.

Tableaux

Le debugger peut voir de manière graphique les array numpy et panda. Tellement dommage d'ailleurs que ça ne marche pas pour les listes.

numpy

Autres

  • Plugins qui se téléchargent et mettent à jour facilement. (Je conseille les plugins de visualisation du markdown, le plugin latex quant à lui ne permet pas encore de visualisation)
  • Possibilité de faire ses propres highlights de mot clef et détection de commentaires en fonction des langages, par exemple pour ASP (settings > editor > file types)
  • Pour aller plus loin il est possible de créer des plugins

Quelques raccourcis..

  • ctrl+clic sur un appel de fonction vous amène directement à l'endroit où est déclarée la fonction
  • Sélection multi-ligne: alt+drag vous permet de sélectionner verticalement le texte (sous Linux, en tout cas avec KDE vous risquez cependant d'avoir des problèmes...)
  • ctrl+/ pour commenter des lignes
  • Doucle Maj permet d'ouvrir un ctrl+f sur tous les fichiers ouverts dans l'éditeur

A reconfigurer selon les goûts

  • La sauvegarde automatique (désactivée pour moi, avec l'ajout de l'étoile pour les fichiers non sauvegardés)
  • Le raccourci de run contextuel
  • Affichage des numéros de lignes
  • La touche F5 pour la synchronisation des fichiers avec le système
  • La documentation au survol de la souris
  • Le highlight des variables sélectionnées
  • Activer la console interactive, pour interférer après l'exécution du script: run -> edit configuration, puis mettre -i dans les options de l'interpréteur.

    Comme le processus n'est pas arrêté, si vous relancez le programme cela entraine l'ouverture d'un autre processus, ce qui est un peu chiant. Il faut alors appuyer sur le carré rouge pour terminer le processus avant de le relancer. C'est pour cela que je n'utilise pas trop la console interactive. Sinon en lançant le debugger, on peut lancer des commandes en cliquant sur le bouton en dessous de la poubelle.

intera_console

console_debug

Pour finir

Voici mes settings Pycharm à télécharger Cela va permettre de passer l'étape un peu laborieuse de la première configuration

  • F9 pour le run contextuel
  • F5 pour le rafraichissement de l'explorateur de fichier
  • Des snippets (com1 et att) pour faire des patterns de jolis commentaires
  • Plus plein de trucs sympas dont je ne me souviens plus.

Vous aviez déjà surement compris grâce à cet article que Eric devait être un IDE de merde, maintenant vous savez que comparé à PyCharm que c'est un IDE de sous merdes. En revanche, il n'y a pas de diagrammes de classes dans l'édition community (gratuite), ni d'intégration de Docker, ce qui est bien dommage... (NDLR: connard) Voici la comparaison entre l'édition gratuite et payante, et ça va on ne se fout pas trop de notre gueule je trouve. Il ne faut pas oublier de chercher aussi des plugins s'il vous manque une fonction que vous jugez importante.

©2015-3015 Guillaume LEBRETON (all rights belong to me)