TL;DR
- 課金が必要
- 古い場合はアップグレードが必要
- NTEmacsだと若干調子悪い
intelephense is 何
- PHPのLanguage Server実装
- Language ServerについてはLanguage Server Protocolなどで調べると良いと思います
- 一言で言うと、エディタの機能を抽象化した感じのやつ
- npmでインストールできる
npm install --global intelephense
詳細
課金する
- 公式
- 2019/09/15現在、下記機能の利用には課金が必要
- Rename
- Code folding
- Find all implementations
- Go to declaration
- Go to type definition
- 課金せずに上記機能を利用しようとすると、下記のようなメッセージが出る
lsp-rename: Capability not supported by the language server: "renameProvider"
- リネームにすら金とるのか!?と思いつつ課金する
- PayPal利用可能
- 2019年時点で、1000円で永久に複数端末で利用可能
- 通常の社会人なら悩んでる時間の時給分のほうが無駄でしょう
ライセンス認証する
- メールでライセンスキー文字列が届く
- 使い方は公式FAQ
- いくつかの有効化方法が提示されている
workspace/configuration
capabilityを使う方法
- Language Server起動オプションに渡す方法
- ホームディレクトリに
licence.txt
を置く方法
- 1つめ、2つめは下記理由につき避けた
- init.el上での設定が面倒
- emacs.d/をgit管理においているため、そもそもinit.elにライセンスキーを載せたくない
- 3つめの方法をとった
- windows
%USERPROFILE%/intelephense/licence.txt
- linux
~/intelephense/licence.txt
intelephenseをアップグレードする
- これに気づかず若干ハマった
- 1.1系だとまだrename機能が載っていなかったっぽい?
npm upgrade --global intelephense
/usr/local/bin/intelephense -> /usr/local/lib/node_modules/intelephense/lib/intelephense.js
- js-beautify@1.10.0 node_modules/intelephense/node_modules/js-beautify
- minimist@0.0.8 node_modules/intelephense/node_modules/mkdirp/node_modules/minimist
- vscode-uri@1.0.8 node_modules/intelephense/node_modules/vscode-languageserver/node_modules/vscode-uri
/usr/local/lib
└── intelephense@1.2.3
LSP Serverを再起動する
M-x lsp-server-restart
- ライセンス認証が通ると、
~/intelephense/intelephense_licence_key_<ライセンスキー>
ファイルが生成される
- rename機能等が使える
使ってみて