16

我想通过各种项目手动扩展 IntelliSense 列表。我想对项目触发的操作负责(即代码完成和工具提示信息)。什么物品都无所谓。

这可以通过 VisualStudio 插件、ReSharper / DXCore 或任何其他插件实现吗?

背景:

你们中的一些人可能知道 FOP(面向特征的编程)。FOP 需要对智能感知和编辑器行为进行各种更改。

编辑:

另一个有趣的帖子

4

3 回答 3

17

这绝对可以通过编写 ReSharper 插件轻松实现。

  • 首先实现ICodeCompletionItemsProvider它将提供额外的 IntelliSense 项。最简单的方法是继承自ItemsProviderOfSpecificContext<TContext>(如果您对 C# 代码完成感兴趣,可以继承)TContextCSharpCodeCompletionContext

  • 您的提供者将在AddLookupItems(). 您有机会在ILookupItem此处提供自定义实现:Accept()当用户在完成弹出窗口中选择项目时,将调用此接口的方法。这是您执行所需代码的机会。

请注意,此信息适用于 R# 6.1/7.0。我不认为它与以前的版本有很大不同。显然,您必须启用 ReSharper IntelliSense 而不是 Visual Studio IntelliSense 才能正常工作。

于 2012-02-10T19:01:20.347 回答
2

可以通过将自定义 xsd 文件放在C:\Program Files\Microsoft Visual Studio 10.0\Xml\Schemas文件夹中来添加用于 VS2010 XML 编辑器的自定义 intelliSense,但我想您正在寻找更多内容。

您应该查看创建和使用 IntelliSense 代码片段并确定它是否是您要查找的内容。关于programmers.stockexchange 的这个问题也可能会有所帮助。这个问题似乎也很相似,这表明CSharpIntellisensePresenter (Free)。

于 2012-02-06T17:49:20.993 回答
0

也许 ReSharper 的 Live Templates 可以帮助您(ReSharper->Live Templates...)。

于 2012-02-08T10:06:21.520 回答