/// <summary> /// Locates first component withing ordered components of a particular content type. /// </summary> public static TComponent FindFirstOrderedComponent(ICompositionCatalog catalog, string contentTypeName) { var contentTypeRegistryService = catalog.ExportProvider.GetExportedValue <IContentTypeRegistryService>(); var contentType = contentTypeRegistryService.GetContentType(contentTypeName); return(FindFirstOrderedComponent(catalog.CompositionService, contentType)); }
public QuickInfoSource(ITextBuffer subjectBuffer, ICompositionCatalog catalog) { _catalog = catalog; _catalog.CompositionService.SatisfyImportsOnce(this); _subjectBuffer = subjectBuffer; _subjectBuffer.Changed += OnTextBufferChanged; }
public QuickInfoSource(ITextBuffer subjectBuffer, ICompositionCatalog catalog) { _catalog = catalog; _catalog.CompositionService.SatisfyImportsOnce(this); _subjectBuffer = subjectBuffer; _subjectBuffer.Changed += OnTextBufferChanged; }
/// <summary> /// Locates all components exported with a given content type or with any of the content type base types /// </summary> public static IEnumerable <Lazy <TComponent, TMetadata> > ImportMany(ICompositionCatalog catalog, string contentTypeName) { var lazy = catalog.ExportProvider.GetExport <IContentTypeRegistryService>(); Debug.Assert(lazy != null); var contentTypeRegistry = lazy.Value; var contentType = contentTypeRegistry.GetContentType(contentTypeName); return(ImportMany(catalog.CompositionService, contentType)); }
protected ViewController(ITextView textView, ITextBuffer textBuffer, ICompositionCatalog shell) { TextView = textView; TextBuffer = textBuffer; _shell = shell; _controllers = new List<ICommandTarget>(); BuildCommandSet(); BuildControllerSet(); TextViewListenerEvents.TextViewDisconnected += OnTextViewDisconnected; }
protected ViewController(ITextView textView, ITextBuffer textBuffer, ICompositionCatalog shell) { TextView = textView; TextBuffer = textBuffer; _shell = shell; _controllers = new List <ICommandTarget>(); BuildCommandSet(); BuildControllerSet(); TextViewListenerEvents.TextViewDisconnected += OnTextViewDisconnected; }
public MassiveChange(ITextView textView, ITextBuffer textBuffer, ICompositionCatalog catalog, string description) { _textBuffer = textBuffer; var undoManagerProvider = catalog.ExportProvider.GetExportedValue<ITextBufferUndoManagerProvider>(); var undoManager = undoManagerProvider.GetTextBufferUndoManager(textView.TextBuffer); ITextUndoTransaction innerTransaction = undoManager.TextBufferUndoHistory.CreateTransaction(description); _transaction = new TextUndoTransactionThatRollsBackProperly(innerTransaction); _transaction.AddUndo(new StartMassiveChangeUndoUnit(_textBuffer)); IREditorDocument document = REditorDocument.TryFromTextBuffer(_textBuffer); document?.BeginMassiveChange(); }
public static IEditorSettingsStorage GetSettings(ICompositionCatalog compositionCatalog, string contentTypeName) { IEditorSettingsStorage settingsStorage = null; lock (_settingsLock) { if (_settingStorageMap.TryGetValue(contentTypeName, out settingsStorage)) { return settingsStorage; } // Need to find the settings using MEF (don't use MEF inside of other locks, that can lead to deadlock) var contentTypeRegistry = compositionCatalog.ExportProvider.GetExportedValue<IContentTypeRegistryService>(); var contentType = contentTypeRegistry.GetContentType(contentTypeName); Debug.Assert(contentType != null, "Cannot find content type object for " + contentTypeName); var cs = compositionCatalog.CompositionService; settingsStorage = ComponentLocatorForOrderedContentType<IWritableEditorSettingsStorage>.FindFirstOrderedComponent(cs, contentType); if (settingsStorage == null) { settingsStorage = ComponentLocatorForOrderedContentType<IEditorSettingsStorage>.FindFirstOrderedComponent(cs, contentType); } if (settingsStorage == null) { var storages = ComponentLocatorForContentType<IWritableEditorSettingsStorage, IComponentContentTypes>.ImportMany(cs, contentType); if (storages.Count() > 0) settingsStorage = storages.First().Value; } if (settingsStorage == null) { var readonlyStorages = ComponentLocatorForContentType<IEditorSettingsStorage, IComponentContentTypes>.ImportMany(cs, contentType); if (readonlyStorages.Count() > 0) settingsStorage = readonlyStorages.First().Value; } Debug.Assert(settingsStorage != null, String.Format(CultureInfo.CurrentCulture, "Cannot find settings storage export for content type '{0}'", contentTypeName)); if (_settingStorageMap.ContainsKey(contentTypeName)) { // some other thread came along and loaded settings already settingsStorage = _settingStorageMap[contentTypeName]; } else { _settingStorageMap[contentTypeName] = settingsStorage; settingsStorage.LoadFromStorage(); } } return settingsStorage; }
public MassiveChange(ITextView textView, ITextBuffer textBuffer, ICompositionCatalog catalog, string description) { _textBuffer = textBuffer; var undoManagerProvider = catalog.ExportProvider.GetExportedValue <ITextBufferUndoManagerProvider>(); var undoManager = undoManagerProvider.GetTextBufferUndoManager(textView.TextBuffer); ITextUndoTransaction innerTransaction = undoManager.TextBufferUndoHistory.CreateTransaction(description); _transaction = new TextUndoTransactionThatRollsBackProperly(innerTransaction); _transaction.AddUndo(new StartMassiveChangeUndoUnit(_textBuffer)); IREditorDocument document = REditorDocument.TryFromTextBuffer(_textBuffer); document?.BeginMassiveChange(); }
public ComponentModelMock(ICompositionCatalog catalog) { _catalog = catalog; }
private TestEditorShell(ICompositionCatalog catalog) { CompositionService = catalog.CompositionService; ExportProvider = catalog.ExportProvider; MainThread = Thread.CurrentThread; }
public static ISettingsStorage GetSettings(ICompositionCatalog compositionCatalog, string contentTypeName) { ISettingsStorage settingsStorage = null; lock (_settingsLock) { if (_settingStorageMap.TryGetValue(contentTypeName, out settingsStorage)) { return(settingsStorage); } // Need to find the settings using MEF (don't use MEF inside of other locks, that can lead to deadlock) var contentTypeRegistry = compositionCatalog.ExportProvider.GetExportedValue <IContentTypeRegistryService>(); var contentType = contentTypeRegistry.GetContentType(contentTypeName); Debug.Assert(contentType != null, "Cannot find content type object for " + contentTypeName); settingsStorage = ComponentLocatorForOrderedContentType <IWritableSettingsStorage> .FindFirstOrderedComponent(compositionCatalog.CompositionService, contentType); if (settingsStorage == null) { settingsStorage = ComponentLocatorForOrderedContentType <ISettingsStorage> .FindFirstOrderedComponent(compositionCatalog.CompositionService, contentType); } if (settingsStorage == null) { var storages = ComponentLocatorForContentType <IWritableSettingsStorage, IComponentContentTypes> .ImportMany(compositionCatalog.CompositionService, contentType); if (storages.Any()) { settingsStorage = storages.First().Value; } } if (settingsStorage == null) { var readonlyStorages = ComponentLocatorForContentType <ISettingsStorage, IComponentContentTypes> .ImportMany(compositionCatalog.CompositionService, contentType); if (readonlyStorages.Any()) { settingsStorage = readonlyStorages.First().Value; } } Debug.Assert(settingsStorage != null, String.Format(CultureInfo.CurrentCulture, "Cannot find settings storage export for content type '{0}'", contentTypeName)); if (_settingStorageMap.ContainsKey(contentTypeName)) { // some other thread came along and loaded settings already settingsStorage = _settingStorageMap[contentTypeName]; } else { _settingStorageMap[contentTypeName] = settingsStorage; settingsStorage.LoadFromStorage(); } } return(settingsStorage); }
private TestEditorShell(ICompositionCatalog catalog, Thread mainThread) : base(catalog.ExportProvider) { CompositionService = catalog.CompositionService; MainThread = mainThread; }
private TestEditorShell(ICompositionCatalog catalog, Thread mainThread) { CompositionService = catalog.CompositionService; ExportProvider = catalog.ExportProvider; MainThread = mainThread; }
public static ImageSource GetGlyph(StandardGlyphGroup @group, StandardGlyphItem item, ICompositionCatalog compositionCatalog) { lock (_lock) { var glyphService = compositionCatalog.ExportProvider.GetExportedValue <IGlyphService>(); return(glyphService.GetGlyph(group, item)); } }