/// <summary> /// Creates a file node for a project element. /// </summary> /// <param name="element">The project element.</param> /// <returns>An instance of the <see cref="DependentFileNode"/> class.</returns> public override DependentFileNode CreateDependentFileNode(ProjectElement element) { if (element == null) { throw new ArgumentNullException("element"); } string subType = element.GetMetadata(ProjectFileConstants.SubType); if (subType == MultiverseInterfaceSubType.Code) { DependentFileNode node = new MultiverseInterfaceIronPythonDependentFileNode(this, element); IPythonLanguageService languageService = (IPythonLanguageService)this.GetService(typeof(IPythonLanguageService)); // Make sure the language service is available if (languageService != null) { languageService.AddPythonFile(node.GetMkDocument()); } return(node); } return(base.CreateDependentFileNode(element)); }
/// <summary> /// Creates a file node for a project element. /// </summary> /// <param name="element">The project element.</param> /// <returns>An instance of the <see cref="FileNode"/> class.</returns> public override FileNode CreateFileNode(ProjectElement element) { if (element == null) { throw new ArgumentNullException("element"); } MultiverseInterfaceFileNode node = null; // Get the SubType for the project element. string subType = element.GetMetadata(ProjectFileConstants.SubType); switch (subType) { case MultiverseInterfaceSubType.Code: node = new MultiverseInterfacePythonFileNode(this, element); break; case MultiverseInterfaceSubType.Frame: node = new MultiverseInterfaceXmlFileNode(this, element); break; case MultiverseInterfaceSubType.TableOfContents: node = new MultiverseInterfaceTocFileNode(this, element); break; default: // We could not recognize the file subtype, just create a WowFileNode node = new MultiverseInterfaceFileNode(this, element); break; } // Check whether this file should be added to the language service if (subType == MultiverseInterfaceSubType.Frame || subType == MultiverseInterfaceSubType.Code) { IPythonLanguageService languageService = (IPythonLanguageService)this.GetService(typeof(IPythonLanguageService)); // Make sure the language service is available if (languageService != null) { switch (subType) { case MultiverseInterfaceSubType.Frame: languageService.AddFrameXmlFile(node.GetMkDocument()); break; case MultiverseInterfaceSubType.Code: languageService.AddPythonFile(node.GetMkDocument()); break; } } } return(node); }