Home > linux, software > C Code Beautifier in gedit

C Code Beautifier in gedit

Wer kennt es nicht, der Quellcode des anderen sieht sch***e aus, aber man muß/will ihn trotzdem lesen. Ich hab für gedit eine einfache Möglichkeit gefunden:

  • indent http://www.gnu.org/software/indent/ installieren (sudo aptitude install indent)
  • gedit Preferences: External Tools plugin aktivieren
  • External Tools plugin konfigurieren

Jetzt im External Tools Manager ein neues “Tool” anlegen:
Name (z.B. “CodeBeautify”)
Description (z.B. “Make a BenchIT compatible code reformatting (K&R style)”)
Shortcut Key (z.B. “<Control>F12”)
Command:

#!/bin/sh
indent  'FLAGS'

Input: Current document
Output: Replace current document
Applicability: All Documents

Meine Flags sind (etwas abgewandelter Kernighan & Ritchie Style für C Datein des BenchIT Projekts):

-nbad -bap -nbbb -sob -c40 -cd40 -ncdb -cp40 -d0 -nfc1 -fca -sc -br -ce -cdw -cli3
-cbi3 -nss -npcs -ncs -saf -sai -saw -nprs -di1 -nbc -nbfda -nbfde -npsl -brs -brf
-i3 -ci3 -lp -ip3 -l80 -nbbo -nhnl -nut

(Indent bringt einige vordefinierte Styles mit, d.h. man muß nicht gezwungenermaßen eine große Menge an Flags angeben.)

Hat man eine beliebige C Datei geöffnet einfach Control+F12 drücken und schon ist die Datei formatiert.

Categories: linux, software Tags: , , ,
  1. ronny
    May 25th, 2009 at 22:34 | #1

    Bin mit Indent auch recht weit gekommen.
    Aber eine mehrzeilige Parameterliste auf die Klammerhöhe einzurücken (wenn ich mich recht erinner) GEHT MAL SOWAS VON GAR NICHT!

    brendel@faye:~/misc$ cat indention.nearly.good.but.not.really
    indent test.cpp –blank-lines-after-procedures –braces-on-if-line –brace-indent0 –braces-after-struct-decl-line –continuation-indentation8 –case-indentation0 –indent-level4 –case-indentation0 –dont-break-procedure-type –leave-optional-blank-lines –no-tabs –preserve-mtime –space-after-for –space-after-if –space-after-while –tab-size4 –dont-break-function-decl-args –no-parameter-indentation –dont-format-comments -o test.out.cpp

  2. jens
    May 26th, 2009 at 00:47 | #2

    doch sollte gehen mit -lp (bzw ausgeschrieben –continue-at-parentheses) sofern es das ist was du mit “Parameterliste auf die Klammerhöhe einzurücken” meinst, du kannst auch morgen gern mal rum kommen, wenns nicht gehen sollte

  3. ronny
    May 26th, 2009 at 11:56 | #3

    das gegenteil. Ich möchte das verhindern.

  4. jens
    May 26th, 2009 at 12:34 | #4

    na dann einfach -nlp

  5. ronny
    June 6th, 2009 at 11:35 | #5

    Bin etwas näher an das gekommen was ich wollte. Aber es ist ziemlich ungeeignet für c++. 🙁

  6. July 22nd, 2019 at 20:06 | #6

    I have noticed you don’t monetize nrtm.org, don’t
    waste your traffic, you can earn extra bucks every month with new monetization method.

    This is the best adsense alternative for any type of website (they approve all sites), for more details simply search in gooogle: murgrabia’s
    tools

  1. No trackbacks yet.