Forum: Compiler & IDEs C Kommentare verschieben


von Jens (Gast)


Lesenswert?

Hallo,

gibt es ein schönes Tool, um alle //.. Kommentare meines C-Quellcodes 
auf eine bestimmte Zeichenposition zu verschieben - aus allen meinen 
Quellen?

Danke für eure Hilfe :)

von Draco (Gast)


Angehängte Dateien:

Lesenswert?

:D


Meinst du denn ein Tool was Dateien stappelweiße abarbeitet und dabei 
die Kommentare auf z.b. Satzzeichen 10 setzt?!

Ich stelle mir das halt mit den Kommentaren hinter Quelltext schwer vor, 
sowas zu realisieren. :/

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Draco schrieb:
> stappelweiße

?

von Jens (Gast)


Lesenswert?

Draco schrieb:
> :D
>
> Meinst du denn ein Tool was Dateien stappelweiße abarbeitet und dabei
> die Kommentare auf z.b. Satzzeichen 10 setzt?!
>
> Ich stelle mir das halt mit den Kommentaren hinter Quelltext schwer vor,
> sowas zu realisieren. :/

Natürlich. Wenn ich z.B. 20 Quelldateien mit 10.000 Zeilen habe, sollen 
hier alle Kommentare auf Position 81 verschoben werden.

ALs Beispiel :).

von Klaus W. (mfgkw)


Lesenswert?

awk

von DirkB (Gast)


Lesenswert?

Klaus W. schrieb:
> awk

Der reguläre Asudruck, der die // in einem Stringliteral oder einem /* 
*/ Kommentar nicht erkennt, würde mich interessieren.

von Max (Gast)


Lesenswert?

Du könntest dir mal Uncrustify (http://uncrustify.sourceforge.net/) 
ansehen. Das macht natürlich noch etwas mehr als Kommentare richtig 
einzurücken, aber vielleicht hilft es ja.

von Klaus W. (mfgkw)


Lesenswert?

DirkB schrieb:
> Der reguläre Asudruck, der die // in einem Stringliteral oder einem /*
> */ Kommentar nicht erkennt, würde mich interessieren.

Man kann auch in awk die Zeile entlanglaufen und muß nicht alles mit 
einem RE erschlagen.

von Klaus W. (mfgkw)


Lesenswert?

Ich frage mich schon, wieso jemand mit C hantiert, wenn er nicht in der 
Lage ist, sich ein Programm zu bauen, das so etwas macht.
Wenn man fit ist, würde man hier nicht fragen, sondern es machen.
Wenn nicht, ist es eine schöne Übung...

von Stefan F. (Gast)


Lesenswert?

Und ich frage mich, warum jemand das Rad neu erfinden sollte, ohne 
vorher zu fragen, ob das nicht schon fix und fertig zu haben ist.

Diese Frage nach einem Tool ist doch vollkommen Ok!

von Mark B. (markbrandis)


Lesenswert?

Stefan U. schrieb:
> Und ich frage mich, warum jemand das Rad neu erfinden sollte, ohne
> vorher zu fragen, ob das nicht schon fix und fertig zu haben ist.

Bingo.

Für sowas nimmt man awk oder sed.

von Jay (Gast)


Lesenswert?

Klaus W. schrieb:
> Ich frage mich schon, wieso jemand mit C hantiert, wenn er nicht
> in der
> Lage ist, sich ein Programm zu bauen, das so etwas macht.
> Wenn man fit ist, würde man hier nicht fragen, sondern es machen.
> Wenn nicht, ist es eine schöne Übung...

Wenn der Einäugige versucht den Blinden anzumachen ...

Bei solchen Antworten frage ich mich, wo die Helden der C-Programmierung 
ihr Handwerk, und dazu gehören Werkzeuge, gelernt haben.

In Kurzform, die korrekte Antwort ist

indent

Die klassische, launige Version der Antwort:

man indent

Die langhaarige Späthippie Antwort:

https://www.gnu.org/software/indent/manual/indent.html#SEC8

Die was bin ich heute nett Antwort mit Zitat:

> Comments to the right of code will appear by default in column 33.
> This may be changed with one of three options. ‘-c’ will specify the
> column for comments following code, ‘-cd’ specifies the column for
> comments following declarations, and ‘-cp’ specifies the column for
> comments following preprocessor directives #else and #endif.
> ‘-dj’ together with ‘-cd0’ can be used to suppress alignment of
> comments to the right of declarations, causing the comment to follow
> one tabstop from the end of the declaration. Normally ‘-cd0’ causes
> ‘-c’ to become effective.
>
> If the code to the left of the comment exceeds the beginning column,
> the comment column will be extended to the next tabstop column past the
> end of the code, or in the case of preprocessor directives, to one space
> past the end of the directive. This extension lasts only for the output
> of that particular comment.

von Mark B. (markbrandis)


Lesenswert?

Jay schrieb:
> In Kurzform, die korrekte Antwort ist
>
> *indent*

Jein.

indent ist halt nur für Spezialfälle gedacht. Tools wie awk und/oder sed 
sind viel allgemeiner einsetzbar. Daher sind sie weitaus nützlicher. Und 
somit lohnt es sich mehr, sich mit diesen zu beschäftigen :-)

