php-language-server の挙動を検証する必要が出てきたので、環境を構築する。
Debian 最小構成に、 vim と vim-lsp, php-language-server 環境を載せていく。
環境
- OS: Debian buster(debian:buster-slim の docker イメージ)
必要なパッケージをインストール
php-language-server インストール
~/project/php-language-server
にインストールする場合、 以下のコマンドで実行可能な環境を構築できる。
mkdir -p ~/project
cd ~/project
# php-language-server をクローン
git clone -b v5.4.6 https://github.com/felixfbecker/php-language-server.git
# composer で php-language-server をセットアップ
cd php-language-server
composer require felixfbecker/language-server
composer update
composer run-script parse-stubs
php-language-server 動作確認
下記コマンドを実行。
以下のように出力されれば OK.
Ctrl-C
で終了する。
vim-lsp のインストール
- Vim のパッケージ機能を使ってプラグインの管理を行う
- vim-lsp と async.vim を配置する
- vim-lsp は使うときだけ有効にしたいので、 opt ディレクトリに入れる
~/.vim/pack/lsp/opt
にインストールする場合、 以下のコマンドで実行可能な環境を構築できる。
mkdir -p ~/.vim/pack/lsp/opt
cd ~/.vim/pack/lsp/opt
git clone https://github.com/prabirshrestha/vim-lsp.git
git clone https://github.com/prabirshrestha/async.vim.git
php-language-server を使うための設定
~/.vimrc
に以下を記述。
syntax on
filetype plugin indent on
""" for php development
command! Phpd call StartPhpDevelopment()
function! StartPhpDevelopment()
packadd async.vim
packadd vim-lsp
let g:lsp_log_verbose = 1
let g:lsp_log_file = expand('~/vim-lsp.log')
autocmd User lsp_setup call lsp#register_server({
\ 'name': 'php-language-server',
\ 'cmd': {server_info->[
\ 'php', expand('~/project/php-language-server/bin/php-language-server.php')
\ ]},
\ 'whitelist': ['php'],
\ })
call lsp#enable()
autocmd FileType php setlocal omnifunc=lsp#complete
endfunction
動作確認
vim を開いて :Phpd
-> :e test.php
として、php を書いていくとオムニ補完に php-language-server が使われる。
以上。
0 件のコメント:
コメントを投稿