[x] update references in AvaloniaVS extensions; Remove Obsolete symbols from AvaloniaVS.Shared
[x] Investigate azure-pipelines build errors I'm unable to reproduce.
AvaloniaVS.Shared\Models\ProjectOutputInfo.cs(30,10): Error CS0246: The type or namespace name 'ObsoleteAttribute' could not be found (are you missing a using directive or an assembly reference?)AvaloniaVS.Shared\Models\ProjectOutputInfo.cs(30,10): Error CS0246: The type or namespace name 'Obsolete' could not be found (are you missing a using directive or an assembly reference?)
Features/Enhancements
Added instance method Avalonia.Ide.CompletionEngine.Metadata.AddMetadata(Metadata metadata) to merge dictionaries from one Metadata into another. Keys are only added if they are not already present. Existing keys' values remain unchanged.
This can be used to add metadata from various build contexts e.g. TargetFrameworks (build for multiple frameworks) and if-else compiler statements. Some TODO comments indicate potential improvements. How do we indicate which context a metadatum came from?
Miscellaneous Changes
Add xmldocs for AvaloniaCompilationAssemblyProviderctor and GetAssemblies(). The API's usage misunderstood in AvaloniaVSCode's AvaloniaLanguageServer, causing builds to fail.
Typos in AvaloniaVS.Shared and Avalonia.Ide.CompletionEngine corrected where understood
Where affected by typos, Public API members' compatibility is maintained via aliases-like methods and properties ('=>' to correct definition). These aliases have been given the Obsolete annotation. Method aliases are aggressively in-lined.
TODO
Obsolete
symbols from AvaloniaVS.SharedAvaloniaVS.Shared\Models\ProjectOutputInfo.cs(30,10): Error CS0246: The type or namespace name 'ObsoleteAttribute' could not be found (are you missing a using directive or an assembly reference?)
AvaloniaVS.Shared\Models\ProjectOutputInfo.cs(30,10): Error CS0246: The type or namespace name 'Obsolete' could not be found (are you missing a using directive or an assembly reference?)
Features/Enhancements
Avalonia.Ide.CompletionEngine.Metadata.AddMetadata(Metadata metadata)
to merge dictionaries from one Metadata into another. Keys are only added if they are not already present. Existing keys' values remain unchanged. This can be used to add metadata from various build contexts e.g. TargetFrameworks (build for multiple frameworks) and if-else compiler statements. Some TODO comments indicate potential improvements. How do we indicate which context a metadatum came from?Miscellaneous Changes
AvaloniaCompilationAssemblyProvider
ctor
andGetAssemblies()
. The API's usage misunderstood in AvaloniaVSCode's AvaloniaLanguageServer, causing builds to fail.AvaloniaVS.Shared
andAvalonia.Ide.CompletionEngine
corrected where understoodObsolete
annotation. Method aliases are aggressively in-lined.