拡張

2017-07-06 20 views
0

私は、Visual Studio上でspecflowを使用して一連のテストを持って、それらのいくつかは手順を持っているように見えること:拡張

Given the data in file /foo/bar/data.txt 

私がクリックできるように、Visual Studioの拡張機能を実装したいと思います/foo/bar/data.txtに移動し、ファイルを開きます。

私はVisual Studioのテキストの装飾のようなものを使用するという曖昧な考えがありましたが、より単純な方法があるかどうかはわかりません。さらに、私はVisual Studio 2013以上で動作するソリューションを探しています。私が知る限り、アドーンは古いバージョンではサポートされていません。何か案は?

答えて

0

1つの可能な解決策は、Visual Studioアドインでこのように行をクリックしてこのメ​​ニューオプションを選択すると、行を読み込んで解析してファイル)。これは以下のように行うことができます。

ファイル - >新規プロジェクト - >その他タイプ - >拡張は - > Visual Studioのアドインで、ちょうど読み、Execの方法に続いてIDTCommandTarget

Commands2 commands = (Commands2)_applicationObject.Commands; 
object[] contextGUIDS = new object[] { }; 
CommandBars cmdBars = (CommandBars)(_applicationObject.CommandBars); 
CommandBar vsBarProject = cmdBars["Code Window"]; 

scenarioCommand = commands.AddNamedCommand2(_addInInstance, "OpenScenario", "Open scenario", "Open scenario data", true); 
scenarioCommand.AddControl(vsBarProject); 

を実装しますライン、ファイルパスを取得し、そして:

Process.Start(resource) 

そして、QueryStatusメソッドでspecFlowファイルであれば、もちろん、単にメニューオプションを示しています。

dynamic docName = _applicationObject.ActiveDocument.FullName; 
if (CmdName == OpenScenarioCmd && !((string)docName).EndsWith(".feature")) 
{ 
    StatusOption = (vsCommandStatus)vsCommandStatus.vsCommandStatusInvisible; 
} 
else if (CmdName == OpenScenarioCmd) 
{ 
    StatusOption = (vsCommandStatus)vsCommandStatus.vsCommandStatusSupported | vsCommandStatus.vsCommandStatusEnabled; 
} 

メニューを表示する必要があるので完璧ではありませんが、機能します。

0

ファイルパスの先頭にfile://を付けると、クリック可能なリンクになります。 URLの場合と同様に、スペースを「%20」に置き換えてください。

Sample screenshot

私はそれはあなたが求めている質問への答えではありません知っているが、多分あなたは拡張を実装する必要はありませんか?

+0

はい、これはうまくいくはずですが、これらのファイルのバージョンが変更されているため、ファイルが相対パスで参照される方法を変更することはできません。私は解決策を見つけた、私は自分自身に答える – danijepg