development versionのphp-completion.elをコミットしました。
http://coderepos.org/share/browser/lang/elisp/php-completion/trunk/php-completion.el
ver 0.01です。一応動くと思いますが、開発途中のバージョンなので、人柱になっても問題ない人向けです。
できる事は、anything.elを使った関数名、定数、iniディレクティブ等の補完です。
アクション(候補選択してTAB)でphp.netのあいまい検索に投げる事も可能です。デフォルトの動作だと、ブラウサで開きます。カスタマイズするばあいは phpcmp-browse-function に関数を設定してください。引数にURLが渡されてcallされます。
クエリを投げる先は phpcmp-manual-url-format で変える事が可能です。PHPのサイトは、rsyncでミラーリングできるみたいなので、http://jp.php.net/mirroring.php を参考にしてローカルで動かすと、速くてよいと思います。というか、負荷かけないので推奨だと思います。
インストール
- php-completion.elをロードパスの通った場所に置く。
- anything.elに依存しているので、入っていなかったら、インストールする。
- auto-complete.elと連携させたい人は、auto-complete.elもインストールする。
ダウンロード -> バイトコンパイルは、id:rubikitchさん作の install-elisp.el を使うと楽です。
使い方は、id:tomoyaさんの記事が詳しいです。Emacs ビギナーに贈る、これからバリバリ使い隊!!人のための設定講座 その1。 - 日々、とんは語る。
(install-elisp "http://svn.coderepos.org/share/lang/elisp/php-completion/trunk/php-completion.el") (install-elisp-from-emacswiki "anything.el") (install-elisp-from-emacswiki "auto-complete.el")
設定
マイナーモードとして動きます。php-mode-hook等で設定するのがよいと思います。
キーバインドは設定しないので、自分で割り当ててください。以下の例だと、C-o に補完のコマンドを割り当てています。
設定例:
(add-hook 'php-mode-hook (lambda () (require 'php-completion) (php-completion-mode t) (define-key php-mode-map (kbd "C-o") 'phpcmp-complete)))
auto-complete.elとの連携は、ac-source-php-completion を ac-sources に追加します。
部分マッチバージョンの ac-source-php-completion-patial もあります。候補の並び順は、anything-match-pluginの用に、先頭一致 -> 部分一致 となっているので、こっちを使う事をお勧めします。
設定例:
(add-hook 'php-mode-hook (lambda () (when (require 'auto-complete nil t) (make-variable-buffer-local 'ac-sources) (add-to-list 'ac-sources 'ac-source-php-completion) ;; 部分マッチは ac-source-php-completion-patial を使う(お勧め!!) ;; (add-to-list 'ac-sources 'ac-source-php-completion-patial) (auto-complete-mode t))))