private static DataIndexEntryNode DataIndexEntry(string filePath, CatalogueBaseNode node, DataIndexEntryKind dataType) { return(DataIndexEntry( filePath: filePath, dataType: dataType, dataId: node.Id, dataName: node.Name, dataBattleScribeVersion: node.BattleScribeVersion, dataRevision: node.Revision)); }
public CatalogueBaseNode Convert(CatalogueBaseNode node) { var(profiles, rules) = ConvertRulesAndProfiles(node.Profiles.NodeList, node.Rules.NodeList); var(sharedProfiles, sharedRules) = ConvertRulesAndProfiles(node.SharedProfiles.NodeList, node.SharedRules.NodeList); var infoLinks = ConvertLinks(node.InfoLinks).ToArray(); var selectionEntries = node.SelectionEntries.Select(ConvertSelectionEntryBase).ToArray(); var sharedSelectionEntries = node.SharedSelectionEntries.Select(ConvertSelectionEntryBase).ToArray(); var sharedSelectionEntryGroups = node.SharedSelectionEntryGroups.Select(ConvertSelectionEntryBase).ToArray(); var newNode = node .WithProfiles(profiles) .WithRules(rules) .WithSharedProfiles(sharedProfiles) .WithSharedRules(sharedRules) .WithSharedSelectionEntries(sharedSelectionEntries) .WithSharedSelectionEntryGroups(sharedSelectionEntryGroups) .WithSelectionEntries(selectionEntries); return(newNode); }
protected CatalogueBaseSymbol( SourceGlobalNamespaceSymbol containingSymbol, CatalogueBaseNode declaration, DiagnosticBag diagnostics) : base(containingSymbol, declaration) { ContainingNamespace = containingSymbol; Declaration = declaration; costTypes = declaration.CostTypes.Select(x => new CostTypeSymbol(this, x, diagnostics)).ToImmutableArray(); profileTypes = declaration.ProfileTypes.Select(x => new ProfileTypeSymbol(this, x, diagnostics)).ToImmutableArray(); publications = declaration.Publications.Select(x => new PublicationSymbol(this, x, diagnostics)).ToImmutableArray(); RootContainerEntries = CreateRootContainerEntries().ToImmutableArray(); RootResourceEntries = CreateRootResourceEntries().ToImmutableArray(); SharedSelectionEntryContainers = CreateSharedContainerEntries().ToImmutableArray(); SharedResourceEntries = CreateSharedResourceEntries().ToImmutableArray(); IEnumerable <IContainerEntrySymbol> CreateRootContainerEntries() { foreach (var item in declaration.SelectionEntries) { yield return(EntrySymbol.CreateEntry(this, item, diagnostics)); } foreach (var item in declaration.EntryLinks) { yield return(EntrySymbol.CreateEntry(this, item, diagnostics)); } foreach (var item in declaration.ForceEntries) { yield return(EntrySymbol.CreateEntry(this, item, diagnostics)); } foreach (var item in declaration.CategoryEntries) { yield return(EntrySymbol.CreateEntry(this, item, diagnostics)); } } IEnumerable <IResourceEntrySymbol> CreateRootResourceEntries() { foreach (var item in declaration.Rules) { yield return(EntrySymbol.CreateEntry(this, item, diagnostics)); } } IEnumerable <ISelectionEntryContainerSymbol> CreateSharedContainerEntries() { foreach (var item in declaration.SharedSelectionEntries) { yield return(EntrySymbol.CreateEntry(this, item, diagnostics)); } foreach (var item in declaration.SharedSelectionEntryGroups) { yield return(EntrySymbol.CreateEntry(this, item, diagnostics)); } } IEnumerable <IResourceEntrySymbol> CreateSharedResourceEntries() { foreach (var item in declaration.SharedInfoGroups) { yield return(EntrySymbol.CreateEntry(this, item, diagnostics)); } foreach (var item in declaration.SharedProfiles) { yield return(EntrySymbol.CreateEntry(this, item, diagnostics)); } foreach (var item in declaration.SharedRules) { yield return(EntrySymbol.CreateEntry(this, item, diagnostics)); } } }
private CatalogueBaseSymbol GetCatalogueSymbol(CatalogueBaseNode node) { return(Compilation.SourceGlobalNamespace.Catalogues .First(x => x.Declaration == node)); }