我在通过 Homestead 获取 Laravel 6 Ignition 的编辑链接以与 Windows 上的 Sublime Text 3 配合使用时遇到问题(不过我也从未在 Whoops 中使用过此功能)。
--
我通过ST3包控制安装了subl协议。
如果我在浏览器的地址栏中输入以下链接并按 Enter 键,则以下链接会在 Sublime 中成功打开正确的文件(也确认它与我使用锚链接创建的 test.htm 页面一起工作):
subl://C:/Sites/laravel/server.php:11
subl://open?url=file://c%3A%2FSites%2Flaravel%2Fapp%2FHttp%2FControllers%2FAccountController.php&line=396
.
IGNITION_EDITOR=sublime
IGNITION_REMOTE_SITES_PATH=/home/vagrant/code/laravel
IGNITION_LOCAL_SITES_PATH=c:/Sites/laravel
--
所以我想知道我是否应该:A)以某种方式让 Ignition 生成“subl://C:/Sites/laravel/file.php:123”格式的链接,我知道该格式与 subl 协议包一起使用已安装,或者 B) 让我的 subl 协议包与 Ignition 生成的“subl://open?url=file://etc%2Ffile.php&line=123”格式一起使用。
更新(2022 年 1 月):我不确定我提到的方法是否存在于两年前,但现在您不必直接编辑供应商文件。
PrettyPageHandler
中的Whoops\Handler
有两个方便的方法:
您可以使用
#setEditor( ... )
定义回调并在那里定义所需的字符串,或者使用 #addEditor( ... )
覆盖 SublimeText 的字符串模式:
# either ...
$run->setEditor(function ($file, $line) {
return sprintf(
'subl://%s:%d',
$file,
$line
);
});
# ... or
$run->addEditor(
'sublime',
'subl://%file:%line'
);
编辑 Laravel Ignition IgnitionConfig.php 位于
"vendor\spatie\ignition\src\Config\IgnitionConfig.php"
(第 153 行).
Subl 协议 URL
'sublime' => [
'label' => 'Sublime',
'url' => 'subl://%path:%line',
],
%path
是文件路径变量。
%line
是线变量。
在 Laravel 9 上测试。
对于那些在使用 WSL 和 Docker 的远程容器中使用 VS Code 的人。
抱歉,如果这不能准确回答OP的问题,但我发现这个答案试图解决我的问题。
尝试将您的
.env
文件更新为
# You can also set this in the GUI
IGNITION_EDITOR=vscode-remote
# Path inside your docker container to your application root
IGNITION_REMOTE_SITES_PATH=/var/www/html
# use "wsl={distro}/{application_root_in_wsl}
IGNITION_LOCAL_SITES_PATH=wsl+Ubuntu/home/angus/projects/laravel/
在 Laravel 10.x 中测试并工作。
我希望这对某人有帮助:)