次の方法で共有


Visual Studio 拡張機能でのファイルとドキュメントの操作

ここでは、ファイルとドキュメントを操作するさまざまな方法に関して、小さなコード サンプルを集めています。

アクティブなテキスト ビューを取得する

現在アクティブなテキスト ビューを取得して、そのテキスト バッファー テキストを操作します。

DocumentView docView = await VS.Documents.GetActiveDocumentViewAsync();
if (docView?.TextView == null) return; //not a text window
SnapshotPoint position = docView.TextView.Caret.Position.BufferPosition;
docView.TextBuffer?.Insert(position, "some text"); // Inserts text at the caret

ファイル アイコンの関連付け

ソリューション エクスプローラーでアイコンをファイル拡張子に関連付けるには、パッケージ クラスに [ProvideFileIcon()] 属性を追加します。

[ProvideFileIcon(".abc", "KnownMonikers.Reference")]
public sealed class MyPackage : ToolkitPackage
{
    ...
}

KnownMonikers Explorer ツール ウィンドウを使用すると、KnownMonikers コレクション内の使用可能なアイコンが数千個表示されます。 これは、メイン メニューの [表示] > [その他のウィンドウ] にあります。

ファイルを開く

Microsoft.VisualStudio.Shell.VsShellUtilities ヘルパー クラスを使用します。

string fileName = "c:\\file.txt";
await VS.Document.OpenAsync(fileName);

プロジェクトを使ってファイルを開く

開いたファイルがソリューションの一部である場合は、このメソッドを使います。

string fileName = "c:\\file.txt";
await VS.Documents.OpenViaProjectAsync(fileName);

[プレビュー] タブでファイルを開く

プレビュー タブ (仮タブとも呼ばれます) は、ドキュメント ウェルの右側に表示される一時的なタブです。 次のように、[プレビュー] タブで任意のファイルを開きます。

string fileName = "c:\\file.txt";
await VS.Documents.OpenInPreviewTabAsync(fileName);

ITextBuffer からファイル名を取得する

Microsoft.VisualStudio.Text 名前空間にある拡張メソッド buffer.GetFileName() を使います。

string fileName = buffer.GetFileName();

ファイルから SolutionItem

絶対ファイル パスから SolutionItem を見つけます。

string fileName = "c:\\file.txt";
PhysicalFile item = await PhysicalFile.FromFileAsync(fileName);