public IIntellisenseController TryCreateIntellisenseController(ITextView textView, IList<ITextBuffer> subjectBuffers) { DjangoIntellisenseController controller; if (!textView.Properties.TryGetProperty<DjangoIntellisenseController>(typeof(DjangoIntellisenseController), out controller)) { controller = new DjangoIntellisenseController(this, textView); textView.Properties.AddProperty(typeof(DjangoIntellisenseController), controller); foreach (var buffer in subjectBuffers) { controller.ConnectSubjectBuffer(buffer); } } return controller; }
internal static DjangoIntellisenseController GetOrCreateController(IComponentModel model, ITextView textView) { DjangoIntellisenseController controller; if (!textView.Properties.TryGetProperty<DjangoIntellisenseController>(typeof(DjangoIntellisenseController), out controller)) { var intellisenseControllerProvider = ( from export in model.DefaultExportProvider.GetExports<IIntellisenseControllerProvider, IContentTypeMetadata>() from exportedContentType in export.Metadata.ContentTypes where exportedContentType == TemplateContentType.ContentTypeName && export.Value.GetType() == typeof(DjangoIntellisenseControllerProvider) select export.Value ).First(); controller = new DjangoIntellisenseController((DjangoIntellisenseControllerProvider)intellisenseControllerProvider, textView); textView.Properties.AddProperty(typeof(DjangoIntellisenseController), controller); } return controller; }