まとめ
- coc.nvim インストール済みならば、 marlonfan/coc-phpls: ? php language server for coc.nvim をインストールするだけで良い。
- coc-settings.json を編集する必要はない。
- 確認方法。 PHP ファイルを開いた状態で、
:CocList extensions
を実行し、結果に "* coc-phpls" と表示されれば使用可能状態。
coc.nvim エクステンションについて知ったこと
操作方法
を見ると、 coc.nvim エクステンションの操作方法がわかります。
- インストール:
:CocInstall coc-json coc-phpls
- 確認:
:CocList extensions
- アップデート: 毎日自動的に更新する。または
:CocUpdate
か:CocUpdateSync
。後者だと全画面で結果を確認できた。 - 削除:
:CocUninstall coc-json coc-phpls
。 - 補足: Vim プラグインマネージャー (vim-plug など) で coc.nvim エクステンションをインストールした場合、削除とアップデートはできない。
インストールされる場所とその場所から内容を探る
Install coc.nvim Automation script · neoclide/coc.nvim Wiki を見て、 coc.nvim エクステンションのインストールされる場所に気がつきました。
~/.config/coc/extensions
のようです。
見てみると次のようになっていました。
$ ll
total 184
drwxr-xr-x 3 oki2a24 staff 96 5 31 08:22 coc-phpls-data/
-rw-r--r-- 1 oki2a24 staff 33 6 1 08:37 db.json
drwxr-xr-x 210 oki2a24 staff 6720 6 1 08:57 node_modules/
-rw-r--r-- 1 oki2a24 staff 81 6 1 08:57 package.json
-rw-r--r-- 1 oki2a24 staff 9470 5 31 08:07 yarn-error.log
-rw-r--r-- 1 oki2a24 staff 71831 6 1 08:57 yarn.lock
$
package.json の内容を確認してみると、 :CocInstall で追加したエクステンションが確かに記述されています。
$ cat package.json
{
"dependencies": {
"coc-json": "^1.0.17",
"coc-phpls": "^2.0.6"
}
}
$
yarn list | less
して、各エクステンションの依存を見てみると、 coc-phpls をインストールすることによって、 PHP の LSP サーバである Intelephense も同時にインストールされていることがわかりました。
このことが確認できたので、今まで実は coc-extention.json に Intelephense を使う設定を書いていたのですけれども、安心してその記述を削除することができました♪
├─ coc-json@1.0.17
│ ├─ find-up@^3.0.0
│ ├─ request-light@^0.2.4
│ ├─ tslib@^1.9.3
│ ├─ vscode-json-languageservice@^3.3.0-next.7
│ ├─ vscode-languageserver@^5.3.0-next.6
│ └─ vscode-uri@^1.0.6
├─ coc-phpls@2.0.6
│ ├─ fs-extra@^7.0.1
│ ├─ glob@^7.1.3
│ ├─ intelephense@^1.0.14
│ ├─ tslib@^1.9.3
│ ├─ vscode-languageclient@^5.2.1
│ ├─ vscode-languageserver-protocol@^3.14.1
│ └─ vscode@^1.1.33
coc-phpls をインストールして使ってみた
coc.nvim をインストールしただけの場合でも補完が効くようになります。補完候補の右側に "[A]" 、 "[B]" 、 "[F]" と表示され、これが coc.nvim による補完とのことです。
coc-phpls をインストール後、 .php ファイルを書いてみると、補完が変わりました! [LS] という表示が追加されています。これが、 PHP の LSP サーバの Intelephense によるものでしょう。
おわりに
PHP の LSP サーバを使えるようにするために、もっと手順が必要かと思っていたのですが、 coc.nvim のエクステンションをインストールするだけでした。
とても簡単♪
coc.nvim のエクステンションを使っても利用できない LSP の場合に、 coc-settings.json を使えば良いようです。
以上です。