【发布时间】:2011-03-18 07:33:22
【问题描述】:
我正在为 Visual Studio 2010 编写自己的抽象扩展,它具有与 Ook Language Integration 类似的功能。
我有一个问题,是否可以将我自己的 AutoCompletion 与标准的 C++ VS 自动完成混合?怎么做?是否需要使用VS的库并调用一些方法?
【问题讨论】:
标签: visual-studio-2010 intellisense vsx
我正在为 Visual Studio 2010 编写自己的抽象扩展,它具有与 Ook Language Integration 类似的功能。
我有一个问题,是否可以将我自己的 AutoCompletion 与标准的 C++ VS 自动完成混合?怎么做?是否需要使用VS的库并调用一些方法?
【问题讨论】:
标签: visual-studio-2010 intellisense vsx
This 是向 C# 智能感知添加功能的一个很好的例子。
首先你应该捕获completionSession并使用它。
像这个 sn-p,但在 C++ 中
[Export(typeof(IIntellisensePresenterProvider))]
[ContentType("text")]
[Order(Before = "Default Completion Presenter")]
[Name("Object Intellisense Presenter")]
internal class IntellisensePresenterProvider : IIntellisensePresenterProvider
{
[Import(typeof(SVsServiceProvider))]
IServiceProvider ServiceProvider { get; set; }
#region Try Create Intellisense Presenter
#region Documentation
/// <summary>
/// Inject the IntelliSense presenter
/// </summary>
/// <param name="session"></param>
/// <returns></returns>
#endregion // Documentation
public IIntellisensePresenter TryCreateIntellisensePresenter(IIntellisenseSession session)
{
#region Validation (is C#)
const string CSHARP_CONTENT = "CSharp";
if (session.TextView.TextBuffer.ContentType.TypeName != CSHARP_CONTENT)
{
return null;
}
#endregion // Validation
ICompletionSession completionSession = session as ICompletionSession;
if (completionSession != null)
{
var presenter = new IntelliSenseViewModel(ServiceProvider, completionSession);
return presenter;
}
return null;
}
#endregion // Try Create Intellisense Presenter
}
希望有所帮助!
【讨论】: