J'utilise Emacs depuis un certain nombre d'années maintenant, mais je suis récemment tombé sur les normes de codage . Là, il est indiqué:
Ne prenez pas l'habitude de mettre des parenthèses fermées sur les lignes par eux-mêmes; Les programmeurs Lisp trouvent cela déconcertant.
C'est exactement l'habitude que j'ai prise, car je trouve le code plus facile à lire. Je vois des styles mixtes dans les packages livrés avec Emacs. Ma question est de savoir si ce déconcertant est commun à la plupart des programmeurs elisp.
Edit: En regardant mon code, je ne suis pas strictement le suivre. Le code serait alors assez horrible. C'est surtout le désamorçage, laissez, si et ainsi de suite. Mais cela semble aller à l'encontre du grain, alors je devrais probablement arrêter de faire ça. Bravo pour l'entrée.
(Basé sur une opinion limite, mais il semble lié à la fermeture d'accolades en C ++, où il ne devrait pas être controversé de déclarer qu'ils devraient généralement être sur leurs propres lignes).
la source
ag
sur les sources lisp me donne 3414 candidats pour les^\s*?\)$
regex qui composent 468 fichiers qui appartiennent à environ 200 packages?.el
fichiers ont moins de 10 instances de cela. Cela signifie que ces fichiers ne l'adoptent pas comme style, ils l'utilisent simplement à certains endroits pratiques (comme pour terminer des fonctions très longues).Réponses:
Eh bien, une réponse courte est "il n'y a pas besoin". Comme Emacs peut analyser les expressions s de LISP, il sait exactement où les formulaires s'équilibrent et peut ré-indenter correctement le code. Dans ce cas, le fait de déplacer un support vers sa propre ligne gaspille simplement une ligne d'espace supplémentaire et en même temps n'est pas idomatique et choquant pour les autres programmeurs LISP habitués au style canonique. Comme cela a été mentionné dans les commentaires, cela ne vous empêche pas d'utiliser un espace blanc vertical pour séparer visuellement des morceaux de code.
Dans la pratique, beaucoup d'Emacs utilisant des programmeurs LISP utilisent une variété d'indices visuels supplémentaires comme le mode show-paren qui aident à naviguer à travers un nid dense de parenthèses fermantes. Les ingénieurs qui ont intégré des modules tels que paredit et smart-parens dans leur cycle d'édition sont devenus un avec l'AST et manipulent simplement sa structure directement de manière à ce que les expressions soient toujours équilibrées et complètes.
la source
Le Guide de style Lisp de Riastradh développe un peu plus sur ce sujet spécifique. Bien qu'il décourage généralement de placer des parenthèses fermantes sur leur propre ligne, il reconnaît plusieurs exceptions, comme une ligne précédente avec un paren de fermeture commenté et de très longues listes qui autrement gâcheraient constamment les différences lors de l'ajout de nouveaux éléments au début ou à la fin. .
la source
J'écris Elisp depuis environ 2-3 ans maintenant. Au début, je faisais le truc des parens suspendus, mais depuis que j'ai découvert la règle que vous avez mentionnée, j'ai commencé à le faire moi-même. Et je peux dire maintenant qu'il est beaucoup plus facile de lire le code lorsqu'il est correctement stylisé.
J'ai même écrit du code de mise en forme LISP ici: lispy-tab .
Et, bien sûr, j'ai
show-paren-mode
tout le temps.la source