public ClassificationTypeCreator(ClassificationTypeRegistryService owner, IEnumerable <Lazy <ClassificationTypeDefinition, IClassificationTypeDefinitionMetadata> > classificationTypeDefinitions)
            {
                this.owner             = owner;
                rawClassificationTypes = new Dictionary <string, RawClassificationType>();
                foreach (var md in classificationTypeDefinitions.Select(a => a.Metadata))
                {
                    var type = md.Name;
                    Debug.Assert(type != null);
                    if (type == null)
                    {
                        continue;
                    }
                    Debug.Assert(!rawClassificationTypes.ContainsKey(type));
                    if (rawClassificationTypes.ContainsKey(type))
                    {
                        continue;
                    }
                    var baseTypes = (md.BaseDefinition ?? Array.Empty <string>()).ToArray();
                    var rawCt     = new RawClassificationType(type, baseTypes);
                    rawClassificationTypes.Add(rawCt.Type, rawCt);
                }
                var list = rawClassificationTypes.Values.Select(a => a.Type).ToArray();

                foreach (var type in list)
                {
                    TryCreate(type, 0);
                }
            }
			public ClassificationTypeCreator(ClassificationTypeRegistryService owner, IEnumerable<Lazy<ClassificationTypeDefinition, IClassificationTypeDefinitionMetadata>> classificationTypeDefinitions) {
				this.owner = owner;
				rawClassificationTypes = new Dictionary<string, RawClassificationType>();
				foreach (var md in classificationTypeDefinitions.Select(a => a.Metadata)) {
					var type = md.Name;
					Debug.Assert(type != null);
					if (type == null)
						continue;
					Debug.Assert(!rawClassificationTypes.ContainsKey(type));
					if (rawClassificationTypes.ContainsKey(type))
						continue;
					var baseTypes = (md.BaseDefinition ?? Array.Empty<string>()).ToArray();
					var rawCt = new RawClassificationType(type, baseTypes);
					rawClassificationTypes.Add(rawCt.Type, rawCt);
				}
				var list = rawClassificationTypes.Values.Select(a => a.Type).ToArray();
				foreach (var type in list)
					TryCreate(type, 0);
			}