Introduction of creating Emacs Lisp Package

Introduction of creating Emacs Lisp Package

97296a20d14bf2a1d6285fbdf33f8279?s=128

Syohei YOSHIDA

April 09, 2015
Tweet

Transcript

  1. パッケージ作成

  2. はじめに • “info elisp” の Packaging の章を読みましょう

  3. チェック項目 • ヘッダ , フッタは適正か • メタ情報は適切か • 必要最低限の環境でどうさするか •

    バイトコンパイル時に警告 , エラーが出ないか
  4. ヘッダ / フッタ • 1 行目は ファイル名 --- 概要 概要は

    M-x list-packages Desription カラムに表示 される • 最終行は ;;; ファイル名 ends here
  5. メタ情報 • 作者 • バージョン • 依存関係 • パッケージコメント

  6. 必要最低限の環境で動作するか • Cask を使おう (el-get でも可 ) – bundler 的なもの

    – 依存関係を記述 • cask exec emacs -Q -l my-package.el としてエラーが出なければ依存関係は適切 ( 特定の関数実行時にロードする場合は除く )
  7. 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"))
  8. バイトコンパイル • 変数名 , 関数名の typo の検知 • lexical-binding が有効だと未使用変数も指摘

    • deprecated, obsoleted な関数 , 変数の指摘 • バイトコンパイル時も cask exec emacs -Q
  9. 名前付け ( 関数 , マクロ , 変数 ) • Emacs

    には名前空間が一つしかない – 安易な名前は容易に衝突する • パッケージ名を各名前のプレフィックスに使う • 名前が長くなるが , 補完を使えば耐えられる – 重複するパッケージがないか事前に確認仕様 • melpa, el-get のレシピ名を確認
  10. •遅延ロード対応 • 必要な関数に autoload cookie をつける ;;;###autoload ← 該当する S

    式の前に追加する
  11. テスト • テストパッケージは標準 • travis-ci 等の CI サービスの利用も難しくない

  12. Enjoy Emacs Lisp Hacking