nDiki : perltidy
perltidy
Perl ソースコードを読み込んで、インデントの修正などを行い整形されたソースコードを出力するツール。GNU GPL のもと公開されている。
このツールを用いることで、スタイルの統一された見やすいソースコードにすることができる。 また、ソースコードをハイライトした HTML ファイルを作成することもできる。
使用例: HTML テキスト出力
ソースコードをハイライトして行番号付きの HTML テキストを生成する場合は
perltidy -html -nnn --nohtml-entities source.pl
とする。
ActivePerl へのオンラインインストール (PPM パッケージ)
Windows 上で ActivePerl を利用している場合は、PPM パッケージの形でネットワークインストールできる。
コマンド プロンプト上で、以下を実行する:
ppm install Perl-Tidy
スポンサード リンク
Related term
2006年4月23日 (日)
■ Perl プリティプリンタの定番 perltidy

一昨日は時間がなかったので、Perl プログラムの色付きプリントアウト作成に Emacs の htmlize.el を使用したのだが、残念ながらこれだと Emacs を使っていない人には薦めることができない。
ということで調べたところどうやら perltidy が定番の様子。 Perl Best Practices でも紹介されているらしい。
@ HTML テキスト出力
ソースコードをハイライトして行番号付きの HTML テキストを生成する場合は
perltidy -html -nnn --nohtml-entities source.pl
とする。
@ Emacs からの perltidy の呼び出し
perltidy の真価はソースのリフォーマットにある。 これを使用するとソースコードを統一のとれたスタイルに整えることができる。
Emacs からはリージョン選択して
M-1 M-| perltidy
するか、http://www.emacswiki.org/.../CPerlMode で紹介されている
(defun perltidy-region ()
"Run perltidy on the current region."
(interactive)
(save-excursion
(shell-command-on-region (point) (mark) "perltidy -q" nil t)))
(defun perltidy-defun ()
"Run perltidy on the current defun."
(interactive)
(save-excursion (mark-defun)
(perltidy-region)))
を .emacs などに書いておいて M-x perltidy-region することで整形することができる。
今までは CPerl mode 頼りだったけれど、これからはリポジトリにコミットする前に perltidy を通すようにしようかな。
まずは自分好みにあわせた、.perltidyrc を作成せねば。
- Emacs でお好きな言語のソースコードを色付き HTML テキストに変換 (2006-04-21)
- Perl 用の doxygen のようなツールはないのかな (2006-07-25)
- 第2回 社内 Perl 勉強会 (2006-04-28)
- emacs-wiki の中の Perl ソースコードを整形できるように (2002-06-08)
- 第1回 社内 Perl 勉強会 (2006-04-21)
2006年4月24日 (月)
■ perltidy のコマンドファイルでデフォルト設定

perltidy をいろいろいじった結果、今のところ自分好みの設定は以下:
# Basic Options
--maximum-line-length=78 # default is 80
--indent-columns=2 # (!= perlstyle) default is 4
--preserve-line-endings
# Conde Indentation Control
--line-up-parentheses #
--nooutdent-long-lines # default is --outdent-long-lines
# Whitespace Control
--paren-tightness=2 # default is 1
--square-bracket-tightness=2 # default is 1
--brace-tightness=2 # default is 1
--nospace-for-semicolon # default is --space-for-semicolon
# Line Break Control
--vertical-tightness=2 # default is 0
--vertical-tightness-closing=1 # default is 0
--want-break-before="% + - * / x != == >= <= =~ !~ < > | & >= < = **= += *= &= <<= &&= -= /= |= >>= ||= .= %= ^= x="
# default is ". << >> -> && ||"
# HTML Options
-nnn
--nohtml-entities
一応 Perl Best Practices (は持っていないので Web で公開されているサンプルファイル)の perltidyrc や perlstyle などを参考にしつつ作成。
インデント幅その他、比較的タイトがお好き。
- リャマ本を Perl トレーニングコース用ブックに選定 (2006-04-18)
- Plagger で Twitter のあれこれをメールで通知 (2008-12-25)
- Web 日誌 / Web 日記を書き始めてから10年 (2009-01-19)
- 私的10大ニュース2004 [ comp ] (2004-12-31)
- 第2回 社内 Perl 勉強会 (2006-04-28)
2006年4月28日 (金)
■ 第2回 社内 Perl 勉強会

