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;
 }