Skip to content

Commit

Permalink
Minor updates
Browse files Browse the repository at this point in the history
- Fixed the syntax generators so that they render ValueType information correctly using the updated reflection data sets.  Fixes #619.
- Increased the maximum recursion depth allowed when obtaining nested type info in MRefBuilder (updates a prior fix from 2012).  Fixes #572.
- Updated the GenerateInheritedDocs tool to omit the revisionHistory element when inheriting documentation from base types/members.  Fixes #615.
  • Loading branch information
EWSoftware committed Jul 8, 2018
1 parent aae07b3 commit 7be1424
Show file tree
Hide file tree
Showing 20 changed files with 133 additions and 72 deletions.
8 changes: 4 additions & 4 deletions Deployment/InstallerConfiguration.xml
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<!-- This indicates the version of Sandcastle with which this installer is associated.-->
<sandcastle version="v2018.5.29.0" />
<sandcastle version="v2018.7.8.0" />

<!-- Define the installer pages. Third-party build tool and component providers can add new pages that
they have created to install their own products as well. -->
Expand All @@ -12,8 +12,8 @@
executing installer. -->
<page type="Sandcastle.Installer.InstallerPages.WelcomePage" />
<page type="Sandcastle.Installer.InstallerPages.WhatsNewPage">
<whatsNew url="http://EWSoftware.github.io/SHFB/html/35a678ce-96c8-4d3a-a393-e084ff9c9110.htm"
description="Sandcastle Help File Builder and Tools v2018.5.29.0 Release Notes" />
<whatsNew url="http://EWSoftware.github.io/SHFB/html/3d4f4c7e-7e90-4bbd-8628-cabf62d6c29c.htm"
description="Sandcastle Help File Builder and Tools v2018.7.8.0 Release Notes" />
</page>
<page type="Sandcastle.Installer.InstallerPages.RequiredFrameworkPage" />
<page type="Sandcastle.Installer.InstallerPages.HelpFileFormatsPage">
Expand All @@ -22,7 +22,7 @@

<!-- Sandcastle Help File Builder and Tools installer pages -->
<page type="Sandcastle.Installer.InstallerPages.SandcastleHelpFileBuilderPage"
frameworkVersion="4.5" shfbVersion="2018.5.29.0" installerName="SandcastleHelpFileBuilder.msi"/>
frameworkVersion="4.5" shfbVersion="2018.7.8.0" installerName="SandcastleHelpFileBuilder.msi"/>
<page type="Sandcastle.Installer.InstallerPages.SHFBVisualStudioPackagePage"
frameworkVersion="4.5" packageGuid="c997d569-ee8e-4947-a46f-9a0717ce39a0">
<!-- These paths can be adjusted if you installed Visual Studio in a non-standard location. They must
Expand Down
2 changes: 1 addition & 1 deletion Documentation/SandcastleBuilder/CommonTokens.tokens
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<content xml:space="preserve" xmlns:ddue="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink">
<item id="BuildDate">{@BuildDate:MMMM d, yyyy}</item>
<item id="SandcastleVersion">v2018.5.29.0</item>
<item id="SandcastleVersion">v2018.7.8.0</item>
<item id="SHFB"><ddue:externalLink xmlns:ddue="http://ddue.schemas.microsoft.com/authoring/2003/5">
<ddue:linkText>Sandcastle Help File Builder</ddue:linkText>
<ddue:linkUri>https://GitHub.com/EWSoftware/SHFB</ddue:linkUri>
Expand Down
Expand Up @@ -16,6 +16,11 @@ review the release notes from all releases after it to the latest to find change
your project such as modifications to build component and plug-in configurations.</para>

<list class="bullet">
<listItem>
<para>
<link xlink:href="3d4f4c7e-7e90-4bbd-8628-cabf62d6c29c" />
</para>
</listItem>
<listItem>
<para>
<link xlink:href="35a678ce-96c8-4d3a-a393-e084ff9c9110" />
Expand Down
@@ -0,0 +1,37 @@
<?xml version="1.0" encoding="utf-8"?>
<topic id="3d4f4c7e-7e90-4bbd-8628-cabf62d6c29c" revisionNumber="1">
<developerConceptualDocument xmlns="http://ddue.schemas.microsoft.com/authoring/2003/5" xmlns:xlink="http://www.w3.org/1999/xlink">
<introduction>
<para>Release notes for version 2018.7.8.0.</para>
</introduction>

<section>
<title>Changes in This Release</title>
<content>

<list class="bullet">
<listItem>
<para>Fixed the syntax generators so that they render <codeInline>ValueType</codeInline> information
correctly using the updated reflection data sets.</para>
</listItem>

