xdebugによって出力されたリンクをクリックして、textmateのように問題のあるファイルを開くことができるようにしようとしていますが、WindowsXPのST2でこれを実行しようとしています。
SublimeProtocolプラグインを使用してこのタスクを実行しようとしましたが、ファイルを開くために必要なリンクの形式は次のとおりです。
sblm:///C/Users/name/AppData/Roaming/Sublime%20Text%202/Packages/
xdebug.file_link_formatは次のとおりです。
xdebug.file_link_format="sblm://%f?%l"
このタイプのリンクを出力します。sblm://C:\wamp\www\busadv\parse3.php?10
そのため、ST2のコンソールは、ファイルを開くことができないことを示しています。
次に、SOの質問「カスタムプロトコルの作成」に基づいてカスタムプロトコルを作成して みました。これは、私が達成しようとしていたことと一致しているように思われたためです。次のようにregファイルを作成しました。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\sblm]
@="\"URL:sblm Protocol\""
"EditFlags"=hex:02,00,00,00
"URL Protocol"=""
[HKEY_CLASSES_ROOT\sblm\DefaultIcon]
@="\"C:\\Program Files\\Sublime Text 2\\sublime_text.exe\",0"
[HKEY_CLASSES_ROOT\sblm\shell]
[HKEY_CLASSES_ROOT\sblm\shell\open]
[HKEY_CLASSES_ROOT\sblm\shell\open\command]
@="\"C:\\Program Files\\Sublime Text 2\\sublime_text.exe\" -c \"%1\""
問題は、xdebugによって出力されたリンクをクリックすると、ST2でファイルが開かれるのは、ブラウザのディレクトリから発信されたファイルであり、xdebugがそのファイルを示している場所ではないということです。%1を%2に置き換えてみたので、ファイルはC:\の前にパーツを切り刻みましたが、その置き換えが使用されたときにファイルが開かれることはありません。では、これが機能するために必要な他のパラメーターは何ですか?
アップデート:
以下を含むバッチファイルを追加しました。
@echo off
setlocal enableextensions enabledelayedexpansion
set SUBLIME=%1
set FILE=%~2
%SUBLIME% --open "%FILE:~19%"
そして、レジストリを変更して、WindowsとNetBeansで提案されている.batを次のように含めました。
Windows Registry Editor Version 5.00
[HKEY_CLASSES_ROOT\sblm]
@="URL:sblm Protocol Handler"
"URL Protocol"=""
[HKEY_CLASSES_ROOT\Sublime Text\DefaultIcon]
@="\"C:\\Program Files\\Sublime Text 2\\sublime_text.exe,1\""
[HKEY_CLASSES_ROOT\sblm\shell]
[HKEY_CLASSES_ROOT\sblm\shell\open]
[HKEY_CLASSES_ROOT\sblm\shell\open\command]
@="\"C:\\Windows\\sublime.bat\" \"C:\\Program Files\\Sublime Text 2\\sublime_text.exe\" \%1\""
また、xdebug.file_link_formatをに変更しました
xdebug.file_link_format="sblm://open/?f=%f:%l"
ST2はまだファイルを開きますが、それはブラウザディレクトリからのものであり、リンクはほとんど含まれていますが、C:\wは除外されています。
たとえば、xdebug link sblm:// open /?f = C:\ wamp \ www \ busadv \ parse3.php:10
ST2で開かれるファイルはC:\ Program Files \ SRWare Iron \ amp \ www \ busadv \ parse3.php