【问题标题】:How do you call "Document Format" programmatically from C#?如何从 C# 以编程方式调用“文档格式”?
【发布时间】:2009-05-01 20:26:58
【问题描述】:

我正在编写一个简单的 VS 插件,并希望在代码中以编程方式调用“文档格式”选项(在“编辑”下)。 Google 今天对我不太友好....

【问题讨论】:

  • 你试过 Resharper 吗?它可以一次性为您重新格式化整个解决方案。 (我认为这没有帮助,但我必须尝试过...... ;-))
  • 不,只是想尝试使用我自己的小工具来自动闭合大括号(是的,我知道 Resharper 也这样做,但其中的乐趣在哪里??)

标签: c# visual-studio add-in


【解决方案1】:
Command cmd = _applicationObject.Commands.Item("Edit.FormatDocument", -1);
object dummy = null;
_applicationObject.Commands.Raise(cmd.Guid, cmd.ID, ref dummy, ref dummy);

【讨论】:

  • 因为是第一次检查,所以看不懂。你能指定'_applicationObject'的类型及其命名空间吗?我浏览了一下我应该使用EnvDTE80命名空间,但我无法继续。任何 coden-p 都会非常有帮助。
【解决方案2】:

如果您有对文档(Window 类型)的引用,并且您有对 _DTE 对象的引用,则可以这样调用它:

myDocument.Activate();
myDTE.ExecuteCommand("Edit.FormatDocument", string.Empty);

大多数时候,您可以从传递给加载项的参数中获取对 _DTE 对象的引用。

【讨论】:

  • 有什么方法可以在不打开文档的情况下格式化文档?我想一键格式化项目中的所有文档。
  • 我不这么认为。您可以打开、格式化然后关闭文档。
【解决方案3】:

您需要使用标准命令编辑器,通过VSStd2KCmdId.FORMATDOCUMENT 命令枚举调用。

【讨论】:

    猜你喜欢
    • 2022-08-05
    • 2018-04-14
    • 1970-01-01
    • 2019-02-23
    • 2010-09-18
    • 2018-12-11
    • 1970-01-01
    • 2010-09-15
    • 1970-01-01
    相关资源
    最近更新 更多