URL: https://linuxfr.org/users/killruana/journaux/vscodium-support-python-pyright Title: VSCodium & support python : pyright Authors: jtremesay Date: 2023年01月25日T21:21:35+01:00 License: CC By-SA Tags: pyright et vscodium Score: 14 TL;DR: [pyright](https://github.com/Microsoft/pyright), extension opensource pour [VSCodium](https://vscodium.com/) ajoutant le support de python. Y'a [longtemps](https://linuxfr.org/users/killruana/journaux/atom-vscode), j'avais parlé de VSCode en ces termes :> Pis un jour j'ai appris que Microsoft avait sorti VSCode. Je me suis dit lol, et parce que je suis une moule de mauvaise foi, j'ai refusé de l'essayer par principe parce que Microsoft bouhcaca, toussa toussa. Pis un jour, Sam et Max on fait un [article](https://sametmax2.com/je-fais-mon-coming-out/) dessus. Suite à ma lecture, j'ai décidé de lui laisser sa chance. Et depuis, c'est mon éditeur de développement par défaut. 3.5 ans plus tard, janvier ~~2022~~ 2023. Je fais principalement du développement [web python](https://www.djangoproject.com/) [containerisé](https://docs.docker.com/get-started/overview/) dans les [nuages](https://fr.wikipedia.org/wiki/Cloud_computing). J'ai du [terraform](https://www.terraform.io/) pour gérer l'infra. Je fais aussi aussi du [C](https://fr.wikipedia.org/wiki/C_(langage)) et des [makefile](https://fr.wikipedia.org/wiki/Make) pour le [firmware](https://fr.wikipedia.org/wiki/Firmware) d'un [objet connecté](https://fr.wikipedia.org/wiki/Internet_des_objets) (il est possible que je fasse un usage trèèèèèèèèèèèèès créatif de docker pour compiler les différentes partie du firmware en parallèles dans des containeurs dont j'orchestre le lancement avec des makefiles générés par mon ./configure.py maison. Ça parait moche, mais ça permet d'éliminer les problèmes de maispourtantchezmoiçabuild©, ça marche n'importe où il y a docker + make, soit virtuellement partout, et ça fait un excellent cache de compilation). VScode continue de satisfaire à mes besoins. Il est simple, léger, a plein d'extensions pour l’adapter à mes besoins. Malheureusement, en 2021, Microsoft a décidé d'arrêté le développement de l'[extension](https://github.com/microsoft/python-language-server) opensource ajoutant le support de python pour le remplacer par une extension [propriétaire](https://devblogs.microsoft.com/python/python-in-visual-studio-code-may-2021-release/), pylance. Par flemme et inertie, au taf, je suis passé sur l'extension proprio parce qu'elle est proposée par défaut>_<. Il faut dire qu'elle fait excellemment bien le taf et que ma flemme est manifestement supérieure à mes convictions libristes. Mais à la maison, j'utilise le fork libre, [VScodium](https://vscodium.com/) qui n'inclut pas les trucs [caca](https://code.visualstudio.com/docs/getstarted/telemetry#_gdpr-and-vs-code) de Microsoft ou les trucs propriétaires. Et du coup, pas pylance. À l'époque, j'avais pas trouvé/réussi à faire marcher/aimer une extension supportant python, et du coup me limitait au fonctionnalités de base de l'éditeur : coloration syntaxique et auto-complétion sur les symboles présent dans le fichier. C'est, hum, frugal. C'est là que l'on se rend compte que les outils intelligents font gagner beaucoup de temps et diminuent la charge mentale sur les petits trucs à la cons (auto-formatage, linting, auto-imports, refacto, ...). Mais d'un autre côté, ça me force à mieux écrire mon code, faire davantage attention à ce que je fais[, et](https://fr.wikipedia.org/wiki/Virgule_de_s%C3%A9rie) aussi passer beauuuuuucoup plus de temps dans la doc pour retrouver le nom de cette fonction à la c** et du coup découvrir des trucs que j'avais ratés parce que ça fait longtemps que j'étais pas allé voir la doc pour les trucs de base :D. Là, j'ai profité de la réinstallation de mes laptops sous Arch Linux (NixOS c'est révélé être beaucoup trop [ennuyeux](https://linuxfr.org/users/killruana/journaux/nixos-ou-comment-j-ai-rendu-mes-machines-interchangeables-et-ennuyeuses) pour moi. ça marche excellemment bien mais c'est pas fun :( ) pour voir ce qu'il se proposé en terme d'extension python pour VSCodium. C'est ainsi que je suis tombé sur [pyright](https://github.com/Microsoft/pyright). C'est toujours du Microsoft, c'est pour l'instant opensource et maintenu, et j'ai enfin une bonne auto-complétion <3. J'ai quand même peur qu'à terme Microsoft délaisse VSCode, le propriétarisme ou le rende payant, et que l'écosystème gravitant autour en pâtisse. Tout ça me donne envie de commencer à chercher des alternatives au cas où les choses tournent mal. Aurais-tu des recommandations d'EDI (Éditeur De texte Intelligent©, à ne pas confondre avec l'[IDE](https://fr.wikipedia.org/wiki/Environnement_de_d%C3%A9veloppement)) ? Mes besoins : - taper du texte, beaucoup, dans pleins de langages et formats différents. Pour ça, il doit pouvoir m'assister avec les fonctionnalités suivantes : - coloration syntaxique, avec un moyen simple pour utiliser ce thème [là](https://github.com/reyemxela/base16-helios-scheme) - auto-complétion intelligente (retrouver les méthodes des objets, assister sur les imports, ...) - linting lors de l’édition ou de la sauvegarde - formatage lors de la sauvegarde - et ce pour les langages et technos suivants : - python (gros plus si il arrive à être intelligent avec django, et ses templates et spécificités) - dockerfile - terraform - c, avec des includes à des endroits totalement improbables dont notamment monté depuis des containers dockers (c** de lib pour les PRU TI disponible uniquement sous linux mais que malheureusement on bosse sur des macbook, et que c'est une solution finalement assez simple pour que ça marche facilement chez tout le monde sans abîmer les gonades) - makefile. Vous ne pouvez pas savoir à quel point j'aime torturer cet outil pour lui faire faire des trucs totalement inattendus <3. Le truc, c'est que j'indente avec 4 espaces et que lui veut absolument des indentions. Certains éditeurs peuvent être désagréablement compliqués à configurer pour gérer ce cas - javascript, autres joyeusetés du web tel que css et html - les formats de données habituels tels que json, xml ou yaml - csv. De gros csv de plusieurs centaine de milliers de lignes - tout ça n'a pas besoin d'être fourni par défaut, mais doit pouvoir facilement s'installer/se configurer - pouvoir partitionner et manipuler facilement l'espace d'édition pour avoir plusieurs fichiers ouvert en même temps - sobre. Si ce n'est pas du code ou une arborescence de fichier, ça n'a pas besoin d'être visible à l'écran si je ne lui demande pas - libre / opensource - graphique. j'aime bien neovim, mais j'arrive pas à l'utiliser sur les trucs un peu conséquent. flemme de gravir la courbe d'apprentissage et de consacrer le temps nécessaire à être réellement productif avec - disponible facilement sur [Mac](https://brew.sh/) et [Arch](https://archlinux.org/packages/) - léger et s'adapte à mes besoins plutôt que l'inverse. PyCharm marche plutôt bien, mais qu'est-ce qu'il est lourd et contraignant :( - dont le développement et l'écosystème sont à priori pérennes pour les prochaines années histoire de ne pas venir te ré-embêter trop vite avec mes demandes à la con - ne demande pas 3 mains à 7 doigts (désolé emacs) Je n'ai pas de besoin particulier en terme d’assistance au build, à l’exécution ou au debug; préférant utiliser des terminaux pour ces choses là. En tapant cette liste, je me rend compte que je suis bien exigeant. Mais que veux-tu, il faut ce qu'il faut pour bien travailler :) Désolé pour ce pavé. À la base je voulais juste poster un lien, mais je me suis un peu emporté>_<