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);
        }