【问题标题】:How do I create an Editor Option in the new VS2010 Editor Extensibilty如何在新的 VS2010 编辑器可扩展性中创建编辑器选项
【发布时间】:2010-02-06 15:05:42
【问题描述】:

VS2010 编辑器的list of extensibility points 提到了创建 EditorOptionDefinitions 以及一个小示例。当我尝试这样做时,我在 VS2010 UI 的任何地方都找不到选项。如何创建这些以使它们出现在 UI 中?

【问题讨论】:

  • 请注意您的标签选择。 'vs2010' 不好。

标签: visual-studio visual-studio-2010 mef


【解决方案1】:

要在 Vs2010 中定义新的编辑器选项,您需要执行以下操作

  1. 创建一个派生自EditorOPtionDefinitionEditorOptionDefinition<T> 的类
  2. 添加EditorOptionDefinition 的导出。
  3. 确保定义它的程序集被列为 MEF 组件

例子

[Export(typeof(EditorOptionDefinition))]
public sealed class SomeNewOption : EditorOptionDefinition<string> {
  public override Default { get ... } 
  public override EditorOptionKey<string> Key { get ... }
}

【讨论】:

  • 好的。然后什么?那实际上是做什么的?如果我想让用户设置一个值或获取用户设置的值,我实际上需要做什么?我假设我需要为此构建自己的 UI,但还不清楚。
  • @Wolfbyte,这些选项只对其他扩展有用。如果你想拥有一个 UI,你确实必须自己构建一个
  • @JaredPar 感谢您的回答。那么,导出这个类是否会在视觉工作室或其他东西中提供选项的持久性?我正在努力弄清楚为什么要创建其中一个并将其导出。另外,您的答案是正确的,所以我将其标记为。
  • @Wolfbyte,我不确定持久性角度(我不相信它们是默认的)。此类的目的是公开对其他扩展有用的设置。例如,编辑器导出 NewLine 字符、TabSize、DisplayUrlsAsHyperLinks 等项目。
  • @JaredPar 那么为了使用其他人定义的这些选项,我们是否需要 [ImportMany] EditorOptionDefinition[] 选项?我真的看不出这个类提供了什么,因为我想我可以导出一个字符串或一个布尔值。我想这是因为选项的值可以改变,所以你需要为它导出一个容器而不是值本身。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-02
  • 2012-07-11
  • 2020-11-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多