テキストやプログラムのソースコードについて
を行い読みやすい形式で出力する(プリティプリンティング)機能あるいはツール。 コードリーディングやコードレビューの際に便利である。
ソースコードフォーマッタのことをプリティプリンタと呼ぶこともある。
Perl ソースコードを整形の上 HTML 形式のファイルを生成できる。
付属の ppi2html コマンドで HTML 形式のファイルを生成できる。
この間教材として選定した「初めてのPerl 第3版」を使って第1回目の社内 Perl 勉強会を実施した。
プログラミングのクラスなんて大学(および TA)以来なので、進め方は手探りである。 まずは以下の様にしてみた。
Perl プログラミング、および一般的なプログラミング・開発のスキルアップを目指す。
第1回は私を含めて6人による勉強会となった。
プログラミングを学ぶのはやはり実践が一番であるので、事前に練習問題に取り組むというスタイルにしてみた。勉強会では他人のコードを見たり意見交換したりすることで理解を深め新しい発見ができればと考えている。
皆それぞれの業務を抱えているので、忙がしい人については事前の課題取り組みについては厳しのではとの不安もあったが、初級者・中級者にかかわらず全員準備してきていた。 びっくりするとともに嬉しかった。 参加者は皆それぞれチャレンジ心を持ち、何かを得ようとという熱意があるようで素晴しい限りである。
今回は練習問題も簡単だということもあり、全員解答できたようである。 今回気がついた点:
1時間の予定であったが10分オーバーで70分。 時間的にはこれぐらいか。90分ぐらいあった方がいいのかもしれないけれど、業務とのかねあいもあるし。
そういえば今回は東京オフィスで希望者向けのものだったので特に本社には連絡しなかったんだけれど、1名ここ(nDiki)の記事を見て羨しがっていたらしい。
リモートでの参加までは考えていなかったので今回は準備できなかったけれど、希望があるならなんか方法を考えていきたい。
さて、本格的にプログラミングっぽくなってくる次回からが楽しみである。 目指せ総 Perl プログラマ化。
今日の Perl 勉強会向けに、自分の書いたコードをプリントアウトする。 どうせなら見易くなるように、色付けして出したいな。 でも、Perl のプリティプリンタって何があるのだろう?
調べている時間もあまり無いしどうしようかな。 あ、そういえば昔 emacs-wiki でソースコードを埋めこむ際に何か外部プリティプリンタを呼び出していたっけか。
とうことで emacs-wiki を調べてみる。するとどうも最近の emacs-wiki は htmlize.el を使って直接 HTML テキストを生成してしまっているらしい。*1
*1 昔 emacs-wiki を使っていた頃の自分の設定を見てみると、その頃は perl2html -n -s していたようだ
ということで htmlize.el がロードされている状態で、Perl ソースコードを開いているバッファで以下を実行。
M-x htmlize-buffer
すると新しいバッファに HTML テキストが生成される。 お、お手軽。 行番号も入れたかったのだが、残念ながらその方法は見つからず。
ソースコードに限らずハイライトされているバッファなら、その色付けでマークアップされた HTML テキストを生成できるようだ。
便利。ちょっとした時に使えそうなので覚えておこう。
一昨日は時間がなかったので、Perl プログラムの色付きプリントアウト作成に Emacs の htmlize.el を使用したのだが、残念ながらこれだと Emacs を使っていない人には薦めることができない。
ということで調べたところどうやら perltidy が定番の様子。 Perl Best Practices でも紹介されているらしい。
ソースコードをハイライトして行番号付きの HTML テキストを生成する場合は
perltidy -html -nnn --nohtml-entities source.pl
とする。
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 を作成せねば。
Naney (なにい)です。株式会社ミクシィで SNS 事業の部長をしています。
nDiki は1999年1月に始めたコンピュータ日誌を前身とする Naney の Web 日記(兼パーソナルナレッジベース)です。ちょっとしたノートは nNote にあります。
※内容は個人的見解であり所属組織とは関係ありません。