Tan*_*agi 2 c# extensibility visual-studio vsix visual-studio-extensions
我正在开发一个 VSIX 项目,我想获取正在 VS IDE(或实验窗口)中编辑的当前文件名和路径(相对于该项目)?我怎样才能做到这一点?
我尝试了以下代码:
var currentDocInfo = this._textDocumentFactoryService.TryGetTextDocument(this.view.TextBuffer, out this.TextDocument);
if (currentDocInfo)
{
string test = this.TextDocument.FilePath;
MessageBox.Show(test);
}
else
{
//MessageBox.Show("Nothingg!");
}
Run Code Online (Sandbox Code Playgroud)
此代码返回当前打开文件的绝对路径。我需要获取相对于当前项目/解决方案的路径。如果我能够获得解决方案的名称,我将找到该项目的相对路径。
如果我添加代码:System.IO.Path.GetDirectoryName(dte.Solution.FullName);
它将返回我的 TextAdornment 类(一个类,通过安装整个插件来管理编辑器任务,这里我正在编写 dte.ActiveDocument.FullName; 代码)的路径详细信息。但我想要在我的实验窗口中打开的文件的文件详细信息。
如果您想获取实验窗口中当前打开的文本编辑器的文件名
DTE dte = Package.GetGlobalService(typeof(SDTE)) as DTE;
string docName = dte.ActiveDocument.Name;
编辑
菜单按钮示例,如果单击菜单按钮,则返回实验 Visual Studio 实例中打开文档的当前文件名
private void Execute(object sender, EventArgs e)
{
/// Get Open Documents
string docName = GetActiveTextEditor();
if (docName == null) return;
}
internal static string GetActiveTextEditor()
{
DTE dte = Package.GetGlobalService(typeof(SDTE)) as DTE;
string docName = dte.ActiveDocument.Name;
return docName;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1582 次 |
| 最近记录: |