4

我已经搜索了很多有关 IntelliJ IDEA 12 和xdebug.file_link_format配置值的时间。

我没有发现任何有用的东西......

  • 使用“idea”、“intellij”、“txmt”等协议或其他协议不起作用。
  • 我没有发现任何关于注册 IntelliJ 协议的插件......

是否可以将 xdebug 文件链接与 IntelliJ IDEA 或 PhpStorm 一起使用?

4

5 回答 5

8

是和否。

——没有适当的内置支持。观看此票以获取详细信息:http: //youtrack.jetbrains.com/issue/IDEA-65879

的——您可能会找到一些解决方法,至少上述票证有 Mac OS(使用 AppleScript)或通过远程呼叫等的配方。


更新:从PhpStorm 8开始,您可以使用:

xdebug.file_link_format = "phpstorm://open?file=%f&line=%l" 
于 2013-08-28T09:06:33.833 回答
1

不是开箱即用的,但可以使链接正常工作。我可以在 Windows 7、Firefox 和 PhpStorm 10 上使用它——在本例中,我使用的是协议phpstorm://,但无论名称如何,它都可以使用。

// note: edit the path, with backslashes escaped

var editor = '"c:\\Program Files (x86)\\JetBrains\\PhpStorm 143.434\\bin\\PhpStorm.exe" nosplash --line %line% "%file%"';

var url = WScript.Arguments(0);

var match = /^phpstorm:\/\/open\/\?file=(.+)&line=(\d+)$/.exec(url);

if (match) {

var file = decodeURIComponent(match[1]).replace(/\+/g, ' ');

var command = editor.replace(/%line%/g, match[2]).replace(/%file%/g, file);

var shell = new ActiveXObject("WScript.Shell");

shell.Exec(command.replace(/\\/g, '\\\\'));

}

  • 在注册表中创建协议:创建以下内容editor.reg并导入注册表。请注意,您再次需要双重转义上述文件的路径,并将其设置为保存您的路径:

REGEDIT4

[HKEY_CLASSES_ROOT\phpstorm]

@="URL:phpstorm Protocol"

"URL Protocol"=""

[HKEY_CLASSES_ROOT\phpstorm\shell\open\command]

@="wscript \"C:\\path\\to\\run-editor.js\" \"%1\""

  • 在 Firefox 中启用协议:在 中about:config,创建一个名为“逻辑值”并将 network.protocol-handler.expose.phpstorm其设置为false

  • 在 Firefox 中打开一个这样的链接,例如phpstorm://open?file=somefile.html&line=123- 它应该在 PhpStorm 中打开。

于 2015-10-30T11:25:40.267 回答
1

根据@gapple 的评论,这将使 Xdebug 链接到 PhpStorm 中的文件/链接:

xdebug.file_link_format = "phpstorm://open?file=%f&line=%l"

我在 Mac 上的 PhpStorm 10 中对此进行了测试,效果很好。

于 2015-12-16T22:56:04.960 回答
0

您需要将以下行添加到php.ini文件中[xdebug]

xdebug.file_link_format = "phpstorm://open?file=%f&line=%l"

然后重新启动您的 Web 服务器(Mac 上的 Apache for me)

于 2020-10-15T15:05:38.040 回答
0

REST API 现在可能是最好的选择:

http://localhost:63342/api/file%f:%l

包装在 javascript 协议和 AJAX 请求中允许保存权限批准,因此您不必每次单击时都批准:

javascript: var r = new XMLHttpRequest; r.open('get', 'http://localhost:63342/api/file%f:%l');r.send()

API 规格: https ://www.develar.org/idea-rest-api/

于 2020-11-17T20:53:45.073 回答