von Vernon D. (petunialovesme)


Lesenswert?

Klaus W. schrieb:
> awk

   ^--- this

von Rene H. (Gast)


Lesenswert?

sed und awk unter Unix.

Auf welchem Betriebssystem möchtest Du das machen?

Grüsse,
René

von Mark B. (markbrandis)


Lesenswert?

Rene H. schrieb:
> sed und awk unter Unix.

Gibt es auch für Windows.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Jay schrieb:
> In Kurzform, die korrekte Antwort ist
>
> indent

Aber nur, wenn du damit leben kannst, dass dir alles umformatiert
wird.

von Jay (Gast)


Lesenswert?

Jörg W. schrieb:
> Jay schrieb:
>> In Kurzform, die korrekte Antwort ist
>>
>> indent
>
> Aber nur, wenn du damit leben kannst, dass dir alles umformatiert
> wird.

Was ist gegen Code durchgehend nach einem gängigen Standard zu 
formatiert einzuwenden? Wenn dir dabei die Versionskontrolle um die 
Ohren fliegt hast du indent nicht früh und nicht konsequent verwendet. 
indent formatiert nur dort um, wo der Code nicht dem gewählten Standard 
entspricht.

Wenn kein gängiger Formatier-Standard mundet, indent hat über 80 
Parameter die man einzeln einstellen kann um sich sein persönliches 
Orchideen-Format zu generieren. Ein indent-Target ins Makefile gepackt 
und immer wenn nötig aufgerufen und der Code bleibt schön einheitlich.

Warum soll ich mir für so eine Aufgabe ein eigenes Programm schreiben, 
egal ob in C, sed oder awk? Akademisch vielleicht interessant wenn man 
sich langweilt und man mit dem Schreiben des eigentlichen Programms 
nicht schon genug zutun hat.

von Mark B. (markbrandis)


Lesenswert?

Jay schrieb:
> Warum soll ich mir für so eine Aufgabe ein eigenes Programm schreiben,
> egal ob in C, sed oder awk?

awk mit ein paar Parametern aufzurufen würde ich jetzt nicht als 
"eigenes Programm schreiben" bezeichnen.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Jay schrieb:
> Was ist gegen Code durchgehend nach einem gängigen Standard zu
> formatiert einzuwenden?

Dass du hernach sackweise Diffs in der Versionsverwaltung siehst, die
eigentlich gar keine sind.

Das tut man sich nicht freiwillig an.  (In der Anfangszeit von
FreeBSD gab's mal eine Aktion “remove trailing whitespace”; das
Fazit der Aktion war, dass es ein Fehler war, der sich halt nur nicht
mehr rückgängig machen ließ.  Zurückrollen des VCS war schließlich
auch keine sinnvolle Option.)

Es ist nichts dagegen einzuwenden, sowas von vornherein anzuwenden
(wobei wir statt indent lieber astyle nehmen), aber nachträglich
auf ein Projekt würde ich es nur draufpacken, wenn die bisherige
Formatierung wirklich so scheußlich ist, dass man ohne die
Umformatierung gar nicht mehr durchblickt.

von Konrad S. (maybee)


Lesenswert?

Mich würden Lösungen mit awk oder sed interessieren. Ich bin 
diesbezüglich etwas skeptisch.

von W.S. (Gast)


Lesenswert?

