public override XElement ToXml() { var result = base.ToXml(); var serviceDefinition = XamlDefinition.ToXElement(); serviceDefinition.Name = "XamlDefinition"; result.Add(new XElement("Comment", Comment ?? string.Empty)); result.Add(new XElement("IconPath", IconPath ?? string.Empty)); result.Add(new XElement("Tags", Tags ?? string.Empty)); result.Add(new XElement("HelpLink", HelpLink ?? string.Empty)); result.Add(DataList); result.Add(new XElement("Action", new XAttribute("Name", "InvokeWorkflow"), new XAttribute("Type", "Workflow"), serviceDefinition) ); return(result); }
private async Task <LSP.Location[]> GetLocationsAsync(XamlDefinition definition, RequestContext context, CancellationToken cancellationToken) { using var _ = ArrayBuilder <LSP.Location> .GetInstance(out var locations); if (definition is XamlSourceDefinition sourceDefinition) { locations.AddIfNotNull(await GetSourceDefinitionLocationAsync(sourceDefinition, context, cancellationToken).ConfigureAwait(false)); } else if (definition is XamlSymbolDefinition symbolDefinition) { locations.AddRange(await GetSymbolDefinitionLocationsAsync(symbolDefinition, context, _metadataAsSourceFileService, cancellationToken).ConfigureAwait(false)); } else { throw new InvalidOperationException($"Unexpected {nameof(XamlDefinition)} Type"); } return(locations.ToArray()); }