パッケージ作成
View Slide
はじめに●“info elisp” の Packaging の章を読みましょう
チェック項目● ヘッダ , フッタは適正か● メタ情報は適切か● 必要最低限の環境でどうさするか● バイトコンパイル時に警告 , エラーが出ないか
ヘッダ / フッタ●1 行目はファイル名 --- 概要概要は M-x list-packages Desription カラムに表示される● 最終行は;;; ファイル名 ends here
メタ情報● 作者● バージョン● 依存関係● パッケージコメント
必要最低限の環境で動作するか●Cask を使おう (el-get でも可 )– bundler 的なもの– 依存関係を記述●cask exec emacs -Q -l my-package.elとしてエラーが出なければ依存関係は適切( 特定の関数実行時にロードする場合は除く )
Cask ファイル例;; repository(source gnu)(source melpa);; read dependencies from helm-ag.el(package-file "helm-ag.el")(development(depends-on "ert")(depends-on "helm-projectile"))
バイトコンパイル● 変数名 , 関数名の typo の検知●lexical-binding が有効だと未使用変数も指摘●deprecated, obsoleted な関数 , 変数の指摘● バイトコンパイル時も cask exec emacs -Q
名前付け ( 関数 , マクロ , 変数 )●Emacs には名前空間が一つしかない– 安易な名前は容易に衝突する● パッケージ名を各名前のプレフィックスに使う● 名前が長くなるが , 補完を使えば耐えられる– 重複するパッケージがないか事前に確認仕様●melpa, el-get のレシピ名を確認
●遅延ロード対応● 必要な関数に autoload cookie をつける;;;###autoload ← 該当する S 式の前に追加する
テスト● テストパッケージは標準●travis-ci 等の CI サービスの利用も難しくない
Enjoy Emacs Lisp Hacking