Visual Studio 2010 Расширения - PullRequest
2 голосов
/ 18 марта 2011

Я пишу свое собственное абстрактное расширение для Visual Studio 2010, оно делает похожую функциональность как Ook Language Integration .

У меня есть вопрос, возможно ли смешать мое собственное автозаполнение со стандартным автозаполнением C ++ VS? Как это сделать? Нужно ли использовать библиотеки VS и вызывать некоторые методы?

1 Ответ

1 голос
/ 28 марта 2011

Этот является очень хорошим примером добавления функций в C # intellisense.

Прежде всего вы должны захватить completionSession и использовать его.

фрагмент, но в 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
    }

Надежда помогает!

...