Quel est le moyen préféré de commenter sexps en code elisp? J'ai enveloppé mes sexps dans (if nil ...)
jusqu'ici.Comment faire pour commenter sexps en code elisp?
Répondre
[email protected] M-;
commentaires sexp.
[email protected]
reste pour mark-sexp
et M-;
sait comment commenter correctement une région, en tenant compte du mode courant. Les commandes de marquage d'objets sont décrites here.
points-virgules - ;;;
;;; insert into buffer
(defun thingy (foo)
(interactive "stallman: ") ; prompt the user
; one semi-colon is also enough
;;;(insert (concat "deprecated")) ;;; this line will not execute
(insert (concat "gnu-" foo)))
Merci, mais les points-virgules commenteront des lignes entières. Je cherchais un moyen de commenter les sexps individuels. – sigjuice
Je doute assez que vous pouvez commenter un sexp sans utiliser le mécanisme de commentaire de la langue. '(si nil sexp)' renvoie une valeur de zéro, alors qu'un commentaire est ignoré et n'a pas de valeur. En tant que tel, je serais un peu méfiant d'utiliser le terme «commentaire» pour décrire cela, parce que ce n'est pas ce que c'est. – phils
ouais, je fixais sur "commentaire" .... qui sont appliquées à partir du point-virgule (s) à EOL –
Votre construction (if nil sexp)
fonctionnera très bien. Je ne sais pas s'il y a un équivalent standard dans Emacs Lisp, bien que je ne le soupçonne pas. Si vous voulez être plus explicite sur ce que vous faites, vous pouvez utiliser quelque chose comme le comment macro in clojure. Ce qui est facilement implémenté comme une macro Emacs Lisp.
(defmacro comment (&rest body)
"Comment out one or more s-expressions."
nil)
alors vous pouvez écrire:
(comment
...
; As many sexps as you want here...
...)
EDIT:
Ajouté nil
à la fin de la définition de la macro comment
. Comme indiqué par Marko Topolnik, si vous ne fournissez pas un corps d'implémentation, defmacro
suppose que la docstring est réellement le corps. Explicitement mettre un nil
à la fin fonctionne autour de cela. Merci pour la capture Marko!
La macro est belle parce que vous pouvez avoir plusieurs sexps, alors que le si ne fonctionne que pour un seul sexp. Une alternative évidente serait (quand nul ....) –
Avertissement: la macro ne fonctionne que pour les formulaires de niveau supérieur. Il s'étend à ce que l'auteur a apparemment voulu être sa chaîne de doc. –
'C-M- @' peut également être lié à 'C-M-SPC', ce qui peut être plus facile à saisir et à mémoriser. – kristianlm