{"id":2135,"date":"2011-05-26T20:52:01","date_gmt":"2011-05-26T18:52:01","guid":{"rendered":"http:\/\/www.final-memory.org\/?p=2135"},"modified":"2011-05-26T20:53:13","modified_gmt":"2011-05-26T18:53:13","slug":"quellcodeformatierung-mit-artistic-style","status":"publish","type":"post","link":"https:\/\/www.final-memory.org\/?p=2135","title":{"rendered":"Quellcodeformatierung mit Artistic Style"},"content":{"rendered":"<p>Zu einem guten Codierstyleguide geh\u00f6rt immer auch eine Formatierungsansage. Es ist deutlich einfacher, fremde Quelltexte zu lesen, wenn diese gleichf\u00f6rmig formatiert sind. Unsch\u00f6n formatierte Sourcecodes gibt es zuhauf. Auch man selber ist nicht immer gefeit, die eigenen Stilvorgaben und Vorlieben auch einzuhalten. Auch wenn man in einem Team gemeinsam Sourcen bearbeitet, kann ein solcher Styleguide helfen. Beim Hatari Projekt ist das z.B. recht uneinheitlich.<\/p>\n<p>Wie genau ein Quellcode nun einzur\u00fccken und zu formatieren ist, das bleibt immer eine pers\u00f6nliche Frage, z.B. wie geschweifte Klammern zu setzen sind. Hauptsache, der Stil ist einheitlich.<\/p>\n<p>Dabei helfen nat\u00fcrlich kleine Tools, bessere IDEs wie Code::Blocks oder Eclipse bieten gleich entsprechende Plugins. H\u00e4ufig rufen diese aber auch nur fertige Tools f\u00fcr die Kommandozeile auf.<\/p>\n<p>Unter Linux kommen direkt 2 Kandidaten infrage:<\/p>\n<ul>\n<li><strong>GNU Indent <\/strong>(<a href=\"http:\/\/www.gnu.org\/software\/indent\/\">http:\/\/www.gnu.org\/software\/indent\/<\/a>)<\/li>\n<li><strong>Artistic Style<\/strong> (<a href=\"http:\/\/astyle.sourceforge.net\/\">http:\/\/astyle.sourceforge.net<\/a>)<\/li>\n<\/ul>\n<p>Ich habe mich f\u00fcr <strong>Artistic Style<\/strong> entschieden, da es die von mir genutzten Optionen auf Anhieb anbietet. Ich habe nur ein wenig experimentiert und meine Vorlieben sehen wie folgt aus:<\/p>\n<p><code><br \/>\n#<br \/>\n# astylerc for Matthias Arndt<br \/>\n#<br \/>\n# history:<br \/>\n# 2011-05-26 initial version<br \/>\n#<\/p>\n<p># main style:<br \/>\nstyle=bsd<\/p>\n<p># indentation with TABS (4 spaces per TAB):<br \/>\nindent=tab<\/p>\n<p># contents of switch case statements are indented, including the break:<br \/>\nindent-cases<\/p>\n<p># preprocessor statements that are split are indented:<br \/>\nindent-preprocessor<\/p>\n<p># loops and if statements are seperated by empty lines:<br \/>\n# (associated block comments are kept)<br \/>\nbreak-blocks<\/p>\n<p># parenthesis are padded with spaces:<br \/>\npad-paren<\/p>\n<p># unnecessary empty lines are deleted:<br \/>\ndelete-empty-lines<br \/>\n<\/code><\/p>\n<p>Das Ganze kann man nach $HOME\/.astylerc speichern und schon braucht man das Tool nicht mehr mit Kommandozeilenparametern zu f\u00fcttern.<\/p>\n<div id=\"facebook_like\"><iframe src=\"http:\/\/www.facebook.com\/plugins\/like.php?href=https%3A%2F%2Fwww.final-memory.org%2F%3Fp%3D2135&amp;layout=standard&amp;show_faces=true&amp;width=500&amp;action=like&amp;font=segoe+ui&amp;colorscheme=light&amp;height=80\" scrolling=\"no\" frameborder=\"0\" style=\"border:none; overflow:hidden; width:500px; height:80px;\" allowTransparency=\"true\"><\/iframe><\/div>","protected":false},"excerpt":{"rendered":"<p>Zu einem guten Codierstyleguide geh\u00f6rt immer auch eine Formatierungsansage. Es ist deutlich einfacher, fremde Quelltexte zu lesen, wenn diese gleichf\u00f6rmig formatiert sind. Unsch\u00f6n formatierte Sourcecodes gibt es zuhauf. Auch man selber ist nicht immer gefeit, die eigenen Stilvorgaben und Vorlieben auch einzuhalten. Auch wenn man in einem Team gemeinsam Sourcen bearbeitet, kann ein solcher Styleguide &hellip; <a href=\"https:\/\/www.final-memory.org\/?p=2135\" class=\"more-link\">Continue reading<span class=\"screen-reader-text\"> &#8220;Quellcodeformatierung mit Artistic Style&#8221;<\/span><\/a><\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[76,25,24],"tags":[],"class_list":["post-2135","post","type-post","status-publish","format-standard","hentry","category-ansi-c","category-it","category-linux"],"_links":{"self":[{"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/posts\/2135","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=2135"}],"version-history":[{"count":7,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/posts\/2135\/revisions"}],"predecessor-version":[{"id":2142,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=\/wp\/v2\/posts\/2135\/revisions\/2142"}],"wp:attachment":[{"href":"https:\/\/www.final-memory.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=2135"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=2135"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.final-memory.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=2135"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}