Faire en sorte que le fill-paragraphe d'Emacs joue bien avec des commentaires de type javadoc

StackOverflow https://stackoverflow.com/questions/71788

  •  09-06-2019
  •  | 
  •  

Question

J'écris un mode majeur Emacs pour un dialecte APL que j'utilise au travail. j'ai eu le verrouillage de base des polices pour fonctionner, et après avoir défini comment-start et comment-start-skip, comment / décommenter la région et remplir le paragraphe également travail.

Cependant, les blocs de commentaires contiennent souvent des commentaires de style javadoc et i voudrait remplir-paragraphe pour éviter de coller des lignes ensemble à partir avec de telles commandes.

Si j'ai ceci (\ au lieu de javadoc @):

# This is a comment that is long and should be wrapped.
# \arg Description of argument
# \ret Description of return value

M-q me donne:

# This is a comment that is long and
# should be wrapped. \arg Description
# of argument \ret Description of
# return value

Mais je veux:

# This is a comment that is long and
# should be wrapped.
# \arg Description of argument
# \ret Description of return value

J'ai essayé de configurer paragraphe-start et paragraphe-distinct pour valeurs appropriées, mais fill-paragraphe ne fonctionne toujours pas dans un bloc de commentaires. Si je supprime les marqueurs de commentaire, M-q fonctionne comme je le souhaite ainsi, l'expression rationnelle que j'utilise pour paragraphe-start semble fonctionner.

Dois-je écrire un paragraphe de remplissage personnalisé pour ma majeure mode? Le mode cc en a un qui gère ce type d’affaires, mais c’est vraiment complexe, j'aimerais l'éviter si possible.

Était-ce utile?

La solution

Le problème était que l’expression rationnelle début de paragraphe doit correspondre à toute la ligne pour fonctionner, y compris le caractère de commentaire réel. Elisp suivant fonctionne pour l'exemple que j'ai donné:

(setq paragraph-start "^\\s-*\\#\\s-*\\\\\\(arg\\|ret\\).*<*>quot;)

Voici une page qui contient un exemple d'expression rationnelle pour php-mode: http://barelyenough.org/blog/2006/10/nicer-phpdoc -comments /

Autres conseils

Il existe d'autres modes qui ont des fonctions moins complexes utilisées pour la fonction de remplissage de paragraphe . En parcourant mon installation, il semble que ceux en mode ada et make-mode sont de bons exemples.

Ce que je fais dans ces cas-là est d'ouvrir une ligne vide entre les lignes de paragraphe et les lignes d'argument, puis d'utiliser M-q pour envelopper les lignes de paragraphe, puis de supprimer la ligne vide entre elles. Pas idéal, mais cela fonctionne et est assez facile à enregistrer dans une macro si vous devez le répéter.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top