Lassen Sie den GNU-Einzug lange Kommentare unterbrechen

7

Gibt es eine Möglichkeit, den GNU-Einzug davon zu überzeugen, lange Kommentare zu unterbrechen und in mehrzeilige Kommentare umzuwandeln? Etwas wie das:

// Very long comment, longer than 80 characters. Just imagine that.

Dazu:

/*
 * Very long comment, longer than 80 characters. Just
 * imagine that.
 */

Ich weiß, dass die zweite Formatierung einfach mit '-cdb -sc' erfolgen kann, aber ich weiß nicht, wie ich Zeilenumbrüche und Änderungen des Kommentartyps sicherstellen kann. Ist es überhaupt möglich?

Citrisin
quelle
Haben Sie eine Antwort darauf gefunden? weil ich vor dem gleichen Problem stehe und wissen muss, wie das geht.
m4l490n
Leider nicht. Mit gnu indent scheint es nicht möglich zu sein. Ich habe es nicht in der Dokumentation gefunden.
Citrisin

Antworten:

1
sed -i '\_//_{s_//_/* _g;s_$_ */_g}' file.c
indent -fc1 -fca -sc -cdb file.c
sed -i 's/\/\*\(.*\)\*\/$/\/\/\1/' file.c

tut, was Sie angefordert haben, aber ich wäre vorsichtig, da es wahrscheinlich einige Randfälle übersieht

Eingang:

// Lorem ipsum dolor sit amet, apeirian constituam interpretaris no his, soluta salutandi persequeris vel ne, facete impedit contentiones te eam. Ut utamur habemus qualisque usu
#include <stdio.h>
int main () // damn
{
  puts ("hello world" /* sheeet */); }              /* oh shit */

Ausgabe:

/*
 * Lorem ipsum dolor sit amet, apeirian constituam interpretaris no his,
 * soluta salutandi persequeris vel ne, facete impedit contentiones te eam.
 * Ut utamur habemus qualisque usu
 */
#include <stdio.h>
int
main ()             // damn
{
  puts ("hello world" /* sheeet */ );
}               // oh shit
Jedi
quelle
1

Ich habe dies zum Laufen gebracht, aus irgendeinem Grund erfordert es sowohl -fc1als auch -fcaOptionen:

indent -fc1 -fca j.c

Alternativ können Sie den Berkeley-Stil verwenden:

indent -orig j.c

Eingang:

// Lorem ipsum dolor sit amet, apeirian constituam interpretaris no his, soluta salutandi persequeris vel ne, facete impedit contentiones te eam. Ut utamur habemus qualisque usu
#include <stdio.h>
int main(){puts("hello world");}

Ausgabe:

// Lorem ipsum dolor sit amet, apeirian constituam interpretaris no his,
// soluta salutandi persequeris vel ne, facete impedit contentiones te eam.
// Ut utamur habemus qualisque usu
#include <stdio.h>
int
main ()
{
  puts ("hello world");
}

Beispiel

Steven Penny
quelle
Teilweise ist dies eine Art Lösung, aber sie bricht den Stil (mehrzeiliger Kommentar sollte / * * / sein). Die Idee war, dass nicht nur eine neue Zeile angezeigt, sondern auch der Kommentartyp geändert wurde. Ich werde diese Antwort nach einiger Zeit akzeptieren, wenn niemand eine bessere Lösung findet, aber es ist nicht genau das, was ich brauchte.
Citrisin