<listItem>
<para>Increased the maximum recursion depth allowed when obtaining nested type info in MRefBuilder
(updates a prior fix from 2012).</para>
</listItem>

<listItem>
<para>Updated the GenerateInheritedDocs tool to omit the <codeInline>revisionHistory</codeInline>
element when inheriting documentation from base types/members.</para>
</listItem>
</list>

</content>
</section>

<relatedTopics>
<link xlink:href="078cc1c7-7995-431e-bf9c-8813becbe8df" />
</relatedTopics>

</developerConceptualDocument>
</topic>
7 changes: 6 additions & 1 deletion Documentation/SandcastleBuilder/SandcastleBuilder.content
Expand Up @@ -1382,11 +1382,16 @@
<HelpKeyword index="K" term="support, donate" />
</HelpKeywords>
</Topic>
<Topic id="078cc1c7-7995-431e-bf9c-8813becbe8df" visible="True" isSelected="true" title="Version History">
<Topic id="078cc1c7-7995-431e-bf9c-8813becbe8df" visible="True" isExpanded="true" title="Version History">
<HelpKeywords>
<HelpKeyword index="K" term="History" />
<HelpKeyword index="K" term="Version History" />
</HelpKeywords>
<Topic id="3d4f4c7e-7e90-4bbd-8628-cabf62d6c29c" visible="True" isSelected="true" title="Version 2018.7.8.0">
<HelpKeywords>
<HelpKeyword index="K" term="versions, 2018.7.8.0" />
</HelpKeywords>
</Topic>
<Topic id="35a678ce-96c8-4d3a-a393-e084ff9c9110" visible="True" title="Version 2018.5.29.0">
<HelpKeywords>
<HelpKeyword index="K" term="versions, 2018.5.29.0" />
Expand Down
3 changes: 2 additions & 1 deletion Documentation/SandcastleBuilder/SandcastleBuilder.shfbproj
Expand Up @@ -33,7 +33,7 @@
<FeedbackEMailAddress>Eric%40EWoodruff.us</FeedbackEMailAddress>
<PresentationStyle>VS2013</PresentationStyle>
<SyntaxFilters>Standard</SyntaxFilters>
<HelpFileVersion>2018.5.29.0</HelpFileVersion>
<HelpFileVersion>2018.7.8.0</HelpFileVersion>
<ComponentConfigurations>
</ComponentConfigurations>
<DocumentationSources>
Expand Down Expand Up @@ -395,6 +395,7 @@
<None Include="Content\VersionHistory\v2017.1.28.0.aml" />
<None Include="Content\VersionHistory\v2018.5.14.0.aml" />
<None Include="Content\VersionHistory\v2018.5.29.0.aml" />
<None Include="Content\VersionHistory\v2018.7.8.0.aml" />
<None Include="Content\VisualStudio\GoToDefinition.aml" />
<None Include="Content\VisualStudio\ItemFileTemplates.aml" />
<None Include="Content\VisualStudio\FeatureComparison.aml" />
Expand Down
2 changes: 1 addition & 1 deletion NuGet/SHFB.nuspec
Expand Up @@ -6,7 +6,7 @@
<package xmlns="http://schemas.microsoft.com/packaging/2011/08/nuspec.xsd">
<metadata>
<id>EWSoftware.SHFB</id>
<version>2018.5.29.0</version>
<version>2018.7.8.0</version>
<title>Sandcastle Help File Builder</title>
<authors>Eric Woodruff</authors>
<owners>Eric Woodruff</owners>
Expand Down
Expand Up @@ -1478,30 +1478,22 @@ protected override void WriteTypeReference(XPathNavigator reference, SyntaxWrite

while(typeModifiers.MoveNext())
{
XPathNodeIterator args = reference.Select(specializationArgumentsExpression);
XPathNodeIterator args = typeModifiers.Current.Select(specializationArgumentsExpression);

while(args.MoveNext())
{
if(args.CurrentPosition > 1)
writer.WriteString(", ");

var elArgs = args.Current.Select(specializationArgumentsExpression);
var elementName = args.Current.GetAttribute("elementName", String.Empty);

while(elArgs.MoveNext())
if(elementName != null)
{
if(elArgs.CurrentPosition > 1)
writer.WriteString(", ");

var elementName = elArgs.Current.GetAttribute("elementName", String.Empty);

if(elementName != null)
{
writer.WriteString(elementName);
writer.WriteString(" As ");
}

WriteTypeReference(elArgs.Current, writer);
writer.WriteString(elementName);
writer.WriteString(" As ");
}

WriteTypeReference(args.Current, writer);
}
}

Expand Down
Expand Up @@ -882,30 +882,22 @@ protected override void WriteTypeReference(XPathNavigator reference, SyntaxWrite

while(typeModifiers.MoveNext())
{
XPathNodeIterator args = reference.Select(specializationArgumentsExpression);
XPathNodeIterator args = typeModifiers.Current.Select(specializationArgumentsExpression);

while(args.MoveNext())
{
if(args.CurrentPosition > 1)
writer.WriteString(", ");

var elArgs = args.Current.Select(specializationArgumentsExpression);
var elementName = args.Current.GetAttribute("elementName", String.Empty);

while(elArgs.MoveNext())
if(elementName != null)
{
if(elArgs.CurrentPosition > 1)
writer.WriteString(", ");

var elementName = elArgs.Current.GetAttribute("elementName", String.Empty);

if(elementName != null)
{
writer.WriteString(elementName);
writer.WriteString(" As ");
}

WriteTypeReference(elArgs.Current, writer);
writer.WriteString(elementName);
writer.WriteString(" As ");
}

WriteTypeReference(args.Current, writer);
}
}

Expand Down
1 change: 1 addition & 0 deletions SHFB/Source/GenerateInheritedDocs/GenerateInheritedDocs.cs
Expand Up @@ -612,6 +612,7 @@ private static void MergeComments(XPathNavigator fromMember, XPathNavigator toMe
break;

case "overloads":
case "revisionHistory":
// Ignore completely. We only need one.
break;

Expand Down
16 changes: 13 additions & 3 deletions SHFB/Source/MRefBuilder/CCI/Nodes.cs
Expand Up @@ -16,6 +16,7 @@
// ListTemplate.cs.
// 03/14/2014 - EFW - Fixed bug in TypeNode.GetMatchingMethod() reported by SHarwell.
// 08/23/2016 - EFW - Added support for reading source code context from PDB files
// 07/06/2018 - EFW - Increased the maximum allowed recursion depth related to the 04/04/2012 fix

using System.Collections;
using System.Collections.Generic;
Expand Down Expand Up @@ -9353,8 +9354,17 @@ internal virtual void AppendDocumentIdMangledName(StringBuilder/*!*/ sb, TypeNod
parentArgs.Add(consolidatedArguments[i]);
TypeNode declaringType = this.DeclaringType.GetGenericTemplateInstance(module, parentArgs);
TypeNode nestedType = declaringType.GetNestedType(this.Name);
if(nestedType == null) { Debug.Fail("template declaring type dummy instance does not have a nested type corresponding to template"); nestedType = this; }

if(nestedType == null)
{
// NOTE: If this fails, it might be exceeding the maximum recursion depth in TypeNode.NestedTypes.
// See the comments there for more details.
Debug.Fail("template declaring type dummy instance does not have a nested type corresponding to template");
nestedType = this;
}

if(m == 0) { Debug.Assert(nestedType.template != null); return nestedType; }

return nestedType.GetTemplateInstance(module, null, declaringType, myArgs);
}
public virtual TypeNode/*!*/ GetTemplateInstance(Module module, params TypeNode[] typeArguments)
Expand Down Expand Up @@ -9848,7 +9858,7 @@ public virtual TypeNodeList NestedTypes
// the stack. The problem is, we can't just ignore all subsequent recursions or it can
// throw a different error about a missing template type later on. The trick is to let it
// recurse enough to get all of the information it needs but not enough to overflow the
// stack. The full test case worked at 9 levels of recursion so 20 should be more than
// stack. The full test case worked at 9 levels of recursion so 100 should be more than
// enough for any case. It overflowed at 256 levels of recursion.
//
// The abbreviated example:
Expand All @@ -9873,7 +9883,7 @@ public virtual TypeNodeList NestedTypes
// you're wondering, the full test case was the Mass Transit project on GitHub which was
// being used as a reference assembly by the person that reported the error.
//
if(recursionCounter > 20)
if(recursionCounter > 100)
return null;

if(this.nestedTypes != null && (this.members == null || this.members.Count == this.memberCount))
Expand Down
Expand Up @@ -2,8 +2,8 @@
// System : Sandcastle Help File Builder Visual Studio Package
// File : BuildPropertiesPageControl.cs
// Author : Eric Woodruff
// Updated : 12/08/2017
// Note : Copyright 2011-2017, Eric Woodruff, All rights reserved
// Updated : 07/06/2018
// Note : Copyright 2011-2018, Eric Woodruff, All rights reserved
// Compiler: Microsoft Visual C#
//
// This user control is used to edit the Build category properties
Expand Down Expand Up @@ -226,7 +226,7 @@ protected override bool StoreControlValue(string propertyName)

e.ProjectLoaded = true;
e.PresentationStyle = presentationStyleProp?.UnevaluatedValue;
e.SyntaxFilters = syntaxFiltersProp?.UnevaluatedValue;
e.SyntaxFilters = (syntaxFiltersProp?.UnevaluatedValue ?? ComponentUtilities.DefaultSyntaxFilter);
}
#endregion
}
Expand Down
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="utf-8"?>
<PackageManifest Version="2.0.0" xmlns="http://schemas.microsoft.com/developer/vsx-schema/2011" xmlns:d="http://schemas.microsoft.com/developer/vsx-schema-design/2011">
<Metadata>
<Identity Id="c997d569-ee8e-4947-a46f-9a0717ce39a0" Version="2018.5.29.0" Language="en-US" Publisher="EWSoftware" />
<Identity Id="c997d569-ee8e-4947-a46f-9a0717ce39a0" Version="2018.7.8.0" Language="en-US" Publisher="EWSoftware" />
<DisplayName>SHFB</DisplayName>
<Description xml:space="preserve">Visual Studio integration for the Sandcastle Help File Builder.</Description>
<MoreInfo>https://ewsoftware.github.io/SHFB/html/bd1ddb51-1c4f-434f-bb1a-ce2135d3a909.htm</MoreInfo>
Expand Down
Expand Up @@ -2,7 +2,7 @@
// System : Sandcastle Help File Builder
// File : AssemblyInfoShared.cs
// Author : Eric Woodruff (Eric@EWoodruff.us)
// Updated : 05/29/2018
// Updated : 07/08/2018
// Note : Copyright 2006-2018, Eric Woodruff, All rights reserved
// Compiler: Microsoft Visual C#
//
Expand Down Expand Up @@ -91,13 +91,13 @@ internal static partial class AssemblyInfo
//
// This is used to set the assembly file version. This will change with each new release. MSIs only
// support a Major value between 0 and 255 so we drop the century from the year on this one.
public const string FileVersion = "18.5.29.0";
public const string FileVersion = "18.7.8.0";

// Common product version
//
// This may contain additional text to indicate Alpha or Beta states. The version number will always match
// the file version above but includes the century on the year.
public const string ProductVersion = "2018.5.29.0";
public const string ProductVersion = "2018.7.8.0";

// Assembly copyright information
public const string Copyright = "Copyright \xA9 2006-2018, Eric Woodruff, All Rights Reserved";
Expand Down
Expand Up @@ -660,29 +660,21 @@ protected virtual void WriteTypeReference(XPathNavigator reference, SyntaxWriter

while(typeModifiers.MoveNext())
{
XPathNodeIterator args = reference.Select(specializationArgumentsExpression);
XPathNodeIterator args = typeModifiers.Current.Select(specializationArgumentsExpression);

while(args.MoveNext())
{
if(args.CurrentPosition > 1)
writer.WriteString(", ");

var elArgs = args.Current.Select(specializationArgumentsExpression);
WriteTypeReference(args.Current, writer);

while(elArgs.MoveNext())
{
if(elArgs.CurrentPosition > 1)
writer.WriteString(", ");

WriteTypeReference(elArgs.Current, writer);
var elementName = args.Current.GetAttribute("elementName", String.Empty);

var elementName = elArgs.Current.GetAttribute("elementName", String.Empty);

if(elementName != null)
{
writer.WriteString(" ");
writer.WriteString(elementName);
}
if(elementName != null)
{
writer.WriteString(" ");
writer.WriteString(elementName);
}
}
}
Expand Down
6 changes: 3 additions & 3 deletions SHFB/Source/SandcastleCore/Properties/AssemblyInfoShared.cs
@@ -1,7 +1,7 @@
//===============================================================================================================
// System : Sandcastle Tools
// File : AssemblyInfoShared.cs
// Updated : 05/29/2018
// Updated : 07/08/2018
// Note : Copyright 2006-2018, Microsoft Corporation, All rights reserved
//
// Sandcastle tools common assembly attributes.
Expand Down Expand Up @@ -73,13 +73,13 @@ internal static partial class AssemblyInfo
//
// This is used to set the assembly file version. This will change with each new release. MSIs only
// support a Major value between 0 and 255 so we drop the century from the year on this one.
public const string FileVersion = "18.5.29.0";
public const string FileVersion = "18.7.8.0";

// Common product version
//
// This may contain additional text to indicate Alpha or Beta states. The version number will always match
// the file version above but includes the century on the year.
public const string ProductVersion = "2018.5.29.0";
public const string ProductVersion = "2018.7.8.0";

// Assembly copyright information
public const string Copyright = "Copyright \xA9 2006-2018, Microsoft Corporation, All Rights Reserved.\r\n" +
Expand Down

0 comments on commit 7be1424

Please sign in to comment.