public bool TryGetSymbolDefinitionByName(string name, out IntermediateSymbolDefinition symbolDefinition) { // First, look in the built-ins. symbolDefinition = SymbolDefinitions.ByName(name); if (symbolDefinition == null) { if (this.ExtensionData == null) { this.LoadExtensionData(); } // Second, look in the extensions. foreach (var data in this.ExtensionData) { if (data.TryGetSymbolDefinitionByName(name, out symbolDefinition)) { break; } } // Finally, look in the custom symbol definitions provided during an intermediate load. if (symbolDefinition == null) { this.CustomDefinitionByName.TryGetValue(name, out symbolDefinition); } } return(symbolDefinition != null); }
public void CanCreateFileSymbolByName() { var symbol = SymbolDefinitions.ByName("File").CreateSymbol(); Assert.IsType <FileSymbol>(symbol); Assert.Same(SymbolDefinitions.File, symbol.Definition); }