リャマ本を使用した社内 Perl 勉強会の2回目を開催。 今回は7人。直前に社長につかまって約20分遅れのスタート (スミマセン)。
進行方法はほぼ前回と同じで、事前に練習問題を解いておき、勉強会では互いにコードレビューをしながら進行役の私がポイントを説明していく形式。
今日は「初めてのPerl 第3版」第3章が範囲で、リストと配列がテーマ。
@ 今回の変更点と反省点
- 解答のソースコードは全員 perltidy で色付き HTML に変換してプリントアウトして持ってくるようにしてもらった。前回より見易さアップ。
- 前回は1人1解答につき1枚プリントして持参してもらったが、今回は各自出席者分プリントアウトし持ち寄ってもらうことにした。これによって、それぞれ配られたプログラムをゆっくりレビューできる。書き込みもできるし、持ち帰ることもできるので効果あり。
- ソースコードの先頭にコメントとして問題番号と作成者名を入れてもらうようにしたのだが、それだけだと誰のものか区別しにくいとの意見。
今のところ、全員ついてこれている様子。 スカラーコンテキストとリストコンテキストは、Perl 初心者にとってとっつきにくい部分の一つだと思うので、これが理解できれば結構いけそうな気もする。
今回はトータル80分ぐらい。7人だと1時間半ぐらい確保しておいた方がいいかもしれないな。
次回はゴールデンウィークを挟んで2週間後。
- 第1回 社内 Perl 勉強会 (2006-04-21)
- Perl プリティプリンタの定番 perltidy (2006-04-23)
- Emacs でお好きな言語のソースコードを色付き HTML テキストに変換 (2006-04-21)
- Perl 用の doxygen のようなツールはないのかな (2006-07-25)
- 第3回 社内 Perl 勉強会 (2006-05-12)
2006年7月25日 (火)
■ Perl 用の doxygen のようなツールはないのかな

WiKicker のソースコードを人に説明するのにプリントアウトして説明するのに、doxygen のようなツールが欲しいのだけれど Perl 用のものはないのかな。
- ソースコードを色付けした HTML に変換してくれる
- Pod とコード本体を混在してドキュメント化してくれる
- ソースツリー内のファイルをそれぞれ処理してくれて、インデックスファイルも生成してくれる。
- できれば識別子がリンクになってくれる
というのが希望。1 だけなら結構いろいろなツールがあり、1 + 2 なら perltidy で実現できる。 しかし 3、4 までしてくれるツールが見つけられない。
とりあえず perltidy の Perl::Tidy と File::Find で再帰的にまとめて HTML に変換するスクリプトだけは書いて、一気に変換だけはできるようにしておいた。
インデックスの作成までは面倒なので未着手。
- Perl プリティプリンタの定番 perltidy (2006-04-23)
- 第2回 社内 Perl 勉強会 (2006-04-28)
- Emacs でお好きな言語のソースコードを色付き HTML テキストに変換 (2006-04-21)
- Rubric でプライベート SBS を立てるも 0.140 では日本語に不具合 (2006-07-22)
- 今日のさえずり - 「チューペットみたいな何か」いっぱいあった (2009-08-28)
2009年8月10日 (月)
■ C++ 用ソースコードフォーマッタ Uncrustify

私が Perl が好きな理由の一つとして perltidy が存在しているという点がある。 perltidy のソースコード整形は柔軟にカスタマイズができて、自分の好みの整形設定を作っておける。 このツールおかげで後で整形できるので、荒々しくコードを書いてガンガンリファクタリングしていくことできる。
久しぶりに C++ の開発をするにあたって、C++ の同様のツールを探してみた。 perltidy のように長い式の折り返しを適切に調整してくれる整形ツールはあまり見つからない。いくつか試したところ Uncrustify にたどりついた。
@ 設定
uncrustify -c /dev/null --update-config-with-doc -o ~/.uncrustify.cfg
するとデフォルトの設定が書き込まれた設定ファイルができる。 これを好みの設定に書き換えていく。
@ ソースコード整形する
uncrustify source.cpp
とすると整形されたソースコードが source.cpp.uncrustify に出力される。
uncrustify --replace source.cpp
とすると source.cpp 自体を整形されたソースコードで置き換えてくれる。
@ Emacs からの呼び出し
perltidy の時の設定(記事)で OK。 shell-command-on-region では
uncrustify -l CPP -q
を実行するようにする。Uncrustify は標準入力からソースコードを渡す際にはどのプログラミング言語が指定してあげる必要がある。
好みの設定は現在模索中。 長い式の中の、引数なしの関数呼び出しの開き括弧と閉じ括弧の間で折り返されることがあってそれが気持ち悪いのだが、それ以外は好みの設定になりつつある。 もうちょっと設定いじってみて確定するつもり。
- Perl プリティプリンタの定番 perltidy (2006-04-23)
- Linux で使えるデスクトップ検索ツール Beagle でローカルファイ... (2006-08-08)
- スクラッチから書き直したくなるプログラマは、書き直したプログラムもまたスク... (2008-06-14)
- 今日のさえずり - 京都の小学校のコンピュータ室にいったら、Squeak が (2008-03-06)
- 今日のさえずり - これ Emacs なのよね (2010-01-26)
■注目キーワード
購入 買った 発売日 フリー 無料 価格 値段 作り方 選び方 使い方 方法 設定 サンプル ダウンロード 限定 在庫 予約 穴場 比較 検証 レビュー 感想 評価 評判 使用感 使ってみた 口コミ 噂 最新 MP3 動画 意味 お薦め お勧め おすすめ 便利 Blog ブログ mixi 修理 デザイン ビックカメラProcess Time: 0.027464s / load averages: 0.27, 0.16, 0.11
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)




◇ Twitter やってます。この記事が気にいったらぜひ twitter.com/Naney の follower になってください。