puppet リファレンスを emacs でひく
最近年をとったせいか、細かいことはすぐに忘れてしまうようになりました。
そんなわけで、puppet の manifest を書いていてよく遭遇する、「このリソースで使えるパラメータって何だっけ」と思う瞬間をemacs にサポートさせることにしました。
puppetlabs から puppet-mode がリリースされているので、それに付け加えるような形にしています。
https://github.com/lurdan/puppet-syntax-emacs
ロードパスの通ったところに github から clone してください。ちょっと準備が必要なので、まずは WWW::Mechanize と Web::Scraper を使える perl を用意して、次のコマンドを実行してください。
$ mkdir ~/.emacs.d/tmp $ ./puppet-doc-indexer.pl > ~/.emacs.d/tmp/puppet-doc-index.el
これによって、キーワードとその URL の対応データが作成されます。
次に .emacs ですが、私の設定は、ほぼ下記のような感じです。使うだけなら require してM-x puppet-doc でもいいのですが、w3m と popwin も組合せた方が便利かと思います。
(require 'puppet-mode) (require 'puppet-flymake) (require 'puppet-doc) ;; Ctrl + F1 でドキュメントを表示 (add-hook 'puppet-mode-hook '(lambda () (define-key puppet-mode-map (kbd "<C-f1>") 'puppet-doc) )) ;; ドキュメントの表示は popwin-w3m で行う (require 'popwin-w3m) (defadvice puppet-doc (around puppet-doc-popwin-w3m activate) (let ((browse-url-browser-function 'popwin:w3m-browse-url)) ad-do-it)) (push '("^http://docs.puppetlabs.com/references/latest/.*$" :height 0.4) popwin:w3m-special-display-config)
手前味噌ですが、以前書いた flymake 用の設定とこれを組み合わせることで、かなり気持ちよくpuppet manifest を書いてくことができます。emacs で puppet 書いてる人が世の中にどれくらいいるというのか……という思いもありますが、該当する方は一度お試しください。
いつになるかはわかりませんが、puppet doc -rdoc コマンドで作成した in-house resource の参照もできるようにしたいと思います。便利に読めるようになれば、ドキュメントを書くモチベーションにつながる、はず……多分……きっと……。