Emacs fill-paragraph immer schön zu spielen mit javadoc artigen Kommentare

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

  •  09-06-2019
  •  | 
  •  

Frage

Ich schreibe eine Emacs Modus für einen APL Dialekt ich bei der Arbeit verwenden. ich hab bekommen Grundschrift Verriegelung zu arbeiten, und nach dem Abbinden Kommentar-Starts und Kommentar-Start überspringen, Kommentar / uncomment Region und füllen Absatz auch Arbeit.

Allerdings Kommentarblöcke enthalten oft javadoc Stil Kommentare und i möchte fill-paragraph Zusammenkleben Linien zu vermeiden beginnen mit solchen Befehlen.

Wenn ich diese (\ statt javadoc @):

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

M-q gibt mir:

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

Aber ich will:

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

Ich habe versucht, die Einrichtung Absatz-Start- und Absatz-getrennt die entsprechenden Werte, aber füllen Absatz immer noch nicht funktioniert innerhalb eines Kommentar-Block. Wenn ich die Kommentarmarkierungen, M-q Arbeiten zu entfernen, wie ich will zu, scheint zu funktionieren, so dass die regexp ich für Absatz-Start verwenden.

Muß ich einen benutzerdefinierten Fill-Absatz für mein Haupt schreiben Modus? cc-Modus hat man die Fälle wie diese behandelt, aber es ist wirklich Komplex, würde Ich mag es wenn möglich zu vermeiden.

War es hilfreich?

Lösung

Das Problem war, dass die Absatz-Start regexp hat die gesamte Zeile entspricht das tatsächliche Kommentarzeichen zu arbeiten, einschließlich. Die folgende elisp für das Beispiel funktioniert Ich habe:

(setq paragraph-start "^\\s-*\\#\\s-*\\\\\\(arg\\|ret\\).*$")

Hier ist eine Seite, die ein Beispiel regexp für PHP-Modus hat, das dies tut: http://barelyenough.org/blog/2006/10/nicer-phpdoc -comments /

Andere Tipps

ist es noch andere Modi, die weniger komplexe Funktionen für fill-paragraph-function verwendet haben. Durchstöbern meiner installieren, es sieht aus wie die, die in ada-Modus und Make-Modus sind gute Beispiele.

Was ich in diesen Fällen zu tun ist offen eine Leerzeile zwischen den Absatzzeilen und den Argumentlinien verwenden dann M-q die Absatzzeilen wickeln, dann die Leerzeile zwischen ihnen zu töten. Nicht ideal, aber es funktioniert und ist leicht genug, um in einem Makro aufzeichnen, wenn Sie sie brauchen zu wiederholen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top