使用 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 资源管理器工具窗口查看集合中的 KnownMonikers
数千个可用图标。 在主菜单中的“查看>其他 Windows”下找到它。
打开文件
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);