IntelliJ和xDebug - xdebug.file_link_format

时间:2013-08-28 08:22:53

标签: intellij-idea xdebug phpstorm

我搜索了很多关于IntelliJ IDEA 12和xdebug.file_link_format配置值的信息。

我发现什么都行不通......

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

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

5 个答案:

答案 0 :(得分:8)

是和否。

- 对此没有正确的内置支持。观看此票证了解详情:http://youtrack.jetbrains.com/issue/IDEA-65879

- 您可能会找到一些解决方法,至少前面提到的故障单有Mac OS配方(使用AppleScript)或远程呼叫等。


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

phpstorm://open?file=%f&line=%l

答案 1 :(得分: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并导入到Registry。请注意,您再次需要双向转义上述文件的路径,并将其设置为保存您的文件:

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中打开。

答案 2 :(得分:1)

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

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

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

答案 3 :(得分:0)

您需要在php.ini部分的[xdebug]文件中添加以下行:

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

然后重新启动您的Web服务器(在Mac上为我的Apache)

答案 4 :(得分: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/