diff --git a/src/WebExtensions.Net.Generator/ClrTypeTranslators/ClrTypeStore.cs b/src/WebExtensions.Net.Generator/ClrTypeTranslators/ClrTypeStore.cs index 590eb04..8479932 100644 --- a/src/WebExtensions.Net.Generator/ClrTypeTranslators/ClrTypeStore.cs +++ b/src/WebExtensions.Net.Generator/ClrTypeTranslators/ClrTypeStore.cs @@ -225,7 +225,7 @@ private string GetTypeId(TypeReference? typeReference, NamespaceEntity namespace if (typeReference.Ref is not null) { - if (typeReference.Ref.Contains(".") || string.IsNullOrEmpty(namespaceEntity.FullFormattedName)) + if (typeReference.Ref.Contains('.') || string.IsNullOrEmpty(namespaceEntity.FullFormattedName)) { var capitalizedRef = string.Join('.', typeReference.Ref.Split('.').Select(x => x.ToCapitalCase())); return $"{Constants.RelativeNamespaceToken}.{capitalizedRef}"; diff --git a/src/WebExtensions.Net.Generator/EntitiesRegistration/ClassEntityRegistrars/BaseClassEntityRegistrar.cs b/src/WebExtensions.Net.Generator/EntitiesRegistration/ClassEntityRegistrars/BaseClassEntityRegistrar.cs index 752768f..f6768bf 100644 --- a/src/WebExtensions.Net.Generator/EntitiesRegistration/ClassEntityRegistrars/BaseClassEntityRegistrar.cs +++ b/src/WebExtensions.Net.Generator/EntitiesRegistration/ClassEntityRegistrars/BaseClassEntityRegistrar.cs @@ -59,13 +59,10 @@ protected virtual void AddClassFunctions(TypeEntity typeEntity, List typeExtension.ObjectFunctions is not null) + .SelectMany(typeExtension => typeExtension.ObjectFunctions!); + classFunctions.AddRange(typeExtensionFunctions); } protected virtual void AddClassProperties(TypeEntity typeEntity, List> classProperties) @@ -75,13 +72,10 @@ protected virtual void AddClassProperties(TypeEntity typeEntity, List typeExtension.ObjectProperties is not null) + .SelectMany(typeExtension => typeExtension.ObjectProperties!); + classProperties.AddRange(typeExtensionProperties); } private static void AddPropertiesToClassEntity(IEnumerable> propertyDefinitionPairs, ClassEntity classEntity) diff --git a/src/WebExtensions.Net.Generator/EntitiesRegistration/NamespaceEntityRegistrar.cs b/src/WebExtensions.Net.Generator/EntitiesRegistration/NamespaceEntityRegistrar.cs index ff166a7..de8d9ce 100644 --- a/src/WebExtensions.Net.Generator/EntitiesRegistration/NamespaceEntityRegistrar.cs +++ b/src/WebExtensions.Net.Generator/EntitiesRegistration/NamespaceEntityRegistrar.cs @@ -33,13 +33,13 @@ public IEnumerable GetAllNamespaceEntities() { if (namespaceDefinition.Namespace is null) { - logger.LogInformation($"Namespace is null for namespace definition in source '{namespaceDefinition.Source?.HttpUrl}'"); + logger.LogInformation("Namespace is null for namespace definition in source '{HttpUrl}'", namespaceDefinition.Source?.HttpUrl); return null; } NamespaceEntity? parentEntity = null; var @namespace = namespaceDefinition.Namespace; - if (@namespace.Contains(".")) + if (@namespace.Contains('.')) { var parentNamespaces = @namespace.Split('.'); @namespace = parentNamespaces.Last(); diff --git a/src/WebExtensions.Net.Generator/EntitiesRegistration/NamespaceRegistrationFilter.cs b/src/WebExtensions.Net.Generator/EntitiesRegistration/NamespaceRegistrationFilter.cs index 43dbf9d..f70c2be 100644 --- a/src/WebExtensions.Net.Generator/EntitiesRegistration/NamespaceRegistrationFilter.cs +++ b/src/WebExtensions.Net.Generator/EntitiesRegistration/NamespaceRegistrationFilter.cs @@ -21,13 +21,13 @@ public bool ShouldProcess(NamespaceEntity namespaceEntity) { if (registrationOptions.ExcludeNamespaces is not null && registrationOptions.ExcludeNamespaces.Contains(namespaceEntity.FullName)) { - logger.LogWarning($"Skipped namespace '{namespaceEntity.FullName}'."); + logger.LogWarning("Skipped namespace '{FullName}'.", namespaceEntity.FullName); return false; } if (registrationOptions.IncludeNamespaces is not null && !registrationOptions.IncludeNamespaces.Contains(namespaceEntity.FullName)) { - logger.LogError($"Namespace '{namespaceEntity.FullName}' is not recognized."); + logger.LogError("Namespace '{FullName}' is not recognized.", namespaceEntity.FullName); return false; } diff --git a/src/WebExtensions.Net.Generator/EntitiesRegistration/TypeEntityRegistrar.cs b/src/WebExtensions.Net.Generator/EntitiesRegistration/TypeEntityRegistrar.cs index 4faf825..5196d95 100644 --- a/src/WebExtensions.Net.Generator/EntitiesRegistration/TypeEntityRegistrar.cs +++ b/src/WebExtensions.Net.Generator/EntitiesRegistration/TypeEntityRegistrar.cs @@ -35,7 +35,7 @@ public void RegisterNamespaceType(TypeDefinition typeDefinition, NamespaceEntity } else { - logger.LogError($"Type definition in namespace '{namespaceEntity.FullName}' must have an ID or extends another type. {JsonSerializer.Serialize(typeDefinition)}"); + logger.LogError("Type definition in namespace '{FullName}' must have an ID or extends another type. {TypeDefinition}", namespaceEntity.FullName, JsonSerializer.Serialize(typeDefinition)); } } diff --git a/src/WebExtensions.Net.Generator/EntitiesRegistrationManager.cs b/src/WebExtensions.Net.Generator/EntitiesRegistrationManager.cs index d63df94..855563f 100644 --- a/src/WebExtensions.Net.Generator/EntitiesRegistrationManager.cs +++ b/src/WebExtensions.Net.Generator/EntitiesRegistrationManager.cs @@ -155,7 +155,7 @@ private void RegisterTypeEntitiesAsClassEntities() { if (!typeEntity.IsReferenced) { - logger.LogWarning($"Skipped Type '{typeEntity.NamespaceQualifiedId}' because it is not referenced."); + logger.LogWarning("Skipped Type '{NamespaceQualifiedId}' because it is not referenced.", typeEntity.NamespaceQualifiedId); continue; } diff --git a/src/WebExtensions.Net.Generator/Extensions/NamespaceEntityExtensions.cs b/src/WebExtensions.Net.Generator/Extensions/NamespaceEntityExtensions.cs index 24326e3..4b86967 100644 --- a/src/WebExtensions.Net.Generator/Extensions/NamespaceEntityExtensions.cs +++ b/src/WebExtensions.Net.Generator/Extensions/NamespaceEntityExtensions.cs @@ -6,7 +6,7 @@ public static class NamespaceEntityExtensions { public static string GetNamespaceQualifiedId(this NamespaceEntity namespaceEntity, string id) { - if (string.IsNullOrEmpty(namespaceEntity.FullName) || id.Contains(".")) + if (string.IsNullOrEmpty(namespaceEntity.FullName) || id.Contains('.')) { return id; } diff --git a/src/WebExtensions.Net.Generator/FilesManager.cs b/src/WebExtensions.Net.Generator/FilesManager.cs index aac993d..6eda7be 100644 --- a/src/WebExtensions.Net.Generator/FilesManager.cs +++ b/src/WebExtensions.Net.Generator/FilesManager.cs @@ -33,13 +33,13 @@ public void CleanDirectory() { foreach (var directory in Directory.GetDirectories(options.RootDirectory)) { - logger.LogInformation($"Deleting directory {directory}"); + logger.LogInformation("Deleting directory {Directory}", directory); DeleteDirectory(directory); } foreach (var file in Directory.GetFiles(options.RootDirectory)) { - logger.LogInformation($"Deleting file {file}"); + logger.LogInformation("Deleting file {File}", file); DeleteFile(file); } } @@ -141,7 +141,7 @@ private void CreateDirectoryIfNotExist(string directory) { if (!Directory.Exists(directory)) { - logger.LogInformation($"Creating directory {directory}"); + logger.LogInformation("Creating directory {Directory}", directory); Directory.CreateDirectory(directory); } } diff --git a/src/WebExtensions.Net.Generator/NamespaceDefinitionsClients/NamespaceDefinitionsClient.cs b/src/WebExtensions.Net.Generator/NamespaceDefinitionsClients/NamespaceDefinitionsClient.cs index 912a11d..17d0054 100644 --- a/src/WebExtensions.Net.Generator/NamespaceDefinitionsClients/NamespaceDefinitionsClient.cs +++ b/src/WebExtensions.Net.Generator/NamespaceDefinitionsClients/NamespaceDefinitionsClient.cs @@ -62,7 +62,7 @@ public async Task> GetNamespaceDefinitions(IEnu private async Task> GetNamespaceDefinition(NamespaceSourceDefinition namespaceSourceDefinition) { - logger.LogInformation($"Reading from URL {namespaceSourceDefinition.HttpUrl}"); + logger.LogInformation("Reading from URL {HttpUrl}", namespaceSourceDefinition.HttpUrl); IEnumerable? namespaceDefinitionsResponse; try @@ -82,7 +82,7 @@ private async Task> GetNamespaceDefinition(Name namespaceDefinition.Source = namespaceSourceDefinition; } - logger.LogInformation($"Reading complete for URL {namespaceSourceDefinition.HttpUrl}"); + logger.LogInformation("Reading complete for URL {HttpUrl}", namespaceSourceDefinition.HttpUrl); return namespaceDefinitionsResponse; } @@ -94,7 +94,7 @@ private async Task> GetNamespaceSourceDefinition var namespaceSourceDefinitionDictionary = await GetFromHttpWithRetry>(source.BaseUrl + source.FileName); if (namespaceSourceDefinitionDictionary is null) { - logger.LogError($"Failed to retrieve namespace source definitions from source url. Source url: '{source}'"); + logger.LogError("Failed to retrieve namespace source definitions from source url. Source url: '{Source}'", source); continue; } @@ -105,7 +105,7 @@ private async Task> GetNamespaceSourceDefinition if (namespaceSourceDefinition.Schema is null) { - logger.LogWarning($"Skipping source definition: Namespace definition schema url is null. Key: '{item.Key}'"); + logger.LogWarning("Skipping source definition: Namespace definition schema url is null. Key: '{Key}'", item.Key); continue; } var namespaceSource = sources.Single(s => namespaceSourceDefinition.Schema.StartsWith(s.SchemaBaseUrl));