1

各ノードが C# クラスに対応する DGML API を介してカスタム ワークフロー図を生成しています。組み込みの「定義へ移動」機能を使用できるようにしたいのですが、ドキュメントが不足しています。

4

3 に答える 3

1

クラスのファイル名とシンボル定義の位置がわかっている場合は、VsShellUtilitiesクラスを使用してドキュメントを開き、コード アーティファクトをビューにスクロールできます (キャレット位置を設定することにより)。私の拡張機能の1つで、私はこのようなことをしています...

ファイル名とテキスト範囲を保存するために使用するタイプがある場合SourceInfo...

void GotoDefinition(
    IServiceProvider serviceProvider, 
    SourceInfo source)
{
    IVsUIHierarchy hierarchy;
    uint itemId;
    IVsWindowFrame windowFrame;
    IVsTextView view;

    VsShellUtilities.OpenDocument(
        serviceProvider,
        source.Filename,
        Guid.Empty,
        out hierarchy,
        out itemId,
        out windowFrame,
        out view);

    if (view != null)
    {
        int line, column;
        int pos = source.TextRange.Start;
        if (view.GetLineAndColumn(pos, out line, out column) == VSConstants.S_OK)
        {
            view.SetCaretPos(line, column);
            view.CenterLines(line, 1);
        }
    }
}

class SourceInfo
{
    public string Filename { get; set; }

    public TextRange TextRange { get; set; }
}
于 2015-02-13T15:12:27.070 に答える