Jörg W. schrieb:
> wenn die bisherige
> Formatierung wirklich so scheußlich ist, dass man ohne die
> Umformatierung gar nicht mehr durchblickt.

Ach Jörg, jaja - aber das ist ein bissel zu kurz gesprungen.

Normalerweise ist es ja so, daß jeder, der eine Quelle schreibt und 
nicht ganz und gar blöd ist, selbige von Hand so setzt, daß sie sich 
möglichst gut lesen läßt. Das ist immer viel qualifizierter, als irgend 
ein "mechanisches" Tool drüberlaufen zu lassen, was eben nur nach sturen 
Formalien arbeiten kann und keinen Sinn in der zu bearbeitenden Quelle 
sehen kann. Ebenso können solche Tools nicht im mindesten das visuelle 
Erscheinungsbild begreifen, was WIR als Menschen zu sehen imstande 
sind.

OK, es gibt auch Schweineigel, die visuellen Bockmist zusammenschreiben. 
Dort hilft leider garnichts. Naja, außer per Dienstbefugnis diese Leute 
das Umformatieren ins Leserliche selber und von Hand durchführen zu 
lassen. Ist so etwa wie "jetzt schreiben Sie 100x "ich soll nicht ...". 
Die normale Reaktion ist abgrundtiefes Beleidigtsein, aber wer kennt nen 
besseren Weg?

Kurzum, ich habe ganz strikt etwas gegen jedes maschinelle 
Herumformatieren an Quelltexten. Das sieht eigentlich immer mehr oder 
weniger unleserlich aus und ist mickrig im Vergleich zu einer von 
Menschenhand leserlich geschriebenen Quelle. Insofern ist das mit dem 
Layouten von Leiterplatten durchaus vergleichbar. Die Nichtkönner machen 
einen Drahtverhau draus.

W.S.

von W.A. (Gast)


Lesenswert?

Jörg W. schrieb:
> Dass du hernach sackweise Diffs in der Versionsverwaltung siehst, die
> eigentlich gar keine sind.

Wo sollen die herkommen, wenn der Code entsprechend dem Standard 
formatiert war? Man muss so ein Tool nur rechtzeitig und konsequent 
einsetzen.

von Codix (Gast)


Lesenswert?

notepad++ kann so was auch.

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

W.A. schrieb:
> Man muss so ein Tool nur rechtzeitig und konsequent einsetzen.

Darum ging es aber in diesem Thread einfach mal nicht.  Die Frage war
nicht nach den besten Empfehlungen zu Formatierung von Sourcecode,
sondern nach einem Tool, das Kommentare auf eine bestimmte Spalte
verschiebt.

von Marc (Gast)


Lesenswert?

W.S. schrieb:
>
> Kurzum, ich habe ganz strikt etwas gegen jedes maschinelle
> Herumformatieren an Quelltexten. Das sieht eigentlich immer mehr oder
> weniger unleserlich aus und ist mickrig im Vergleich zu einer von
> Menschenhand leserlich geschriebenen Quelle.

Im Laufe der Jahre habe ich einigen Code von Programmierern gereviewt.
Nur sehr wenige haben es geschafft einen vorgegebenen Style konsequent 
zu nutzen. Meine Erfahrung: Formatierter wie Astyle sind besser als 
Programmierer weil sie die Ausreden
* Vergessen
* Keine Zeit
* Wir haben einen Styleguide...?
Nicht kennen...

von Mark B. (markbrandis)


Lesenswert?

Marc schrieb:
> Im Laufe der Jahre habe ich einigen Code von Programmierern gereviewt.
> Nur sehr wenige haben es geschafft einen vorgegebenen Style konsequent
> zu nutzen.

Das deckt sich zu 100% mit meinen Erfahrungen.

von W.S. (Gast)


Lesenswert?

Marc schrieb:
> Nur sehr wenige haben es geschafft einen vorgegebenen Style konsequent
> zu nutzen. Meine Erfahrung: Formatierter wie Astyle sind besser als
> Programmierer weil sie die Ausreden...

Es kommt auf die Leserlichkeit an, also auf das, was wir Menschen 
optisch gut erfassen können - und nicht darauf, auf irgendwelchen 
"vorgegebenen Style(s)" dogmatisch herumzupochen.

Und da sind Programme eben stur und doof und können es eben doch nicht 
so wie ein (zugegebenermaßen verständiger) Mensch.

W.S.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.