Closed6
Perl Navigator の設定方法 - (Vim or VS Code) + (Carton or Carmel)
vim-lsp + vim-lsp-settings + Carmel + direnvの場合
.vimrc
let g:lsp_settings_filetype_perl = ['perlnavigator']
# .envrcに環境変数流し込み
$ carmel export | cat >> .envrc
vim-lsp + vim-lsp-settings + Carmel + dotnevの場合
.vimrc
let g:lsp_settings_filetype_perl = ['perlnavigator']
# carmel export の出力をdotenv用に調整して、.envに書き込み
carmel export | perl -anE 'say "export $F[1]"; say "export $F[2]"; say "export $F[3]"' | cat >> .env
※carmel exportのオプションでdotenvで使いやすいようにするオプションを入れてもらう?
※dotenvを普段使ってないので、もっと賢い方法ありそう?
vim-lsp + vim-lsp-settings + Carton + (direnv or dotenv) の場合
.vimrc
let g:lsp_settings_filetype_perl = ['perlnavigator']
# .envrc あるいは .env に次をいれる。サンプルは.envrcの想定で記載
$ carton exec -- perl -e 'print "export PERL5LIB=$ENV{PERL5LIB}\n"' | cat >> .envrc
$ carton exec -- perl -e 'print "export PATH=$ENV{PATH}\n"' | cat >> .envrc
- 参考情報
- CartonがPERL5LIB, PATHを吐き出しているのはココ
https://github.com/perl-carton/carton/blob/ce169636657e6e2f42f6fc7a8c02ae3d34281922/lib/Carton/CLI.pm#L392-L395
- CartonがPERL5LIB, PATHを吐き出しているのはココ
Vscode + (Carton or Carmel) + (direnv or dotenv) の場合
- settings.jsonに、次の通りincludePathsにlibを追加する
-
$workspaceFolder
をprefixに追加することで、マルチワークスペースに対応できる。
-
settings.json
"perlnavigator.includePaths": [
"$workspaceFolder/lib"
]
- .envrc, .env には、上記と同様に設定すれば良い
- 備忘: PerlNavigatorのドキュメントだと、
$workspaceRoot
のままなので修正PRすると良さそう
惜しかった集
perlnavigator.perlPath='carmel exec -- perl'
のようにした場合
- syntax checkerは、↑を使って動くので問題なし
- コードジャンプは、↑を使って動かないのでコードジャンプしない
VSCode + Carton + direnv/dotenvを使わない場合
- まず、includePathsに、環境に応じたパスも通す
-
$workspaceFolder/local/lib/perl5/ARCHNAME
のARCHNAMEは、perl -MConfig -e 'print $Config{archname}'
で取得すれば良い
-
settings.json
"perlnavigator.includePaths": [
"$workspaceFolder/lib",
"$workspaceFolder/local/lib/perl5",
"$workspaceFolder/local/lib/perl5/darwin-thread-multi-2level"
]
このスクラップは2022/12/28にクローズされました