public ChangedTypesProvider( Lifetime lifetime, IShellLocks shellLocks, ChangeManager changeManager, DocumentManager documentManager, IPsiServices services) { _myServices = services; _myLifetime = lifetime; _myShellLocks = shellLocks; _myDocumentManager = documentManager; _myChangedRanges = new ConcurrentDictionary <IProjectFile, TextRange>(); changeManager.Changed2.Advise(lifetime, OnChange); _myDocumentChangedEvent = shellLocks.CreateGroupingEvent( lifetime, "ChangedTypesProvider::DocumentChanged", s_updateInterval, OnProcessChangesEx); TypesChanged = new Signal <IReadOnlyCollection <ITypeElement> >(lifetime, "ChangedTypesProvider"); _myLifetime.AddDispose(TypesChanged); }