protected override void Dispose(bool disposing) { if (disposing) { if (_trackDocumentsEventsCookie != 0) { var serviceProvider = this.AsVsServiceProvider(); IVsTrackProjectDocuments2 trackDocuments = serviceProvider.GetTrackProjectDocuments2(); trackDocuments.UnadviseTrackProjectDocumentsEvents(_trackDocumentsEventsCookie); _trackDocumentsEventsCookie = 0; } if (_grammarFileObjectExtenderCookie != 0) { ObjectExtenders objectExtenders = (ObjectExtenders)GetService(typeof(ObjectExtenders)); objectExtenders.UnregisterExtenderProvider(_grammarFileObjectExtenderCookie); _grammarFileObjectExtenderCookie = 0; } if (_languageInfo != null) { _languageInfo.Dispose(); _languageInfo = null; } if (_languageInfo4 != null) { _languageInfo4.Dispose(); _languageInfo4 = null; } } base.Dispose(disposing); }
protected override void Initialize() { base.Initialize(); var serviceProvider = this.AsVsServiceProvider(); // register the language service _languageInfo = new AntlrLanguageInfo(this.AsVsServiceProvider()); _languageInfo4 = new Antlr4LanguageInfo(this.AsVsServiceProvider()); ((IServiceContainer)this).AddService(typeof(AntlrLanguageInfo), _languageInfo, true); ((IServiceContainer)this).AddService(typeof(Antlr4LanguageInfo), _languageInfo4, true); ObjectExtenders objectExtenders = (ObjectExtenders)GetService(typeof(ObjectExtenders)); _grammarFileObjectExtenderProvider = new GrammarFileObjectExtenderProvider(); string extenderCatId = Microsoft.VisualStudio.VSConstants.CATID.CSharpFileProperties_string; string extenderName = GrammarFileObjectExtenderProvider.Name; string localizedName = GrammarFileObjectExtenderProvider.Name; _grammarFileObjectExtenderCookie = objectExtenders.RegisterExtenderProvider(extenderCatId, extenderName, _grammarFileObjectExtenderProvider, localizedName); IVsTrackProjectDocuments2 trackDocuments2 = serviceProvider.GetTrackProjectDocuments2(); trackDocuments2.AdviseTrackProjectDocumentsEvents(this, out _trackDocumentsEventsCookie); }