Laravel Ignition“编辑”链接在 subl:// 链接中包含额外的“open?url=file://”

问题描述 投票:0回答:3

我在通过 Homestead 获取 Laravel 6 Ignition 的编辑链接以与 Windows 上的 Sublime Text 3 配合使用时遇到问题(不过我也从未在 Whoops 中使用过此功能)。

--

  1. 我通过ST3包控制安装了subl协议

  2. 如果我在浏览器的地址栏中输入以下链接并按 Enter 键,则以下链接会在 Sublime 中成功打开正确的文件(也确认它与我使用锚链接创建的 test.htm 页面一起工作):

subl://C:/Sites/laravel/server.php:11

  1. Ignition 当前生成的编辑链接如下所示:

subl://open?url=file://c%3A%2FSites%2Flaravel%2Fapp%2FHttp%2FControllers%2FAccountController.php&line=396

  1. 我的 .env 包括这些:

.

IGNITION_EDITOR=sublime 
IGNITION_REMOTE_SITES_PATH=/home/vagrant/code/laravel
IGNITION_LOCAL_SITES_PATH=c:/Sites/laravel
  1. 我的 config/ignition.php 文件没有更改,尽管我也尝试将上面相同的值放入该文件中各自的空值中。没有变化。

--

所以我想知道我是否应该:A)以某种方式让 Ignition 生成“subl://C:/Sites/laravel/file.php:123”格式的链接,我知道该格式与 subl 协议包一起使用已安装,或者 B) 让我的 subl 协议包与 Ignition 生成的“subl://open?url=file://etc%2Ffile.php&line=123”格式一起使用。

laravel homestead laravel-6
3个回答
1
投票

更新(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'
);

0
投票

编辑 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 上测试


0
投票

对于那些在使用 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 中测试并工作。

我希望这对某人有帮助:)

© www.soinside.com 2019 - 2024. All rights reserved.