J'essaie de me familiariser avec Emacs Lisp, sa syntaxe, les structures de données, etc., donc je me demandais quels sont les packages intégrés dont la source pourrait m'aider à mieux comprendre comment utiliser le langage et apprendre ses idiomes?
12
info
fichier? Certaines fonctions intégrées sont expliquées et détaillées.Réponses:
Je peux recommander le mode Ruby
ruby-mode.el
et le mode Pythonpython.el
pour certains aspects de leur implémentation. Le premier est une excellente source pour l'indentation avancée et le code de navigation basé sur le nouveau moteur SMIE. Cependant, aucun n'utilise les structures de données de manière particulièrement intelligente ou avancée.Je recommanderais également certaines parties de Org Mode 8, pour sa conception. Notamment, le framework d'exportateur d'Org 8 montre comment créer un framework générique, extensible, semblable à un objet en simple Emacs Lisp. Cependant, je recommanderais contre la plupart des autres parties d'Org, pour les raisons déjà mentionnées dans les commentaires: il est ancien et plein de pratiques anciennes et nuisibles (par exemple
find-file-noselect
pour lire des fichiers de manière non interactive).On dit également que Gnus a un bon code, mais encore une fois, je ferais attention à déterminer dans quelle mesure le morceau de code que vous regardez est bien entretenu.
Étant donné qu'Emacs lui-même est très ancien et qu'il n'est maintenu que superficiellement dans de nombreux endroits, la qualité moyenne de son code est en fait plutôt faible par rapport aux normes modernes. Il y a beaucoup de choses héritées là-dedans. Par exemple, même dans les parties centrales telles que le compilateur d'octets, vous trouverez des «TODO» et des «DUNNO» remontant à des années, voire des décennies. De plus, étant donné qu'Emacs est très lent à prendre du code et des développeurs de la communauté «extérieure» en raison des politiques restrictives établies par la FSF, la qualité globale n'augmente que lentement.
Dans l'ensemble, vous êtes plus susceptible de trouver du bon code dans des packages tiers populaires maintenus par des membres de la communauté de haut niveau, par exemple Magit, Projectile, etc.
la source
debbugs
?) ...Pour les idiomes de base, regardez dans simple.el
la source