トップ(最新)

nDiki : perltidy

perltidy

Perl ソースコードを読み込んで、インデントの修正などを行い整形されたソースコードを出力するツール。GNU GPL のもと公開されている。

このツールを用いることで、スタイルの統一された見やすいソースコードにすることができる。 また、ソースコードをハイライトした HTML ファイルを作成することもできる。

使用例: ソースコードを整形する

 perltidy source.pl

整形された source.pl.tdy というファイルが生成される。

使用例: 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 を作成せねば。

スポンサード リンク


[ 4月23日全て ]

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 などを参考にしつつ作成。

インデント幅その他、比較的タイトがお好き。


[ 4月24日全て ]

2006年4月28日 (金)

第2回 社内 Perl 勉強会 このエントリーを含むはてなブックマーク

リャマ本を使用した社内 Perl 勉強会の2回目を開催。 今回は7人。直前に社長につかまって約20分遅れのスタート (スミマセン)。

進行方法はほぼ前回と同じで、事前に練習問題を解いておき、勉強会では互いにコードレビューをしながら進行役の私がポイントを説明していく形式。

今日は「初めてのPerl 第3版」第3章が範囲で、リストと配列がテーマ。

@ 今回の変更点と反省点

  • 解答のソースコードは全員 perltidy で色付き HTML に変換してプリントアウトして持ってくるようにしてもらった。前回より見易さアップ。
  • 前回は1人1解答につき1枚プリントして持参してもらったが、今回は各自出席者分プリントアウトし持ち寄ってもらうことにした。これによって、それぞれ配られたプログラムをゆっくりレビューできる。書き込みもできるし、持ち帰ることもできるので効果あり。
    • 反省点はプリントの枚数が多くなって混乱したこと(「第2問の○○さんの解答プリントはどれだっけ?」)。次回は、冒頭で全員のものを集めて問題番号ごとに整理してステープラーでまとめるという形にしよう。
  • ソースコードの先頭にコメントとして問題番号と作成者名を入れてもらうようにしたのだが、それだけだと誰のものか区別しにくいとの意見。
    • perltidy のオプションで HTML 化した時にタイトルをいじれればいいのだが、そのような機能はなさそうだ。
    • それこそ誰か、練習として H1 要素を書き換えるスクリプトとか書いてくれないかなぁ。

今のところ、全員ついてこれている様子。 スカラーコンテキストとリストコンテキストは、Perl 初心者にとってとっつきにくい部分の一つだと思うので、これが理解できれば結構いけそうな気もする。

今回はトータル80分ぐらい。7人だと1時間半ぐらい確保しておいた方がいいかもしれないな。

次回はゴールデンウィークを挟んで2週間後。


[ 4月28日全て ]

2006年7月25日 (火)

Perl 用の doxygen のようなツールはないのかな このエントリーを含むはてなブックマーク

WiKickerソースコードを人に説明するのにプリントアウトして説明するのに、doxygen のようなツールが欲しいのだけれど Perl 用のものはないのかな。

  1. ソースコードを色付けした HTML に変換してくれる
  2. Pod とコード本体を混在してドキュメント化してくれる
  3. ソースツリー内のファイルをそれぞれ処理してくれて、インデックスファイルも生成してくれる。
  4. できれば識別子がリンクになってくれる

というのが希望。1 だけなら結構いろいろなツールがあり、1 + 2 なら perltidy で実現できる。 しかし 3、4 までしてくれるツールが見つけられない。

とりあえず perltidyPerl::Tidy と File::Find で再帰的にまとめて HTML に変換するスクリプトだけは書いて、一気に変換だけはできるようにしておいた。

インデックスの作成までは面倒なので未着手。


[ 7月25日全て ]

スポンサード リンク

■よく検索されるキーワード

perl(62) torrent(54) linux(48) 提案書(47) windows(43) 書き方(41) 使い方(29) アジェンダ(26) x31(25) 充電式カイロ(25) cvs(22) インストール(20) サンプル(20) thinkpad(19) アジェンダとは(19) f-01a(18) wiki(17) c#(16) 感想(16) カイロ(16) usb(16) java(16) 秋葉原(15) debian(15) ヨドバシカメラ(15) subversion(15) 壁紙(15) 作り方(15) 静電気(14) apache(14) グッズ(14) デロンギ(13) フリー(13) sh-01a(13) ganttproject(13) 修理(13) ssh(12) svn(12) ヨドバシ(12) truecrypt(12) ダイソー(11) 手帳(11) activeperl(11) ubuntu(11) ほぼ日手帳(11) firefox(10) mew(10) mp980(10) ドラマ(10) 日本語(10) n-01a(10) google(10) tc-1(10) 評判(10) ツール(10) djunit(9) cgi(9) 動画(9) mp3(9) オイルヒーター(9) docomo(9) rcs(9) 除去(9) centos(9) メモリ(9) エネループ(9) 設定(9) p-01a(9) tortoisesvn(9) 無印(8) ケース(8) 口コミ(8) ミノルタ(8) メール(8) インストーラ(8) 会議(8) xampp(8) 加湿器(8) af(7) 値段(7)

この日記のはてなブックマーク数 Add to Google RSS

Process Time: 15.103206s / load averages: 0.19, 0.27, 0.34
nDiki by WATANABE Yoshimasa (profile)
Powered by DiKicker
Base theme by Nana (for tDiary)