【问题标题】:Visual Studio add in that alphabetizes values in a resource fileVisual Studio 添加了按字母顺序排列资源文件中的值
【发布时间】:2013-03-06 19:23:42
【问题描述】:

我想制作一个 Visual Studio 插件,它能够在每次有人编辑资源文件时按字母顺序对资源文件进行排序。我不是在寻找解决方案,但我以前从未使用过 Visual Studio sdk。我只是想知道是否有使用 Visual Studio sdk 经验的人可能知道这是否可能?也感谢任何关于如何开始制作插件的建议。

【问题讨论】:

  • 你可以在不写插件的情况下做到这一点(只是我的看法,但我认为这对你想做的事情来说太过分了),如果你不这样做,一个简单的外部工具程序就足够了不打算在每次添加新资源时自动对所有内容进行排序(resx 是 xml 文件,因此在外部工具中对它们进行排序非常容易)
  • 是的,我有对 resx 文件进行排序的代码。但是,在使用该实用程序的环境中,如果我可以让它作为 Visual Studio 的插件工作,那将是最好的。
  • 好的,那么您能解释一下您希望插件如何工作吗?用户是否应该单击一个按钮来对文件进行排序(可能在资源编辑器中)?我对 Visual Studio 软件包有一些经验(几乎相同),所以也许我可以给你一些我发现的链接(实际上它们并不那么容易找到......)
  • 我希望插件在每次有人保存资源文件时进行排序,但就像我说的,我什至不确定这是否可能。感谢您的帮助。

标签: c# visual-studio-addins visual-studio-sdk


【解决方案1】:

如果您从未使用过 Visual Studio 可扩展性,我向您推荐此页面: Make a solution notebook tool window

这里有一些关于如何与 Visual Studio 交互以将数据保存在 sln 和 suo 文件中的有用信息,您还可以找到一些关于您可以用来告诉 Visual Studio 包(或插件)需要做什么的属性的信息. 虽然这是一个常识性的东西,与你想做的事情没有直接关系。

this link 是关于如何监听 Visual Studio 触发的一些特定事件,它向您展示了在插件中创建监听器的一般方法

this one 实际上是关于您需要做什么(它告诉您如何在 Visual Studio 保存文件之前捕获触发的事件)

还有最重要的一个:the source code 用于为 Visual Studio 创建自定义源代码控制,这是我找到了解 Visual Studio 可扩展性所需的大部分信息的地方

通过所有这些链接,您应该可以开始使用,当然您还有关于扩展 Visual Studio 的 official msdn documentation

您需要做的是创建一个插件,该插件将在项目即将保存到 Visual Studio 时监听触发的事件。我认为 resx 文件没有特定的事件,因此您可能必须测试保存了哪个文件,但这应该是全部。 获得项目后,您可以找到物理文件并对其进行排序。

另外,我发现在 DTE 对象中声明的事件并没有真正起作用(至少对我来说没有),这就是为什么我建议您实现侦听器模式来捕获您需要的事件。

希望对你有帮助

【讨论】:

    【解决方案2】:

    我实际上做了exactly that

    您可以在GitHub 中找到扩展的源代码。它向您展示了如何从解决方案资源管理器获取文件句柄、添加上下文菜单操作、写入输出菜单等。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-08-01
      • 2023-03-18
      • 1970-01-01
      • 2020-03-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多