public static FileInfo GetXmlDocFile(Assembly assembly, XProject project) { if (String.IsNullOrEmpty(assembly.Location)) { // Maybe we should have a default directory to look at, or a list of directories ?? return(null); } string assemblyDirPath = Path.GetDirectoryName(assembly.Location); string fileName = Path.GetFileNameWithoutExtension(assembly.Location) + ".xml"; // First try at the same location as the Assembly FileInfo xmlFile = null; try { xmlFile = GetFallbackDirectories(CultureInfo.CurrentCulture) .Select(dirName => CombinePath(assemblyDirPath, dirName, fileName)) .Select(filePath => new FileInfo(filePath)) .Where(file => file.Exists) .First(); } catch { } // Ok, search in the "Reference Assemblies" folder if (xmlFile == null) { // string dllFile = Path.GetFileName(assembly.Location); List <AssemblyInfo> refs = project.AssemblyReferences; foreach (AssemblyInfo dllRef in refs) { if (String.Equals(dllRef.DisplayName, dllFile, StringComparison.InvariantCultureIgnoreCase)) { // Got it !! assemblyDirPath = Path.GetDirectoryName(dllRef.FileName); fileName = Path.GetFileNameWithoutExtension(dllRef.DisplayName) + ".xml"; // So, xml file should be here xmlFile = new FileInfo(Path.Combine(assemblyDirPath, fileName)); if (!xmlFile.Exists) { xmlFile = null; } break; } } } //// References assemblies are in %ProgramFiles(x86)% on //// 64 bit machines //var programFiles = Environment.GetEnvironmentVariable("ProgramFiles(x86)"); //if (string.IsNullOrEmpty(programFiles)) //{ // // On 32 bit machines they are in %ProgramFiles% // programFiles = Environment.GetEnvironmentVariable("ProgramFiles"); //} //if (string.IsNullOrEmpty(programFiles)) //{ // // Reference assemblies aren't installed // return null; //} //String prefixPath = Path.Combine(programFiles, "Reference Assemblies", "Microsoft", "Framework", ".NETFramework"); //xmlFile = new FileInfo( prefixPath ); //if (!xmlFile.Exists) // return null; return(xmlFile); }
public void Keys_Not_Null() { var target = new XProject(); Assert.NotNull(target.Keys); }
static public bool GetMemberParameters(MemberInfo member, XProject project, IList <string> names, IList <string> descriptions) { Assembly declarationAssembly = null; // if (member is Type) { declarationAssembly = ((Type)member).Assembly; } else if (member.DeclaringType != null) { declarationAssembly = member.DeclaringType.Assembly; } else { return(false); } // var file = XSharpXMLDocTools.GetXmlDocFile(declarationAssembly, project); if (file == null) { return(false); } try { string prefix = ""; string name = ""; switch (member.MemberType) { case MemberTypes.Method: prefix = "M:"; name = member.Name; var mi = member as MethodInfo; name += getParameterNames(mi.GetParameters(), member); break; case MemberTypes.Constructor: prefix = "M:"; name = "#ctor"; var ci = member as ConstructorInfo; name += getParameterNames(ci.GetParameters(), member); break; } if (!string.IsNullOrEmpty(name)) { uint id = 0; string xml = ""; int numparams = 0; IVsXMLMemberData data = null; var result = file.ParseMemberSignature(prefix + member.DeclaringType.FullName + "." + name, out id); if (result >= 0 && id != 0) { result = file.GetMemberXML(id, out xml); } if (result >= 0 && !String.IsNullOrEmpty(xml)) { result = file.GetMemberDataFromXML(xml, out data); } if (result >= 0 && data != null) { result = data.GetParamCount(out numparams); } if (result >= 0 && numparams != 0) { string paramName; string paramDesc; for (int i = 0; i < numparams; i++) { result = data.GetParamTextAt(i, out paramName, out paramDesc); names.Add(paramName); descriptions.Add(paramDesc); } } } } catch (Exception e) { XSharpProjectPackage.Instance.DisplayOutPutMessage("Exception in XSharpXMLDocMember.GetDocSummary"); XSharpProjectPackage.Instance.DisplayException(e); return(false); } return(true); }
public void Implements_IImageCache_Interface() { var target = new XProject(); Assert.True(target is IImageCache); }
public void Inherits_From_ObservableResource() { var target = new XProject(); Assert.True(target is ObservableResource); }
protected void SetProperties(IEnumerable <KeyValuePair <string, string> > properties, string condition, string label) { properties.ForEach(p => XProject.AddPropertyGroup(label, condition).SetProperty(p.Key, p.Value) ); }
/// <inheritdoc/> XProject IProjectFactory.GetProject() { var factory = this as IProjectFactory; var project = XProject.Create(); // Group Libraries var glBuilder = project.GroupLibraries.ToBuilder(); glBuilder.Add(XLibrary <XGroup> .Create("Default")); project.GroupLibraries = glBuilder.ToImmutable(); project.SetCurrentGroupLibrary(project.GroupLibraries.FirstOrDefault()); // Style Libraries var sgBuilder = project.StyleLibraries.ToBuilder(); sgBuilder.Add(DefaultStyleLibrary()); sgBuilder.Add(LinesStyleLibrary()); sgBuilder.Add(TemplateStyleLibrary()); project.StyleLibraries = sgBuilder.ToImmutable(); project.SetCurrentStyleLibrary(project.StyleLibraries.FirstOrDefault()); // Templates var templateBuilder = project.Templates.ToBuilder(); templateBuilder.Add(factory.GetTemplate(project, "Empty")); templateBuilder.Add(CreateGridTemplate(this, project, "Grid")); project.Templates = templateBuilder.ToImmutable(); project.SetCurrentTemplate(project.Templates.FirstOrDefault(t => t.Name == "Grid")); // Documents and Pages var document = factory.GetDocument(project, "Document"); var page = factory.GetPage(project, "Page"); var pageBuilder = document.Pages.ToBuilder(); pageBuilder.Add(page); document.Pages = pageBuilder.ToImmutable(); var documentBuilder = project.Documents.ToBuilder(); documentBuilder.Add(document); project.Documents = documentBuilder.ToImmutable(); project.Selected = document.Pages.FirstOrDefault(); // Databases var db = XDatabase.Create("Db"); var columnsBuilder = db.Columns.ToBuilder(); columnsBuilder.Add(XColumn.Create(db, "Column0")); columnsBuilder.Add(XColumn.Create(db, "Column1")); db.Columns = columnsBuilder.ToImmutable(); project.Databases = project.Databases.Add(db); project.SetCurrentDatabase(db); return(project); }
public void Templates_Not_Null() { var target = new XProject(); Assert.NotNull(target.Templates); }
public void Documents_Not_Null() { var target = new XProject(); Assert.NotNull(target.Documents); }
public void GroupLibraries_Not_Null() { var target = new XProject(); Assert.NotNull(target.GroupLibraries); }
public void Databases_Not_Null() { var target = new XProject(); Assert.NotNull(target.Databases); }
public void StyleLibraries_Not_Null() { var target = new XProject(); Assert.NotNull(target.StyleLibraries); }
public void Options_Not_Null() { var target = new XProject(); Assert.NotNull(target.Options); }
public void Inherits_From_Selectable() { var target = new XProject(); Assert.True(target is XSelectable); }
static public string GetMemberSummary(IXMember member, XProject project, out string returns, out string remarks) { string summary = null; returns = remarks = ""; if (member == null) { return(""); } // if (member is XMemberDefinition) { var xdef = (XMemberDefinition)member; var xml = xdef.XmlComments; var xfile = XSharpXMLDocTools.firstfile; if (xfile != null && !string.IsNullOrEmpty(xml)) { summary = getSummary(xfile, xml, out returns, out remarks); } return(summary); } if (!(member is XMemberReference)) { return(""); } var xmember = (XMemberReference)member; var declarationAssembly = xmember.Assembly; // var file = XSharpXMLDocTools.GetXmlDocFile(declarationAssembly, project); if (file == null) { return(null); } lastfile = file; var sig = xmember.XMLSignature; try { if (!string.IsNullOrEmpty(sig)) { uint id = 0; string xml = ""; var result = file.ParseMemberSignature(sig, out id); result = file.GetMemberXML(id, out xml); if (!string.IsNullOrEmpty(xml)) { summary = getSummary(file, xml, out returns, out remarks); } } } catch (Exception e) { XSharpProjectPackage.Instance.DisplayOutPutMessage("Exception in XSharpXMLDocMember.GetDocSummary"); XSharpProjectPackage.Instance.DisplayException(e); } // return(summary); }
/// <inheritdoc/> XDocument IProjectFactory.GetDocument(XProject project, string name) { var document = XDocument.Create(name); return(document); }
static public string GetMemberSummary(MemberInfo member, XProject project) { string summary = null; Assembly declarationAssembly = null; // if (member is Type) { declarationAssembly = ((Type)member).Assembly; } else if (member.DeclaringType != null) { declarationAssembly = member.DeclaringType.Assembly; } else { return(summary); } // var file = XSharpXMLDocTools.GetXmlDocFile(declarationAssembly, project); if (file == null) { return(null); } try { string prefix = ""; string name = ""; switch (member.MemberType) { case MemberTypes.Field: prefix = "F:"; name = member.Name; break; case MemberTypes.Property: prefix = "P:"; name = member.Name; break; case MemberTypes.Method: prefix = "M:"; name = member.Name; var mi = member as MethodInfo; name += getParameterNames(mi.GetParameters(), member); break; case MemberTypes.Constructor: prefix = "M:"; name = "#ctor"; var ci = member as ConstructorInfo; name += getParameterNames(ci.GetParameters(), member); break; case MemberTypes.Event: prefix = "E:"; name = member.Name; break; } if (!string.IsNullOrEmpty(name)) { uint id = 0; string xml = ""; IVsXMLMemberData data = null; var result = file.ParseMemberSignature(prefix + member.DeclaringType.FullName + "." + name, out id); if (result >= 0 && id != 0) { result = file.GetMemberXML(id, out xml); } if (result >= 0 && !String.IsNullOrEmpty(xml)) { result = file.GetMemberDataFromXML(xml, out data); } if (result >= 0 && data != null) { result = data.GetSummaryText(out summary); } } if (string.IsNullOrWhiteSpace(summary) && member is ConstructorInfo) { summary = GetTypeSummary(member.DeclaringType, project); } } catch (Exception e) { XSharpProjectPackage.Instance.DisplayOutPutMessage("Exception in XSharpXMLDocMember.GetDocSummary"); XSharpProjectPackage.Instance.DisplayException(e); } // return(summary); }
public XProject Save([FromBody] XProject project) { Contract.Requires(project != null); return(projectEngine.Save(project)); }