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);