summaryrefslogtreecommitdiffstats
path: root/tools/Sandcastle/Source/BuildAssembler/BuildComponents
diff options
context:
space:
mode:
Diffstat (limited to 'tools/Sandcastle/Source/BuildAssembler/BuildComponents')
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/BuildComponents.csproj2
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/BuildComponents.csproj.vspscc10
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/CloneComponent.cs7
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/CodeReference.cs6
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/CopyFromFileComponent.cs7
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/CopyFromFiles.cs7
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/CopyFromIndexComponent.cs13
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/DisplayComponent.cs7
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/ExampleComponent.cs16
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/ForEachComponent.cs18
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/GlobalSuppressions.cs319
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/HxfGeneratorComponent.cs19
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/IfThenComponent.cs23
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/IndexedFileCache.cs7
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/IntellisenseComponent.cs23
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/IntellisenseComponent2.cs49
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/LiveExampleComponent.cs14
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/Makefile.org13
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/Microsoft.Ddue.Tools.BuildComponents.asmmeta1255
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/MsdnResolver.cs9
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/PlatformsComponent.cs33
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/Properties/AssemblyInfo.cs13
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/References.cs23
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/ResolveArtLinksComponent.cs7
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/ResolveConceptualLinksComponent.cs7
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/ResolveReferenceLinksComponent2.cs32
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/SaveComponent.cs7
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/SharedContentComponent.cs7
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/SnippetComponent.cs1223
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/SwitchComponent.cs20
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/SyntaxComponent.cs9
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/TargetCollection.cs339
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/Targets.cs70
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/TaskGrabberComponent.cs9
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/TransformComponent.cs7
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/ValidateComponent.cs7
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/WdxResolveConceptualLinksComponent.cs7
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/makefile13
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/makefile.inc2
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/placefile1
-rw-r--r--tools/Sandcastle/Source/BuildAssembler/BuildComponents/plan.txt62
41 files changed, 2138 insertions, 1584 deletions
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/BuildComponents.csproj b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/BuildComponents.csproj
index 7b3191e..9e3932f 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/BuildComponents.csproj
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/BuildComponents.csproj
@@ -86,6 +86,7 @@
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
+ <Compile Include="GlobalSuppressions.cs" />
<Compile Include="HxfGeneratorComponent.cs" />
<Compile Include="IntellisenseComponent2.cs" />
<Compile Include="MsdnResolver.cs" />
@@ -110,6 +111,7 @@
<Compile Include="ResolveConceptualLinksComponent.cs" />
<Compile Include="SaveComponent.cs" />
<Compile Include="SharedContentComponent.cs" />
+ <Compile Include="SnippetComponent.cs" />
<Compile Include="SwitchComponent.cs" />
<Compile Include="SyntaxComponent.cs" />
<Compile Include="TargetCollection.cs" />
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/BuildComponents.csproj.vspscc b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/BuildComponents.csproj.vspscc
deleted file mode 100644
index b6d3289..0000000
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/BuildComponents.csproj.vspscc
+++ /dev/null
@@ -1,10 +0,0 @@
-""
-{
-"FILE_VERSION" = "9237"
-"ENLISTMENT_CHOICE" = "NEVER"
-"PROJECT_FILE_RELATIVE_PATH" = ""
-"NUMBER_OF_EXCLUDED_FILES" = "0"
-"ORIGINAL_PROJECT_FILE_PATH" = ""
-"NUMBER_OF_NESTED_PROJECTS" = "0"
-"SOURCE_CONTROL_SETTINGS_PROVIDER" = "PROVIDER"
-}
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CloneComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CloneComponent.cs
index c97d68d..d22ccf5 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CloneComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CloneComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.Configuration;
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CodeReference.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CodeReference.cs
index 974a28d..c0cbd11 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CodeReference.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CodeReference.cs
@@ -1,5 +1,7 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
using System;
using System.Text.RegularExpressions;
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CopyFromFileComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CopyFromFileComponent.cs
index 54d26e0..2c4eedb 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CopyFromFileComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CopyFromFileComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.Configuration;
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CopyFromFiles.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CopyFromFiles.cs
index 788fafd..b05903d 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CopyFromFiles.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CopyFromFiles.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.IO;
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CopyFromIndexComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CopyFromIndexComponent.cs
index abb3644..bf19dc8 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CopyFromIndexComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/CopyFromIndexComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.Configuration;
@@ -186,7 +189,7 @@ namespace Microsoft.Ddue.Tools {
{
WriteMessage(MessageLevel.Error, String.Format("An error occured while attempting to instantiate the type '{0}' in the assembly '{1}'. The error message is: {2}", type_name, assembly_path, e.InnerException.Message));
}
- catch (InvalidCastException e)
+ catch (InvalidCastException)
{
WriteMessage(MessageLevel.Error, String.Format("The type '{0}' in the assembly '{1}' is not a SyntaxGenerator.", type_name, assembly_path));
}
@@ -484,8 +487,8 @@ namespace Microsoft.Ddue.Tools {
// load the document
try {
- XPathDocument document = new XPathDocument(file, XmlSpace.Preserve);
- //XPathDocument document = new XPathDocument(file);
+ //XPathDocument document = new XPathDocument(file, XmlSpace.Preserve);
+ XPathDocument document = new XPathDocument(file);
// search for value nodes
XPathNodeIterator valueNodes = document.CreateNavigator().Select(cache.ValueExpression);
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/DisplayComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/DisplayComponent.cs
index a6d9ca2..33f0934 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/DisplayComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/DisplayComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Xml;
using System.Xml.XPath;
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ExampleComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ExampleComponent.cs
index d0d52d9..9ab0be7 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ExampleComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ExampleComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Configuration;
using System.Collections.Generic;
@@ -453,8 +456,6 @@ namespace Microsoft.Ddue.Tools {
private string text;
- private Region[] regions;
-
private string language;
public string Text {
@@ -468,13 +469,6 @@ namespace Microsoft.Ddue.Tools {
return(language);
}
}
-
- public Region[] Regions {
- get {
- return(regions);
- }
- }
-
}
internal class ColorizationRule {
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ForEachComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ForEachComponent.cs
index d073daf..06705e8 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ForEachComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ForEachComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.Configuration;
@@ -88,12 +91,13 @@ namespace Microsoft.Ddue.Tools {
}
}
-
- public override void Dispose () {
- foreach (BuildComponent component in components) {
- component.Dispose();
+ protected override void Dispose(bool disposing) {
+ if (disposing) {
+ foreach (BuildComponent component in components) {
+ component.Dispose();
+ }
}
- base.Dispose();
+ base.Dispose(disposing);
}
}
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/GlobalSuppressions.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/GlobalSuppressions.cs
new file mode 100644
index 0000000..3fd693e
--- /dev/null
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/GlobalSuppressions.cs
@@ -0,0 +1,319 @@
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
+// This file is used by Code Analysis to maintain SuppressMessage
+// attributes that are applied to this project.
+// Project-level suppressions either have no target or are given
+// a specific target and scoped to a namespace, type, member, etc.
+//
+// To add a suppression to this file, right-click the message in the
+// Error List, point to "Suppress Message(s)", and click
+// "In Project Suppression File".
+// You do not need to add suppressions to this file manually.
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Ddue", Scope = "namespace", Target = "Microsoft.Ddue.Tools")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA2210:AssembliesShouldHaveValidStrongNames")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToInt32(System.String)", Scope = "member", Target = "BuildComponents.ArrayTypeReference.#Create(System.Xml.XmlReader)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "apidata", Scope = "member", Target = "BuildComponents.NamespaceTarget.#Create(System.Xml.XmlReader)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2211:NonConstantFieldsShouldNotBeVisible", Scope = "member", Target = "BuildComponents.Reference.#referenceApiExpression")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Refered", Scope = "member", Target = "BuildComponents.ReferenceTypeReference.#ReferedToType")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "BuildComponents.SimpleMemberReference.#.ctor(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2211:NonConstantFieldsShouldNotBeVisible", Scope = "member", Target = "BuildComponents.Target.#apiNameExpression")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "BuildComponents.TemplateTypeReference.#.ctor(BuildComponents.ISimpleReference,System.Int32)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "member", Target = "BuildComponents.TemplateTypeReference.#.ctor(System.String,System.Int32)")]
+
+// TODO: revisit
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "BuildComponents.TemplateTypeReference.#.ctor(System.String,System.Int32)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "templateId", Scope = "member", Target = "BuildComponents.TemplateTypeReference.#.ctor(System.String,System.Int32)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Scope = "member", Target = "BuildComponents.TemplateTypeReference.#position")]
+
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToInt32(System.String)", Scope = "member", Target = "BuildComponents.TypeReference.#Create(System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "BuildComponents.TypeReference.#Create(System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "member", Target = "BuildComponents.TypeTarget.#containingAssembly")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "member", Target = "BuildComponents.TypeTarget.#containingNamespace")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "member", Target = "BuildComponents.TypeTarget.#containingType")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "member", Target = "BuildComponents.TypeTarget.#subgroup")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Scope = "member", Target = "Microsoft.Ddue.Tools.ArtTarget.#Id")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "ddue", Scope = "member", Target = "Microsoft.Ddue.Tools.CodeReference.#.ctor(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Ddue", Scope = "member", Target = "Microsoft.Ddue.Tools.CodeReference.#DdueCodeReference")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods", Scope = "member", Target = "Microsoft.Ddue.Tools.CodeReference.#Type")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "member", Target = "Microsoft.Ddue.Tools.ConceptualLinkInfo.#.ctor()")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.ConceptualLinkInfo.#ShowText")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "Microsoft.Ddue.Tools.ConstructorTarget.#Parameters")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1012:AbstractTypesShouldNotHaveConstructors", Scope = "type", Target = "Microsoft.Ddue.Tools.CopyComponent")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "configuration", Scope = "member", Target = "Microsoft.Ddue.Tools.CopyComponent.#.ctor(System.Xml.XPath.XPathNavigator,System.Collections.Generic.Dictionary`2<System.String,System.Object>)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "data", Scope = "member", Target = "Microsoft.Ddue.Tools.CopyComponent.#.ctor(System.Xml.XPath.XPathNavigator,System.Collections.Generic.Dictionary`2<System.String,System.Object>)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1059:MembersShouldNotExposeCertainConcreteTypes", MessageId = "System.Xml.XmlNode", Scope = "member", Target = "Microsoft.Ddue.Tools.CopyComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.CopyFromFileComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.CopyFromFilesComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", MessageId = "System.Reflection.Assembly.LoadFrom", Scope = "member", Target = "Microsoft.Ddue.Tools.CopyFromIndexComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "Microsoft.Ddue.Tools.CopyFromIndexComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToBoolean(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.CopyFromIndexComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToInt32(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.CopyFromIndexComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.CopyFromIndexComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.CopyFromIndexComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.CopyFromIndexComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.ToLower", Scope = "member", Target = "Microsoft.Ddue.Tools.CopyFromIndexComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.CopyFromIndexComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.CopyFromIndexComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "member", Target = "Microsoft.Ddue.Tools.CopySet.#.ctor(Microsoft.Ddue.Tools.IndexedFileCache,System.String,System.String,System.Xml.XmlNamespaceManager)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.CopySet.#FileCache")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.CopySet.#GetTargetExpression(System.Xml.XPath.XPathNavigator,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.DisplayComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ExampleComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ExampleComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object[])", Scope = "member", Target = "Microsoft.Ddue.Tools.ExampleComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ExampleComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "member", Target = "Microsoft.Ddue.Tools.ExampleComponent.#IsLegalXmlCharacter(System.Char)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ExampleComponent.#LoadContent(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ExampleComponent.#LoadContent(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "hxf", Scope = "member", Target = "Microsoft.Ddue.Tools.FileCreatedEventArgs.#.ctor(System.String,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Hxf", Scope = "member", Target = "Microsoft.Ddue.Tools.FileCreatedEventArgs.#HxfPath")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ForEachComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Hxf", Scope = "type", Target = "Microsoft.Ddue.Tools.HxfGeneratorComponent")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.HxfGeneratorComponent.#WriteFile(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1012:AbstractTypesShouldNotHaveConstructors", Scope = "type", Target = "Microsoft.Ddue.Tools.InclusionFilter")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2211:NonConstantFieldsShouldNotBeVisible", Scope = "member", Target = "Microsoft.Ddue.Tools.InclusionFilter.#apiNameExpression")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2211:NonConstantFieldsShouldNotBeVisible", Scope = "member", Target = "Microsoft.Ddue.Tools.InclusionFilter.#apiParameterNodesExpression")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2211:NonConstantFieldsShouldNotBeVisible", Scope = "member", Target = "Microsoft.Ddue.Tools.InclusionFilter.#apiParameterTemplateNameExpression")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2211:NonConstantFieldsShouldNotBeVisible", Scope = "member", Target = "Microsoft.Ddue.Tools.InclusionFilter.#apiParameterTypeNameExpression")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "member", Target = "Microsoft.Ddue.Tools.InclusionFilter.#sourceFiles")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1002:DoNotExposeGenericLists", Scope = "member", Target = "Microsoft.Ddue.Tools.InclusionFilter.#sourceFiles")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.IndexedDocument.#.ctor(Microsoft.Ddue.Tools.IndexedDocumentCache,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.IndexedDocumentCache.#.ctor(Microsoft.Ddue.Tools.CopyFromIndexComponent,System.String,System.String,System.Xml.XmlNamespaceManager,System.Int32)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.IndexedDocumentCache.#AddDocument(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.IndexedFile.#.ctor(System.String,System.Xml.XPath.XPathExpression,System.Xml.XPath.XPathExpression)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.IndexedFile.#GetContent(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.IndexedFile.#ListNode")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.IndexedFile.#ListNode")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1812:AvoidUninstantiatedInternalClasses", Scope = "type", Target = "Microsoft.Ddue.Tools.IndexedFileCache")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.Compare(System.String,System.String,System.Boolean)", Scope = "member", Target = "Microsoft.Ddue.Tools.ReferenceLinkInfo2.#Create(System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.Compare(System.String,System.String,System.Boolean)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveReferenceLinksComponent2.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.Compare(System.String,System.String,System.Boolean)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveReferenceLinksComponent2.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.ToLower", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveArtLinksComponent.#AddTargets(System.String,System.String,System.String,System.Xml.XPath.XPathExpression,System.String,System.Xml.XPath.XPathExpression,System.Xml.XPath.XPathExpression)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.ToLower", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveArtLinksComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.ToLower", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveConceptualLinksComponent.#ResolveConceptualLinks(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.ToLower", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentComponent.#LoadContent(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.ToLower", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentComponent.#ResolveContent(System.Xml.XmlDocument,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.ToLower", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetIdentifier.#.ctor(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.ToLower", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetIdentifier.#.ctor(System.String,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToBoolean(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.MemberFilter.#AddMemberNode(System.Xml.XmlReader,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToBoolean(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.MemberFilter.#.ctor(System.Xml.XmlReader,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToBoolean(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.NamespaceFilter.#AddNamespaceNode(System.Xml.XmlReader,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToBoolean(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.NamespaceFilter.#.ctor(System.Xml.XmlReader,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToBoolean(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.OverloadFilter.#.ctor(System.Xml.XmlReader,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToBoolean(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveConceptualLinksComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToBoolean(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.SaveComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToBoolean(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.TransformComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToBoolean(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.TypeFilter.#AddTypeNode(System.Xml.XmlReader,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToBoolean(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.TypeFilter.#.ctor(System.Xml.XmlReader,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToBoolean(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.VersionFilter.#AddPlatformNode(System.Xml.XmlReader,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToBoolean(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.WdxResolveConceptualLinksComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToInt32(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#CreateTypeReference(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToInt32(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.XmlTargetCollectionUtilities.#CreateTypeReference(System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Int32.ToString", Scope = "member", Target = "Microsoft.Ddue.Tools.LinkTextResolver.#WriteArrayType(Microsoft.Ddue.Tools.ArrayTypeReference,Microsoft.Ddue.Tools.DisplayOptions,System.Xml.XmlWriter,System.Collections.Generic.Dictionary`2<Microsoft.Ddue.Tools.IndexedTemplateTypeReference,Microsoft.Ddue.Tools.TypeReference>)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent.#ReadInputFile(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent2.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent2.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent2.#ReadInputFile(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.LinkTextResolver.#GetTypeTemplateName(Microsoft.Ddue.Tools.SimpleTypeReference,System.Int32)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.LiveExampleComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.LiveExampleComponent.#LoadApprovedFile(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.PlatformsComponent.#ParseDocuments(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveArtLinksComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveArtLinksComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveConceptualLinksComponent.#BrokenLinkDisplayText(System.String,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveConceptualLinksComponent.#ResolveConceptualLinks(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveConceptualLinksComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveReferenceLinksComponent2.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveReferenceLinksComponent2.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentComponent.#LoadContent(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentComponent.#ParseDocuments(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SyntaxComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.TaskGrabberComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#CreateSpecializedTypeReference(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#FindMatchingEndBracket(System.String,System.Int32)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#.cctor()")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ValidateComponent.#LogValidationError(System.Object,System.Xml.Schema.ValidationEventArgs)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.WdxResolveConceptualLinksComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.WdxResolveConceptualLinksComponent+TargetSet.#Lookup(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.WdxResolveConceptualLinksComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.XmlTargetCollectionUtilities.#CreateEnumerationTarget(System.Xml.XPath.XPathNavigator,Microsoft.Ddue.Tools.LinkType2)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.XmlTargetCollectionUtilities.#CreateTarget(System.Xml.XPath.XPathNavigator,Microsoft.Ddue.Tools.LinkType2)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.XmlTargetCollectionUtilities.#CreateTypeReference(System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent.#ReadInputFile(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent2.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent2.#ReadInputFile(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.LiveExampleComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.LiveExampleComponent.#LoadApprovedFile(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.MsdnResolver.#GetMsdnUrl(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.PlatformsComponent.#ParseDocuments(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveArtLinksComponent.#AddTargets(System.String,System.String,System.String,System.Xml.XPath.XPathExpression,System.String,System.Xml.XPath.XPathExpression,System.Xml.XPath.XPathExpression)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveArtLinksComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveConceptualLinksComponent.#CompileXPathExpression(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveReferenceLinksComponent2.#AddTargets(System.String,Microsoft.Ddue.Tools.LinkType2)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveReferenceLinksComponent2.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SaveComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentComponent.#GetContent(System.String,System.String[])")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentComponent.#LoadContent(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentComponent.#ParseDocuments(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentComponent.#ResolveContent(System.Xml.XmlDocument,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetIdentifier.#ToString()")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SyntaxComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.TaskGrabberComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#FindMatchingEndBracket(System.String,System.Int32)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#.cctor()")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.TransformComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.WdxResolveConceptualLinksComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.WdxResolveConceptualLinksComponent.#CompileXPathExpression(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.LiveExampleComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SyntaxComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.TaskGrabberComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.TaskGrabberComponent.#ParseDocument(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#CreateMemberReference(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#.cctor()")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object[])", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentComponent.#GetContent(System.String,System.String[])")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object[])", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#.cctor()")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object[])", Scope = "member", Target = "Microsoft.Ddue.Tools.TransformComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.IO.StringWriter.#ctor", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveReferenceLinksComponent2.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1307:SpecifyStringComparison", MessageId = "System.String.IndexOf(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent.#CopyContent(System.Xml.XmlReader,System.Xml.XmlWriter)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1307:SpecifyStringComparison", MessageId = "System.String.StartsWith(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent.#CopyContent(System.Xml.XmlReader,System.Xml.XmlWriter)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1307:SpecifyStringComparison", MessageId = "System.String.Compare(System.String,System.String,System.Boolean)", Scope = "member", Target = "Microsoft.Ddue.Tools.ReferenceLinkInfo2.#Create(System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1307:SpecifyStringComparison", MessageId = "System.String.Compare(System.String,System.String,System.Boolean)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveReferenceLinksComponent2.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1307:SpecifyStringComparison", MessageId = "System.String.Compare(System.String,System.String,System.Boolean)", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveReferenceLinksComponent2.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1307:SpecifyStringComparison", MessageId = "System.String.StartsWith(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#CreateTypeReference(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1307:SpecifyStringComparison", MessageId = "System.String.IndexOf(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.TaskGrabberComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Param", Scope = "member", Target = "Microsoft.Ddue.Tools.OverloadFilter.#ParamNames")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Param", Scope = "member", Target = "Microsoft.Ddue.Tools.OverloadFilter.#ParamTypes")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Refered", Scope = "member", Target = "Microsoft.Ddue.Tools.ReferenceTypeReference.#ReferedToType")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "Wdx", Scope = "type", Target = "Microsoft.Ddue.Tools.WdxResolveConceptualLinksComponent")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "dict", Scope = "member", Target = "Microsoft.Ddue.Tools.TaskGrabberComponent.#AddValueToListDictionary`2(System.Collections.Generic.Dictionary`2<!!0,System.Collections.Generic.List`1<!!1>>,!!0,!!1)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "cer", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#SetGenericContext(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "xpath", Scope = "member", Target = "Microsoft.Ddue.Tools.WdxResolveConceptualLinksComponent.#CompileXPathExpression(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "K", Scope = "member", Target = "Microsoft.Ddue.Tools.TaskGrabberComponent.#AddValueToListDictionary`2(System.Collections.Generic.Dictionary`2<!!0,System.Collections.Generic.List`1<!!1>>,!!0,!!1)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "V", Scope = "member", Target = "Microsoft.Ddue.Tools.TaskGrabberComponent.#AddValueToListDictionary`2(System.Collections.Generic.Dictionary`2<!!0,System.Collections.Generic.List`1<!!1>>,!!0,!!1)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1711:IdentifiersShouldNotHaveIncorrectSuffix", Scope = "type", Target = "Microsoft.Ddue.Tools.TargetCollection")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1715:IdentifiersShouldHaveCorrectPrefix", MessageId = "T", Scope = "member", Target = "Microsoft.Ddue.Tools.TaskGrabberComponent.#AddValueToListDictionary`2(System.Collections.Generic.Dictionary`2<!!0,System.Collections.Generic.List`1<!!1>>,!!0,!!1)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods", Scope = "member", Target = "Microsoft.Ddue.Tools.MemberTarget.#Type")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1721:PropertyNamesShouldNotMatchGetMethods", Scope = "member", Target = "Microsoft.Ddue.Tools.Parameter.#Type")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "1#", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "1#", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveArtLinksComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1725:ParameterNamesShouldMatchBaseDeclaration", MessageId = "1#", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent2.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "configuration", Scope = "member", Target = "Microsoft.Ddue.Tools.SyntaxGenerator.#.ctor(System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "key", Scope = "member", Target = "Microsoft.Ddue.Tools.NamespaceFilter.#IsIncludedType(System.Xml.XPath.XPathNavigator,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "location", Scope = "member", Target = "Microsoft.Ddue.Tools.SyntaxWriter.#.ctor(System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "options", Scope = "member", Target = "Microsoft.Ddue.Tools.LinkTextResolver.#WriteInvalid(Microsoft.Ddue.Tools.InvalidReference,Microsoft.Ddue.Tools.DisplayOptions,System.Xml.XmlWriter)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "options", Scope = "member", Target = "Microsoft.Ddue.Tools.LinkTextResolver.#WriteNamespaceTarget(Microsoft.Ddue.Tools.NamespaceTarget,Microsoft.Ddue.Tools.DisplayOptions,System.Xml.XmlWriter)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "options", Scope = "member", Target = "Microsoft.Ddue.Tools.LinkTextResolver.#WriteProcedureName(Microsoft.Ddue.Tools.ProcedureTarget,Microsoft.Ddue.Tools.DisplayOptions,System.Xml.XmlWriter)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "options", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#WriteNamespaceReference(Microsoft.Ddue.Tools.NamespaceReference,Microsoft.Ddue.Tools.DisplayOptions,System.Xml.XmlWriter)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "key", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveConceptualLinksComponent.#ResolveConceptualLinks(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetIdentifier.#Example")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetIdentifier.#Snippet")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent.#CopyContent(System.Xml.XmlReader,System.Xml.XmlWriter)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent.#namespaceAssemblyExpression")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent2.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "member", Target = "Microsoft.Ddue.Tools.IntellisenseComponent2.#CopyContent(System.Xml.XmlReader,System.Xml.XmlWriter)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "Microsoft.Ddue.Tools.LiveExampleComponent.#LoadApprovedFile(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1055:UriReturnValuesShouldNotBeStrings", Scope = "member", Target = "Microsoft.Ddue.Tools.MsdnResolver.#GetMsdnUrl(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "Microsoft.Ddue.Tools.PlatformsComponent.#AddPlatformVersionFilter(System.String,System.String,System.Xml.XPath.XPathNavigator,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "Microsoft.Ddue.Tools.PlatformsComponent.#ParseDocument(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "member", Target = "Microsoft.Ddue.Tools.LinkTextResolver.#WriteNamespaceTarget(Microsoft.Ddue.Tools.NamespaceTarget,Microsoft.Ddue.Tools.DisplayOptions,System.Xml.XmlWriter)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.LinkTextResolver.#WriteTemplateType(Microsoft.Ddue.Tools.TemplateTypeReference,Microsoft.Ddue.Tools.DisplayOptions,System.Xml.XmlWriter)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "member", Target = "Microsoft.Ddue.Tools.ManagedSyntaxWriter.#.ctor(System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "Microsoft.Ddue.Tools.MethodTarget.#Parameters")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "Microsoft.Ddue.Tools.MethodTarget.#Templates")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.MethodTemplateTypeReference.#.ctor(Microsoft.Ddue.Tools.MemberReference,System.Int32)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1001:TypesThatOwnDisposableFieldsShouldBeDisposable", Scope = "type", Target = "Microsoft.Ddue.Tools.MsdnResolver")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "member", Target = "Microsoft.Ddue.Tools.ProcedureTarget.#.ctor()")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "Microsoft.Ddue.Tools.PropertyTarget.#Parameters")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "member", Target = "Microsoft.Ddue.Tools.ReferenceLinkInfo2.#.ctor()")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveConceptualLinksComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1804:RemoveUnusedLocals", MessageId = "filesValue", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveConceptualLinksComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "Microsoft.Ddue.Tools.ResolveReferenceLinksComponent2.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "member", Target = "Microsoft.Ddue.Tools.SaveComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1804:RemoveUnusedLocals", MessageId = "doctype", Scope = "member", Target = "Microsoft.Ddue.Tools.SaveComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1804:RemoveUnusedLocals", MessageId = "item_expression", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1804:RemoveUnusedLocals", MessageId = "path_expresion", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentComponent.#DetectLoops()")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentComponent.#DetectLoops()")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", MessageId = "content", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentComponent.#ResolveContent(System.Xml.XmlDocument,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentElement.#.ctor(System.String,System.String,System.String,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.SharedContentElement.#IsAttribute")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "Microsoft.Ddue.Tools.Specialization.#Arguments")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "Microsoft.Ddue.Tools.SpecializedMemberWithParametersReference.#ParameterTypes")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1024:UsePropertiesWhereAppropriate", Scope = "member", Target = "Microsoft.Ddue.Tools.SpecializedTypeReference.#GetSpecializationDictionary()")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "Microsoft.Ddue.Tools.SpecializedTypeReference.#Specializations")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Reliability", "CA2001:AvoidCallingProblematicMethods", MessageId = "System.Reflection.Assembly.LoadFrom", Scope = "member", Target = "Microsoft.Ddue.Tools.SyntaxComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.TargetDirectory.#.ctor(System.String,Microsoft.Ddue.Tools.LinkType)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.TargetDirectory.#Directory")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.TargetDirectory.#GetTargetInfo(System.Xml.XPath.XPathNavigator,Microsoft.Ddue.Tools.CustomContext)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.TargetDirectory.#LinkType")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.TargetDirectory.#TextExpression")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.TargetDirectory.#UrlExpression")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.TargetDirectoryCollection.#GetTargetInfo(System.Xml.XPath.XPathNavigator,Microsoft.Ddue.Tools.CustomContext)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "member", Target = "Microsoft.Ddue.Tools.TaskGrabberComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1006:DoNotNestGenericTypesInMemberSignatures", Scope = "member", Target = "Microsoft.Ddue.Tools.TaskGrabberComponent.#AddValueToListDictionary`2(System.Collections.Generic.Dictionary`2<!!0,System.Collections.Generic.List`1<!!1>>,!!0,!!1)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1820:TestForEmptyStringsUsingStringLength", Scope = "member", Target = "Microsoft.Ddue.Tools.TaskGrabberComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.TaskGrabberComponent.#GetDocument(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1031:DoNotCatchGeneralExceptionTypes", Scope = "member", Target = "Microsoft.Ddue.Tools.TaskGrabberComponent.#ParseDocument(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Scope = "member", Target = "Microsoft.Ddue.Tools.TaskGrabberComponent.#xpathFromConfig")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1053:StaticHolderTypesShouldNotHaveConstructors", Scope = "type", Target = "Microsoft.Ddue.Tools.Test")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#.cctor()")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1810:InitializeReferenceTypeStaticFieldsInline", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#.cctor()")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1804:RemoveUnusedLocals", MessageId = "baseTypePattern", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#.cctor()")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#CreateReference(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#genericMemberContext")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#tr")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Scope = "member", Target = "Microsoft.Ddue.Tools.TextReferenceUtilities.#ValidTest")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "Microsoft.Ddue.Tools.TypeTarget.#Templates")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.TypeTemplateTypeReference.#.ctor(Microsoft.Ddue.Tools.SimpleTypeReference,System.Int32)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Scope = "member", Target = "Microsoft.Ddue.Tools.XmlTargetCollectionUtilities.#apiSubsubgroupExpression")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Scope = "member", Target = "Microsoft.Ddue.Tools.XmlTargetCollectionUtilities.#topicGroupExpression")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Scope = "member", Target = "Microsoft.Ddue.Tools.MethodTarget.#returnType")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1823:AvoidUnusedPrivateFields", Scope = "member", Target = "Microsoft.Ddue.Tools.PropertyTarget.#returnType")]
+
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "Microsoft.Ddue.Tools.ExtensionMethodReference.#Parameters")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "Microsoft.Ddue.Tools.ExtensionMethodReference.#TemplateArgs")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.ToLower", Scope = "member", Target = "Microsoft.Ddue.Tools.HxfGeneratorComponent.#FileCreatedHandler(System.Object,System.EventArgs)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "Microsoft.Ddue.Tools.IndexedExample.#isApprovedUnit(System.IO.DirectoryInfo)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "member", Target = "Microsoft.Ddue.Tools.IndexedExample.#IsLegalXmlCharacter(System.Char)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.ToLower", Scope = "member", Target = "Microsoft.Ddue.Tools.IndexedExample.#ParseFile(System.IO.FileInfo,System.String,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.ToLower", Scope = "member", Target = "Microsoft.Ddue.Tools.IndexedExample.#ParseUnit(System.IO.DirectoryInfo)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode", Scope = "member", Target = "Microsoft.Ddue.Tools.Language.#Extension")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", MessageId = "extension", Scope = "member", Target = "Microsoft.Ddue.Tools.Language.#IsMatch(System.String,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1500:VariableNamesShouldNotMatchFieldNames", MessageId = "languageId", Scope = "member", Target = "Microsoft.Ddue.Tools.Language.#IsMatch(System.String,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1804:RemoveUnusedLocals", MessageId = "parameters", Scope = "member", Target = "Microsoft.Ddue.Tools.LinkTextResolver.#WriteExtensionMethod(Microsoft.Ddue.Tools.ExtensionMethodReference,Microsoft.Ddue.Tools.DisplayOptions,System.Xml.XmlWriter)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1800:DoNotCastUnnecessarily", Scope = "member", Target = "Microsoft.Ddue.Tools.LinkTextResolver.#WriteMemberTarget(Microsoft.Ddue.Tools.MemberTarget,Microsoft.Ddue.Tools.DisplayOptions,System.Xml.XmlWriter,System.Collections.Generic.Dictionary`2<Microsoft.Ddue.Tools.IndexedTemplateTypeReference,Microsoft.Ddue.Tools.TypeReference>)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "Microsoft.Ddue.Tools.LinkTextResolver.#WriteNamespaceTarget(Microsoft.Ddue.Tools.NamespaceTarget,Microsoft.Ddue.Tools.DisplayOptions,System.Xml.XmlWriter)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1804:RemoveUnusedLocals", MessageId = "overloadId", Scope = "member", Target = "Microsoft.Ddue.Tools.MemberFilter.#AddMemberNode(System.Xml.XmlReader,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1804:RemoveUnusedLocals", MessageId = "paramNames", Scope = "member", Target = "Microsoft.Ddue.Tools.MemberFilter.#AddMemberNode(System.Xml.XmlReader,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "key", Scope = "member", Target = "Microsoft.Ddue.Tools.MemberFilter.#IsIncludedMember(System.Xml.XPath.XPathNavigator,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1819:PropertiesShouldNotReturnArrays", Scope = "member", Target = "Microsoft.Ddue.Tools.MethodTarget.#TemplateArgs")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1805:DoNotInitializeUnnecessarily", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.ToLower", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#.ctor(Microsoft.Ddue.Tools.BuildAssembler,System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Maintainability", "CA1502:AvoidExcessiveComplexity", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.ToLower", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#Apply(System.Xml.XmlDocument,System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#loadExamples(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object,System.Object,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#loadExamples(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1308:NormalizeStringsToUppercase", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#parseApprovalLogFiles(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.Convert.ToBoolean(System.String)", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#parseApprovalLogFiles(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1305:SpecifyIFormatProvider", MessageId = "System.String.Format(System.String,System.Object)", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#parseApprovalLogFiles(System.String)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA1801:ReviewUnusedParameters", MessageId = "identifier", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#writeSnippetContent(System.Xml.XPath.XPathNavigator,Microsoft.Ddue.Tools.SnippetIdentifier,System.Collections.Generic.List`1<Microsoft.Ddue.Tools.Snippet>)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Globalization", "CA1304:SpecifyCultureInfo", MessageId = "System.String.ToLower", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#writeSnippetContent(System.Xml.XPath.XPathNavigator,Microsoft.Ddue.Tools.SnippetIdentifier,System.Collections.Generic.List`1<Microsoft.Ddue.Tools.Snippet>)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "member", Target = "Microsoft.Ddue.Tools.SnippetComponent.#WriteSnippetText(Microsoft.Ddue.Tools.Snippet,System.Xml.XmlWriter)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Naming", "CA1708:IdentifiersShouldDifferByMoreThanCase", Scope = "type", Target = "Microsoft.Ddue.Tools.Specialization")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Design", "CA1051:DoNotDeclareVisibleInstanceFields", Scope = "member", Target = "Microsoft.Ddue.Tools.Specialization.#arguments")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Usage", "CA2208:InstantiateArgumentExceptionsCorrectly", Scope = "member", Target = "Microsoft.Ddue.Tools.XmlTargetCollectionUtilities.#CreateTypeReference(System.Xml.XPath.XPathNavigator)")]
+[assembly: System.Diagnostics.CodeAnalysis.SuppressMessage("Microsoft.Performance", "CA1822:MarkMembersAsStatic", Scope = "member", Target = "Microsoft.Ddue.Tools.LinkTextResolver.#WriteConversionOperator(Microsoft.Ddue.Tools.ProcedureTarget,System.Xml.XmlWriter)")]
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/HxfGeneratorComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/HxfGeneratorComponent.cs
index 65ba716..176ce97 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/HxfGeneratorComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/HxfGeneratorComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.IO;
using System.Text;
@@ -59,7 +62,7 @@ namespace Microsoft.Ddue.Tools {
FileCreatedEventArgs fe = e as FileCreatedEventArgs;
if (fe == null) return;
- string path = Path.Combine(fe.HxfPath, outputValue);
+ string path = Path.Combine(fe.HxfPath, outputValue).ToLower();
XmlWriter tempWriter;
if (!writers.TryGetValue(path, out tempWriter)) {
@@ -80,10 +83,12 @@ namespace Microsoft.Ddue.Tools {
writer.WriteEndElement();
}
- public override void Dispose() {
- writer.WriteEndDocument();
- writer.Close();
- base.Dispose();
+ protected override void Dispose(bool disposing) {
+ if (disposing) {
+ writer.WriteEndDocument();
+ writer.Close();
+ }
+ base.Dispose(disposing);
}
public void WriteFile(string path) {
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/IfThenComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/IfThenComponent.cs
index 7d8f423..e44c0f2 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/IfThenComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/IfThenComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.Configuration;
@@ -66,14 +69,16 @@ namespace Microsoft.Ddue.Tools {
}
- public override void Dispose () {
- foreach (BuildComponent component in true_branch) {
- component.Dispose();
- }
- foreach (BuildComponent component in false_branch) {
- component.Dispose();
+ protected override void Dispose(bool disposing) {
+ if (disposing) {
+ foreach (BuildComponent component in true_branch) {
+ component.Dispose();
+ }
+ foreach (BuildComponent component in false_branch) {
+ component.Dispose();
+ }
}
- base.Dispose();
+ base.Dispose(disposing);
}
}
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/IndexedFileCache.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/IndexedFileCache.cs
index 62425d8..3fadba3 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/IndexedFileCache.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/IndexedFileCache.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.IO;
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/IntellisenseComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/IntellisenseComponent.cs
index 4d67803..1fd72a8 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/IntellisenseComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/IntellisenseComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.IO;
@@ -234,13 +237,15 @@ namespace Microsoft.Ddue.Tools {
}
- public override void Dispose () {
- //Console.WriteLine("disposing intellisense writer...");
- foreach (XmlWriter writer in writers.Values) {
- writer.WriteEndDocument();
- writer.Close();
- }
- }
+ protected override void Dispose(bool disposing) {
+ if (disposing) {
+ foreach (XmlWriter writer in writers.Values) {
+ writer.WriteEndDocument();
+ writer.Close();
+ }
+ }
+ base.Dispose(disposing);
+ }
private void WriteSummary(XPathNavigator node, XPathExpression expression, XmlWriter writer) {
XPathNavigator summary = node.SelectSingleNode(expression);
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/IntellisenseComponent2.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/IntellisenseComponent2.cs
index 35531c2..3405ddb 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/IntellisenseComponent2.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/IntellisenseComponent2.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections;
using System.Collections.Generic;
@@ -29,91 +32,91 @@ namespace Microsoft.Ddue.Tools {
string root = expression_node.GetAttribute("root", string.Empty);
try {
rootExpression = XPathExpression.Compile(root);
- } catch (XPathException e) {
+ } catch (XPathException) {
WriteMessage(MessageLevel.Error, String.Format("The expression '{0}' is not a valid XPath expression.", root));
}
string assembly = expression_node.GetAttribute("assembly", string.Empty);
try {
assemblyExpression = XPathExpression.Compile(assembly);
- } catch (XPathException e) {
+ } catch (XPathException) {
WriteMessage(MessageLevel.Error, String.Format("The expression '{0}' is not a valid XPath expression.", assembly));
}
string summary = expression_node.GetAttribute("summary", string.Empty);
try {
summaryExpression = XPathExpression.Compile(summary);
- } catch (XPathException e) {
+ } catch (XPathException) {
WriteMessage(MessageLevel.Error, String.Format("The expression '{0}' is not a valid XPath expression.", summary));
}
string parameters = expression_node.GetAttribute("parameters", string.Empty);
try {
parametersExpression = XPathExpression.Compile(parameters);
- } catch (XPathException e) {
+ } catch (XPathException) {
WriteMessage(MessageLevel.Error, String.Format("The expression '{0}' is not a valid XPath expression.", parameters));
}
string parameterContent = expression_node.GetAttribute("parameterContent", string.Empty);
try {
parameterContentExpression = XPathExpression.Compile(parameterContent);
- } catch (XPathException e) {
+ } catch (XPathException ) {
WriteMessage(MessageLevel.Error, String.Format("The expression '{0}' is not a valid XPath expression.", parameterContent));
}
string templates = expression_node.GetAttribute("templates", string.Empty);
try {
templatesExpression = XPathExpression.Compile(templates);
- } catch (XPathException e) {
+ } catch (XPathException) {
WriteMessage(MessageLevel.Error, String.Format("The expression '{0}' is not a valid XPath expression.", templates));
}
string templateContent = expression_node.GetAttribute("templateContent", string.Empty);
try {
templateContentExpression = XPathExpression.Compile(templateContent);
- } catch (XPathException e) {
+ } catch (XPathException) {
WriteMessage(MessageLevel.Error, String.Format("The expression '{0}' is not a valid XPath expression.", templateContent));
}
string returns = expression_node.GetAttribute("returns", string.Empty);
try {
returnsExpression = XPathExpression.Compile(returns);
- } catch (XPathException e) {
+ } catch (XPathException) {
WriteMessage(MessageLevel.Error, String.Format("The expression '{0}' is not a valid XPath expression.", returns));
}
string exception = expression_node.GetAttribute("exception", string.Empty);
try {
exceptionExpression = XPathExpression.Compile(exception);
- } catch (XPathException e) {
+ } catch (XPathException) {
WriteMessage(MessageLevel.Error, String.Format("The expression '{0}' is not a valid XPath expression.", exception));
}
string exceptionCref = expression_node.GetAttribute("exceptionCref", string.Empty);
try {
exceptionCrefExpression = XPathExpression.Compile(exceptionCref);
- } catch (XPathException e) {
+ } catch (XPathException) {
WriteMessage(MessageLevel.Error, String.Format("The expression '{0}' is not a valid XPath expression.", exceptionCref));
}
string enumeration = expression_node.GetAttribute("enumeration", string.Empty);
try {
enumerationExpression = XPathExpression.Compile(enumeration);
- } catch (XPathException e) {
+ } catch (XPathException) {
WriteMessage(MessageLevel.Error, String.Format("The expression '{0}' is not a valid XPath expression.", enumeration));
}
string enumerationApi = expression_node.GetAttribute("enumerationApi", string.Empty);
try {
enumerationApiExpression = XPathExpression.Compile(enumerationApi);
- } catch (XPathException e) {
+ } catch (XPathException) {
WriteMessage(MessageLevel.Error, String.Format("The expression '{0}' is not a valid XPath expression.", enumerationApi));
}
string memberSummary = expression_node.GetAttribute("memberSummary", string.Empty);
try {
memberSummaryExpression = XPathExpression.Compile(memberSummary);
- } catch (XPathException e) {
+ } catch (XPathException) {
WriteMessage(MessageLevel.Error, String.Format("The expression '{0}' is not a valid XPath expression.", memberSummary));
}
@@ -321,13 +324,15 @@ namespace Microsoft.Ddue.Tools {
}
- public override void Dispose () {
- //Console.WriteLine("disposing intellisense writer...");
- foreach (XmlWriter writer in writers.Values) {
- writer.WriteEndDocument();
- writer.Close();
- }
- }
+ protected override void Dispose(bool disposing) {
+ if (disposing) {
+ foreach (XmlWriter writer in writers.Values) {
+ writer.WriteEndDocument();
+ writer.Close();
+ }
+ }
+ base.Dispose(disposing);
+ }
private void WriteSummary(XPathNavigator node, XPathExpression expression, XmlWriter writer) {
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/LiveExampleComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/LiveExampleComponent.cs
index fd1b5fc..43d76ba 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/LiveExampleComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/LiveExampleComponent.cs
@@ -1,5 +1,7 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
using System;
using System.Collections.Generic;
@@ -28,7 +30,7 @@ namespace Microsoft.Ddue.Tools {
XmlNamespaceManager context;
bool omitBadExamples;
- bool runBadExamples;
+ //bool runBadExamples;
Dictionary<string, SampleInfo> sampleInfoTable;
@@ -44,9 +46,9 @@ namespace Microsoft.Ddue.Tools {
if (!string.IsNullOrEmpty(omitBadExamplesValue))
omitBadExamples = Boolean.Parse(omitBadExamplesValue);
- string runBadExamplesValue = parsnip_node.GetAttribute("run-bad-examples", String.Empty);
- if (!string.IsNullOrEmpty(runBadExamplesValue))
- runBadExamples = Boolean.Parse(runBadExamplesValue);
+ //string runBadExamplesValue = parsnip_node.GetAttribute("run-bad-examples", String.Empty);
+ //if (!string.IsNullOrEmpty(runBadExamplesValue))
+ // runBadExamples = Boolean.Parse(runBadExamplesValue);
}
if (string.IsNullOrEmpty(approvedFile))
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/Makefile.org b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/Makefile.org
deleted file mode 100644
index 46dba8f..0000000
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/Makefile.org
+++ /dev/null
@@ -1,13 +0,0 @@
-LIBRARY = ..\BuildAssembler.exe
-
-FLOW_COMPONENTS = IfThenComponent.cs ForEachComponent.cs CloneComponent.cs
-DIAGNOSTIC_COMPONENTS = DisplayComponent.cs ValidateComponent.cs
-PROCESSING_COMPONENTS = CopyFromFileComponent.cs CopyFromDirectoryComponent.cs SharedContentComponent.cs TransformComponent.cs SaveComponent.cs ResolveLinksComponent.cs
-
-COMPONENTS = $(FLOW_COMPONENTS) $(DIAGNOSTIC_COMPONENTS) $(PROCESSING_COMPONENTS)
-
-all: BuildComponents.dll
-
-BuildComponents.dll: *Component.cs CustomContext.cs $(LIBRARY)
- csc /t:library /out:BuildComponents.dll *Component.cs CustomContext.cs /r:$(LIBRARY)
- copy BuildComponents.dll ..\..\..\ProductionTools\BuildComponents\
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/Microsoft.Ddue.Tools.BuildComponents.asmmeta b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/Microsoft.Ddue.Tools.BuildComponents.asmmeta
deleted file mode 100644
index 1c21d0f..0000000
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/Microsoft.Ddue.Tools.BuildComponents.asmmeta
+++ /dev/null
@@ -1,1255 +0,0 @@
-.assembly extern Microsoft.Ddue.Tools.BuildAssemblerLibrary
-{
- .publickeytoken = (4D DC 2B E8 53 17 C2 74)
-}
-.assembly extern System
-{
- .publickeytoken = (B7 7A 5C 56 19 34 E0 89)
-}
-.assembly extern System.Web.Services
-{
- .publickeytoken = (B0 3F 5F 7F 11 D5 0A 3A)
-}
-.assembly extern System.Xml
-{
- .publickeytoken = (B7 7A 5C 56 19 34 E0 89)
-}
-.assembly extern mscorlib
-{
- .publickeytoken = (B7 7A 5C 56 19 34 E0 89)
-}
-.assembly Microsoft.Ddue.Tools.BuildComponents
-{
- .publickey = (00 24 00 00 04 80 00 00 94 00 00 00 06 02 00 00 00 24 00 00 52 53 41 31 00 04 00 00 01 00 01 00 EF 09 EE D7 93 0B 34 BA 88 83 E7 DB 9F 08 F5 DF A0 D9 F1 7A 97 8E 98 F3 99 03 36 B2 2A 75 D6 BB 2C 25 90 6C 4F 4E 5D 42 60 00 A9 22 00 A9 CE FE 3F 5E C4 22 BA 1E FF 47 7D C4 14 E7 52 C3 30 07 1C 66 1C 58 3F 28 48 0C 03 35 94 CE 5F A5 FC 44 94 D2 A4 42 95 E5 A3 3E AD B2 FD FF 45 13 77 FD BE 62 48 38 EF 02 BF 22 54 00 56 5D DB DA 10 D8 7E 77 F9 7F 9F 20 60 11 4B 49 3A 4D 62 FE C3 C3)
- .hash algorithm 0x00008004
-}
-.class public ContentService
- extends [System.Web.Services]System.Web.Services.Protocols.SoapHttpClientProtocol
-{
- .custom instance void [System]System.ComponentModel.DesignerCategoryAttribute::.ctor(string) = { string('code') }
- .method public hidebysig specialname
- instance void .ctor()
- {
- ret
- }
- .method public hidebysig specialname
- instance void add_GetContentCompleted(class GetContentCompletedEventHandler 'value')
- synchronized
- {
- ret
- }
- .method public hidebysig specialname
- instance void remove_GetContentCompleted(class GetContentCompletedEventHandler 'value')
- synchronized
- {
- ret
- }
- .method public hidebysig specialname
- instance void add_GetNavigationPathsCompleted(class GetNavigationPathsCompletedEventHandler 'value')
- synchronized
- {
- ret
- }
- .method public hidebysig specialname
- instance void remove_GetNavigationPathsCompleted(class GetNavigationPathsCompletedEventHandler 'value')
- synchronized
- {
- ret
- }
- .method public hidebysig
- instance class getContentResponse GetContent(class getContentRequest getContentRequest)
- {
- ret
- }
- .method public hidebysig
- instance class [mscorlib]System.IAsyncResult BeginGetContent(class getContentRequest getContentRequest, class [mscorlib]System.AsyncCallback callback, object asyncState)
- {
- ret
- }
- .method public hidebysig
- instance class getContentResponse EndGetContent(class [mscorlib]System.IAsyncResult asyncResult)
- {
- ret
- }
- .method public hidebysig
- instance void GetContentAsync(class getContentRequest getContentRequest)
- {
- ret
- }
- .method public hidebysig
- instance void GetContentAsync(class getContentRequest getContentRequest, object userState)
- {
- ret
- }
- .method public hidebysig
- instance class getNavigationPathsResponse GetNavigationPaths(class getNavigationPathsRequest getNavigationPathsRequest)
- {
- ret
- }
- .method public hidebysig
- instance class [mscorlib]System.IAsyncResult BeginGetNavigationPaths(class getNavigationPathsRequest getNavigationPathsRequest, class [mscorlib]System.AsyncCallback callback, object asyncState)
- {
- ret
- }
- .method public hidebysig
- instance class getNavigationPathsResponse EndGetNavigationPaths(class [mscorlib]System.IAsyncResult asyncResult)
- {
- ret
- }
- .method public hidebysig
- instance void GetNavigationPathsAsync(class getNavigationPathsRequest getNavigationPathsRequest)
- {
- ret
- }
- .method public hidebysig
- instance void GetNavigationPathsAsync(class getNavigationPathsRequest getNavigationPathsRequest, object userState)
- {
- ret
- }
- .method public hidebysig
- instance void CancelAsync(object userState)
- {
- ret
- }
- .event GetContentCompletedEventHandler GetContentCompleted
- {
- .addon instance void ContentService::add_GetContentCompleted(class GetContentCompletedEventHandler)
- .removeon instance void ContentService::remove_GetContentCompleted(class GetContentCompletedEventHandler)
- }
- .event GetNavigationPathsCompletedEventHandler GetNavigationPathsCompleted
- {
- .addon instance void ContentService::add_GetNavigationPathsCompleted(class GetNavigationPathsCompletedEventHandler)
- .removeon instance void ContentService::remove_GetNavigationPathsCompleted(class GetNavigationPathsCompletedEventHandler)
- }
-}
-.class public GetContentCompletedEventArgs
- extends [System]System.ComponentModel.AsyncCompletedEventArgs
-{
- .custom instance void [System]System.ComponentModel.DesignerCategoryAttribute::.ctor(string) = { string('code') }
- .method public hidebysig specialname
- instance class getContentResponse get_Result()
- {
- ret
- }
- .property instance class getContentResponse Result()
- {
- .get instance class getContentResponse GetContentCompletedEventArgs::get_Result()
- }
-}
-.class public sealed GetContentCompletedEventHandler
- extends [mscorlib]System.MulticastDelegate
-{
- .method public hidebysig specialname
- instance void .ctor(object 'object', native int 'method')
- runtime
- {
- }
- .method public virtual hidebysig newslot
- instance void Invoke(object sender, class GetContentCompletedEventArgs e)
- runtime
- {
- }
- .method public virtual hidebysig newslot
- instance class [mscorlib]System.IAsyncResult BeginInvoke(object sender, class GetContentCompletedEventArgs e, class [mscorlib]System.AsyncCallback callback, object 'object')
- runtime
- {
- }
- .method public virtual hidebysig newslot
- instance void EndInvoke(class [mscorlib]System.IAsyncResult result)
- runtime
- {
- }
-}
-.class public GetNavigationPathsCompletedEventArgs
- extends [System]System.ComponentModel.AsyncCompletedEventArgs
-{
- .custom instance void [System]System.ComponentModel.DesignerCategoryAttribute::.ctor(string) = { string('code') }
- .method public hidebysig specialname
- instance class getNavigationPathsResponse get_Result()
- {
- ret
- }
- .property instance class getNavigationPathsResponse Result()
- {
- .get instance class getNavigationPathsResponse GetNavigationPathsCompletedEventArgs::get_Result()
- }
-}
-.class public sealed GetNavigationPathsCompletedEventHandler
- extends [mscorlib]System.MulticastDelegate
-{
- .method public hidebysig specialname
- instance void .ctor(object 'object', native int 'method')
- runtime
- {
- }
- .method public virtual hidebysig newslot
- instance void Invoke(object sender, class GetNavigationPathsCompletedEventArgs e)
- runtime
- {
- }
- .method public virtual hidebysig newslot
- instance class [mscorlib]System.IAsyncResult BeginInvoke(object sender, class GetNavigationPathsCompletedEventArgs e, class [mscorlib]System.AsyncCallback callback, object 'object')
- runtime
- {
- }
- .method public virtual hidebysig newslot
- instance void EndInvoke(class [mscorlib]System.IAsyncResult result)
- runtime
- {
- }
-}
-.class public serializable availableVersionAndLocale
- extends [mscorlib]System.Object
-{
- .custom instance void [System]System.ComponentModel.DesignerCategoryAttribute::.ctor(string) = { string('code') }
- .method public hidebysig specialname
- instance string get_locale()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_locale(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_version()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_version(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance void .ctor()
- {
- ret
- }
- .property instance string locale()
- {
- .get instance string availableVersionAndLocale::get_locale()
- .set instance void availableVersionAndLocale::set_locale(string)
- }
- .property instance string version()
- {
- .get instance string availableVersionAndLocale::get_version()
- .set instance void availableVersionAndLocale::set_version(string)
- }
-}
-.class public serializable common
- extends [mscorlib]System.Object
-{
- .custom instance void [System]System.ComponentModel.DesignerCategoryAttribute::.ctor(string) = { string('code') }
- .method public hidebysig specialname
- instance class [System.Xml]System.Xml.XmlElement[] get_Any()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_Any(class [System.Xml]System.Xml.XmlElement[] 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_commonFormat()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_commonFormat(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_location()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_location(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance void .ctor()
- {
- ret
- }
- .property instance class [System.Xml]System.Xml.XmlElement[] Any()
- {
- .get instance class [System.Xml]System.Xml.XmlElement[] common::get_Any()
- .set instance void common::set_Any(class [System.Xml]System.Xml.XmlElement[])
- }
- .property instance string commonFormat()
- {
- .get instance string common::get_commonFormat()
- .set instance void common::set_commonFormat(string)
- }
- .property instance string location()
- {
- .get instance string common::get_location()
- .set instance void common::set_location(string)
- }
-}
-.class public sealed serializable documentTypes
- extends [mscorlib]System.Enum
-{
- .field public rtspecialname specialname int32 value__
- .field static public literal valuetype documentTypes common = int32(0x00000001)
- .field static public literal valuetype documentTypes feature = int32(0x00000003)
- .field static public literal valuetype documentTypes image = int32(0x00000002)
- .field static public literal valuetype documentTypes primary = int32(0x00000000)
-}
-.class public serializable feature
- extends [mscorlib]System.Object
-{
- .custom instance void [System]System.ComponentModel.DesignerCategoryAttribute::.ctor(string) = { string('code') }
- .method public hidebysig specialname
- instance class [System.Xml]System.Xml.XmlElement[] get_Any()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_Any(class [System.Xml]System.Xml.XmlElement[] 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_featureFormat()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_featureFormat(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_location()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_location(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance void .ctor()
- {
- ret
- }
- .property instance class [System.Xml]System.Xml.XmlElement[] Any()
- {
- .get instance class [System.Xml]System.Xml.XmlElement[] feature::get_Any()
- .set instance void feature::set_Any(class [System.Xml]System.Xml.XmlElement[])
- }
- .property instance string featureFormat()
- {
- .get instance string feature::get_featureFormat()
- .set instance void feature::set_featureFormat(string)
- }
- .property instance string location()
- {
- .get instance string feature::get_location()
- .set instance void feature::set_location(string)
- }
-}
-.class public serializable getContentRequest
- extends [mscorlib]System.Object
-{
- .custom instance void [System]System.ComponentModel.DesignerCategoryAttribute::.ctor(string) = { string('code') }
- .method public hidebysig specialname
- instance string get_contentIdentifier()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_contentIdentifier(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_locale()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_locale(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_version()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_version(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance class requestedDocument[] get_requestedDocuments()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_requestedDocuments(class requestedDocument[] 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance void .ctor()
- {
- ret
- }
- .property instance string contentIdentifier()
- {
- .get instance string getContentRequest::get_contentIdentifier()
- .set instance void getContentRequest::set_contentIdentifier(string)
- }
- .property instance string locale()
- {
- .get instance string getContentRequest::get_locale()
- .set instance void getContentRequest::set_locale(string)
- }
- .property instance class requestedDocument[] requestedDocuments()
- {
- .get instance class requestedDocument[] getContentRequest::get_requestedDocuments()
- .set instance void getContentRequest::set_requestedDocuments(class requestedDocument[])
- }
- .property instance string version()
- {
- .get instance string getContentRequest::get_version()
- .set instance void getContentRequest::set_version(string)
- }
-}
-.class public serializable getContentResponse
- extends [mscorlib]System.Object
-{
- .custom instance void [System]System.ComponentModel.DesignerCategoryAttribute::.ctor(string) = { string('code') }
- .method public hidebysig specialname
- instance string get_contentId()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_contentId(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_contentGuid()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_contentGuid(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_contentAlias()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_contentAlias(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_locale()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_locale(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_version()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_version(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance class availableVersionAndLocale[] get_availableVersionsAndLocales()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_availableVersionsAndLocales(class availableVersionAndLocale[] 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance class primary[] get_primaryDocuments()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_primaryDocuments(class primary[] 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance class image[] get_imageDocuments()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_imageDocuments(class image[] 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance class common[] get_commonDocuments()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_commonDocuments(class common[] 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance class feature[] get_featureDocuments()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_featureDocuments(class feature[] 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance void .ctor()
- {
- ret
- }
- .property instance class availableVersionAndLocale[] availableVersionsAndLocales()
- {
- .get instance class availableVersionAndLocale[] getContentResponse::get_availableVersionsAndLocales()
- .set instance void getContentResponse::set_availableVersionsAndLocales(class availableVersionAndLocale[])
- }
- .property instance class common[] commonDocuments()
- {
- .get instance class common[] getContentResponse::get_commonDocuments()
- .set instance void getContentResponse::set_commonDocuments(class common[])
- }
- .property instance string contentAlias()
- {
- .get instance string getContentResponse::get_contentAlias()
- .set instance void getContentResponse::set_contentAlias(string)
- }
- .property instance string contentGuid()
- {
- .get instance string getContentResponse::get_contentGuid()
- .set instance void getContentResponse::set_contentGuid(string)
- }
- .property instance string contentId()
- {
- .get instance string getContentResponse::get_contentId()
- .set instance void getContentResponse::set_contentId(string)
- }
- .property instance class feature[] featureDocuments()
- {
- .get instance class feature[] getContentResponse::get_featureDocuments()
- .set instance void getContentResponse::set_featureDocuments(class feature[])
- }
- .property instance class image[] imageDocuments()
- {
- .get instance class image[] getContentResponse::get_imageDocuments()
- .set instance void getContentResponse::set_imageDocuments(class image[])
- }
- .property instance string locale()
- {
- .get instance string getContentResponse::get_locale()
- .set instance void getContentResponse::set_locale(string)
- }
- .property instance class primary[] primaryDocuments()
- {
- .get instance class primary[] getContentResponse::get_primaryDocuments()
- .set instance void getContentResponse::set_primaryDocuments(class primary[])
- }
- .property instance string version()
- {
- .get instance string getContentResponse::get_version()
- .set instance void getContentResponse::set_version(string)
- }
-}
-.class public serializable getNavigationPathsRequest
- extends [mscorlib]System.Object
-{
- .custom instance void [System]System.ComponentModel.DesignerCategoryAttribute::.ctor(string) = { string('code') }
- .method public hidebysig specialname
- instance class navigationKey get_root()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_root(class navigationKey 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance class navigationKey get_target()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_target(class navigationKey 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance void .ctor()
- {
- ret
- }
- .property instance class navigationKey root()
- {
- .get instance class navigationKey getNavigationPathsRequest::get_root()
- .set instance void getNavigationPathsRequest::set_root(class navigationKey)
- }
- .property instance class navigationKey target()
- {
- .get instance class navigationKey getNavigationPathsRequest::get_target()
- .set instance void getNavigationPathsRequest::set_target(class navigationKey)
- }
-}
-.class public serializable getNavigationPathsResponse
- extends [mscorlib]System.Object
-{
- .custom instance void [System]System.ComponentModel.DesignerCategoryAttribute::.ctor(string) = { string('code') }
- .method public hidebysig specialname
- instance class navigationPath[] get_navigationPaths()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_navigationPaths(class navigationPath[] 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance void .ctor()
- {
- ret
- }
- .property instance class navigationPath[] navigationPaths()
- {
- .get instance class navigationPath[] getNavigationPathsResponse::get_navigationPaths()
- .set instance void getNavigationPathsResponse::set_navigationPaths(class navigationPath[])
- }
-}
-.class public serializable image
- extends [mscorlib]System.Object
-{
- .custom instance void [System]System.ComponentModel.DesignerCategoryAttribute::.ctor(string) = { string('code') }
- .method public hidebysig specialname
- instance string get_name()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_name(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_imageFormat()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_imageFormat(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_location()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_location(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance unsigned int8[] get_Value()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_Value(unsigned int8[] 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance void .ctor()
- {
- ret
- }
- .property instance unsigned int8[] Value()
- {
- .get instance unsigned int8[] image::get_Value()
- .set instance void image::set_Value(unsigned int8[])
- }
- .property instance string imageFormat()
- {
- .get instance string image::get_imageFormat()
- .set instance void image::set_imageFormat(string)
- }
- .property instance string location()
- {
- .get instance string image::get_location()
- .set instance void image::set_location(string)
- }
- .property instance string name()
- {
- .get instance string image::get_name()
- .set instance void image::set_name(string)
- }
-}
-.class public serializable navigationKey
- extends [mscorlib]System.Object
-{
- .custom instance void [System]System.ComponentModel.DesignerCategoryAttribute::.ctor(string) = { string('code') }
- .method public hidebysig specialname
- instance string get_contentId()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_contentId(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_locale()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_locale(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_version()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_version(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance void .ctor()
- {
- ret
- }
- .property instance string contentId()
- {
- .get instance string navigationKey::get_contentId()
- .set instance void navigationKey::set_contentId(string)
- }
- .property instance string locale()
- {
- .get instance string navigationKey::get_locale()
- .set instance void navigationKey::set_locale(string)
- }
- .property instance string version()
- {
- .get instance string navigationKey::get_version()
- .set instance void navigationKey::set_version(string)
- }
-}
-.class public serializable navigationPath
- extends [mscorlib]System.Object
-{
- .custom instance void [System]System.ComponentModel.DesignerCategoryAttribute::.ctor(string) = { string('code') }
- .method public hidebysig specialname
- instance class navigationPathNode[] get_navigationPathNodes()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_navigationPathNodes(class navigationPathNode[] 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance void .ctor()
- {
- ret
- }
- .property instance class navigationPathNode[] navigationPathNodes()
- {
- .get instance class navigationPathNode[] navigationPath::get_navigationPathNodes()
- .set instance void navigationPath::set_navigationPathNodes(class navigationPathNode[])
- }
-}
-.class public serializable navigationPathNode
- extends [mscorlib]System.Object
-{
- .custom instance void [System]System.ComponentModel.DesignerCategoryAttribute::.ctor(string) = { string('code') }
- .method public hidebysig specialname
- instance string get_title()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_title(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance class navigationKey get_navigationNodeKey()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_navigationNodeKey(class navigationKey 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance class navigationKey get_contentNodeKey()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_contentNodeKey(class navigationKey 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance void .ctor()
- {
- ret
- }
- .property instance class navigationKey contentNodeKey()
- {
- .get instance class navigationKey navigationPathNode::get_contentNodeKey()
- .set instance void navigationPathNode::set_contentNodeKey(class navigationKey)
- }
- .property instance class navigationKey navigationNodeKey()
- {
- .get instance class navigationKey navigationPathNode::get_navigationNodeKey()
- .set instance void navigationPathNode::set_navigationNodeKey(class navigationKey)
- }
- .property instance string title()
- {
- .get instance string navigationPathNode::get_title()
- .set instance void navigationPathNode::set_title(string)
- }
-}
-.class public serializable primary
- extends [mscorlib]System.Object
-{
- .custom instance void [System]System.ComponentModel.DesignerCategoryAttribute::.ctor(string) = { string('code') }
- .method public hidebysig specialname
- instance class [System.Xml]System.Xml.XmlElement get_Any()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_Any(class [System.Xml]System.Xml.XmlElement 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_primaryFormat()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_primaryFormat(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance string get_location()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_location(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance void .ctor()
- {
- ret
- }
- .property instance class [System.Xml]System.Xml.XmlElement Any()
- {
- .get instance class [System.Xml]System.Xml.XmlElement primary::get_Any()
- .set instance void primary::set_Any(class [System.Xml]System.Xml.XmlElement)
- }
- .property instance string location()
- {
- .get instance string primary::get_location()
- .set instance void primary::set_location(string)
- }
- .property instance string primaryFormat()
- {
- .get instance string primary::get_primaryFormat()
- .set instance void primary::set_primaryFormat(string)
- }
-}
-.class public serializable requestedDocument
- extends [mscorlib]System.Object
-{
- .custom instance void [System]System.ComponentModel.DesignerCategoryAttribute::.ctor(string) = { string('code') }
- .method public hidebysig specialname
- instance string get_selector()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_selector(string 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance valuetype documentTypes get_type()
- {
- ret
- }
- .method public hidebysig specialname
- instance void set_type(valuetype documentTypes 'value')
- {
- ret
- }
- .method public hidebysig specialname
- instance void .ctor()
- {
- ret
- }
- .property instance string selector()
- {
- .get instance string requestedDocument::get_selector()
- .set instance void requestedDocument::set_selector(string)
- }
- .property instance valuetype documentTypes 'type'()
- {
- .get instance valuetype documentTypes requestedDocument::get_type()
- .set instance void requestedDocument::set_type(valuetype documentTypes)
- }
-}
-.namespace Microsoft.Ddue.Tools
-{
- .class public CloneComponent
- extends [Microsoft.Ddue.Tools.BuildAssemblerLibrary]Microsoft.Ddue.Tools.BuildComponent
- {
- .method public hidebysig specialname
- instance void .ctor(class [System.Xml]System.Xml.XPath.XPathNavigator configuration)
- {
- ret
- }
- .method public virtual hidebysig
- instance void Apply(class [System.Xml]System.Xml.XmlDocument document, string key)
- {
- ret
- }
- }
- .class public CopyFromFileComponent
- extends [Microsoft.Ddue.Tools.BuildAssemblerLibrary]Microsoft.Ddue.Tools.BuildComponent
- {
- .method public hidebysig specialname
- instance void .ctor(class [System.Xml]System.Xml.XPath.XPathNavigator configuration)
- {
- ret
- }
- .method public virtual hidebysig
- instance void Apply(class [System.Xml]System.Xml.XmlDocument document, string key)
- {
- ret
- }
- }
- .class public CopyFromIndexComponent
- extends [Microsoft.Ddue.Tools.BuildAssemblerLibrary]Microsoft.Ddue.Tools.BuildComponent
- {
- .method public hidebysig specialname
- instance void .ctor(class [System.Xml]System.Xml.XPath.XPathNavigator configuration)
- {
- ret
- }
- .method public virtual hidebysig
- instance void Apply(class [System.Xml]System.Xml.XmlDocument document, string key)
- {
- ret
- }
- }
- .class public DisplayComponent
- extends [Microsoft.Ddue.Tools.BuildAssemblerLibrary]Microsoft.Ddue.Tools.BuildComponent
- {
- .method public hidebysig specialname
- instance void .ctor(class [System.Xml]System.Xml.XPath.XPathNavigator configuration)
- {
- ret
- }
- .method public virtual hidebysig
- instance void Apply(class [System.Xml]System.Xml.XmlDocument document, string key)
- {
- ret
- }
- }
- .class public ForEachComponent
- extends [Microsoft.Ddue.Tools.BuildAssemblerLibrary]Microsoft.Ddue.Tools.BuildComponent
- {
- .method public hidebysig specialname
- instance void .ctor(class [System.Xml]System.Xml.XPath.XPathNavigator configuration)
- {
- ret
- }
- .method public virtual hidebysig
- instance void Apply(class [System.Xml]System.Xml.XmlDocument document, string key)
- {
- ret
- }
- }
- .class public IfThenComponent
- extends [Microsoft.Ddue.Tools.BuildAssemblerLibrary]Microsoft.Ddue.Tools.BuildComponent
- {
- .method public hidebysig specialname
- instance void .ctor(class [System.Xml]System.Xml.XPath.XPathNavigator configuration)
- {
- ret
- }
- .method public virtual hidebysig
- instance void Apply(class [System.Xml]System.Xml.XmlDocument document, string key)
- {
- ret
- }
- }
- .class public ManagedSyntaxWriter
- extends Microsoft.Ddue.Tools.SyntaxWriter
- {
- .method public hidebysig specialname
- instance void .ctor(class [System.Xml]System.Xml.XPath.XPathNavigator location)
- {
- ret
- }
- .method public virtual hidebysig
- instance void WriteStartBlock(string language)
- {
- ret
- }
- .method public virtual hidebysig
- instance void WriteString(string text)
- {
- ret
- }
- .method public virtual hidebysig
- instance void WriteStringWithStyle(string text, string style)
- {
- ret
- }
- .method public virtual hidebysig
- instance void WriteReferenceLink(string reference)
- {
- ret
- }
- .method public virtual hidebysig
- instance void WriteReferenceLink(string reference, string text)
- {
- ret
- }
- .method public virtual hidebysig
- instance void WriteEndBlock()
- {
- ret
- }
- }
- .class public ResolveConceptualLinksComponent
- extends [Microsoft.Ddue.Tools.BuildAssemblerLibrary]Microsoft.Ddue.Tools.BuildComponent
- {
- .method public hidebysig specialname
- instance void .ctor(class [System.Xml]System.Xml.XPath.XPathNavigator configuration)
- {
- ret
- }
- .method public virtual hidebysig
- instance void Apply(class [System.Xml]System.Xml.XmlDocument document, string key)
- {
- ret
- }
- }
- .class public ResolveReferenceLinksComponent
- extends [Microsoft.Ddue.Tools.BuildAssemblerLibrary]Microsoft.Ddue.Tools.BuildComponent
- {
- .method public hidebysig specialname
- instance void .ctor(class [System.Xml]System.Xml.XPath.XPathNavigator configuration)
- {
- ret
- }
- .method public virtual hidebysig
- instance void Apply(class [System.Xml]System.Xml.XmlDocument document, string key)
- {
- ret
- }
- }
- .class public SaveComponent
- extends [Microsoft.Ddue.Tools.BuildAssemblerLibrary]Microsoft.Ddue.Tools.BuildComponent
- {
- .method public hidebysig specialname
- instance void .ctor(class [System.Xml]System.Xml.XPath.XPathNavigator configuration)
- {
- ret
- }
- .method public virtual hidebysig
- instance void Apply(class [System.Xml]System.Xml.XmlDocument document, string key)
- {
- ret
- }
- }
- .class public SharedContentComponent
- extends [Microsoft.Ddue.Tools.BuildAssemblerLibrary]Microsoft.Ddue.Tools.BuildComponent
- {
- .method public hidebysig specialname
- instance void .ctor(class [System.Xml]System.Xml.XPath.XPathNavigator configuration)
- {
- ret
- }
- .method public virtual hidebysig
- instance void Apply(class [System.Xml]System.Xml.XmlDocument document, string key)
- {
- ret
- }
- }
- .class public SyntaxComponent
- extends [Microsoft.Ddue.Tools.BuildAssemblerLibrary]Microsoft.Ddue.Tools.BuildComponent
- {
- .method public hidebysig specialname
- instance void .ctor(class [System.Xml]System.Xml.XPath.XPathNavigator configuration)
- {
- ret
- }
- .method public virtual hidebysig
- instance void Apply(class [System.Xml]System.Xml.XmlDocument document, string key)
- {
- ret
- }
- }
- .class public abstract SyntaxGenerator
- extends [mscorlib]System.Object
- {
- .method public virtual hidebysig newslot abstract
- instance void WriteSyntax(class [System.Xml]System.Xml.XPath.XPathNavigator reflection, class Microsoft.Ddue.Tools.SyntaxWriter writer)
- {
- }
- .method family hidebysig specialname
- instance void .ctor()
- {
- ret
- }
- }
- .class public abstract SyntaxWriter
- extends [mscorlib]System.Object
- {
- .method family hidebysig specialname
- instance void .ctor(class [System.Xml]System.Xml.XPath.XPathNavigator location)
- {
- ret
- }
- .method public virtual hidebysig newslot abstract
- instance void WriteStartBlock(string language)
- {
- }
- .method public virtual hidebysig newslot abstract
- instance void WriteString(string text)
- {
- }
- .method public virtual hidebysig newslot abstract
- instance void WriteStringWithStyle(string text, string style)
- {
- }
- .method public virtual hidebysig newslot abstract
- instance void WriteReferenceLink(string reference)
- {
- }
- .method public virtual hidebysig newslot abstract
- instance void WriteReferenceLink(string reference, string text)
- {
- }
- .method public virtual hidebysig newslot
- instance void WriteLine()
- {
- ret
- }
- .method public virtual hidebysig newslot
- instance void WriteKeyword(string keyword)
- {
- ret
- }
- .method public virtual hidebysig newslot
- instance void WriteParameter(string parameter)
- {
- ret
- }
- .method public virtual hidebysig newslot
- instance void WriteIdentifier(string identifier)
- {
- ret
- }
- .method public virtual hidebysig newslot
- instance void WriteLiteral(string 'literal')
- {
- ret
- }
- .method public virtual hidebysig newslot
- instance void WriteMessage(string message)
- {
- ret
- }
- .method public virtual hidebysig newslot abstract
- instance void WriteEndBlock()
- {
- }
- }
- .class public TransformComponent
- extends [Microsoft.Ddue.Tools.BuildAssemblerLibrary]Microsoft.Ddue.Tools.BuildComponent
- {
- .method public hidebysig specialname
- instance void .ctor(class [System.Xml]System.Xml.XPath.XPathNavigator configuration)
- {
- ret
- }
- .method public virtual hidebysig
- instance void Apply(class [System.Xml]System.Xml.XmlDocument document, string key)
- {
- ret
- }
- }
- .class public ValidateComponent
- extends [Microsoft.Ddue.Tools.BuildAssemblerLibrary]Microsoft.Ddue.Tools.BuildComponent
- {
- .method public hidebysig specialname
- instance void .ctor(class [System.Xml]System.Xml.XPath.XPathNavigator configuration)
- {
- ret
- }
- .method public virtual hidebysig
- instance void Apply(class [System.Xml]System.Xml.XmlDocument document, string key)
- {
- ret
- }
- }
-}
-
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/MsdnResolver.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/MsdnResolver.cs
index 95ad854..84a43f1 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/MsdnResolver.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/MsdnResolver.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.Net;
@@ -45,7 +48,7 @@ namespace Microsoft.Ddue.Tools {
try {
getContentResponse msdnResponse = msdnService.GetContent(msdnRequest);
endpoint = msdnResponse.contentId;
- } catch (WebException e) {
+ } catch (WebException) {
msdnService = null;
} catch (SoapException) {
// lookup failed
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/PlatformsComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/PlatformsComponent.cs
index 7aaa64d..cd3f2cc 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/PlatformsComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/PlatformsComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.Configuration;
@@ -331,7 +334,7 @@ namespace Microsoft.Ddue.Tools
public NamespaceFilter(XmlReader namespaceReader, string file)
: base(file)
{
- name = namespaceReader.GetAttribute("name");
+ //name = namespaceReader.GetAttribute("name");
string includeAttr = namespaceReader.GetAttribute("include");
included = Convert.ToBoolean(string.IsNullOrEmpty(includeAttr) ? "true" : includeAttr);
AddNamespaceNode(namespaceReader, file);
@@ -375,7 +378,7 @@ namespace Microsoft.Ddue.Tools
subtree.Close();
}
- private string name;
+ //private string name;
private bool included;
public bool Included
@@ -427,7 +430,7 @@ namespace Microsoft.Ddue.Tools
public TypeFilter(XmlReader typeReader, string file)
: base(file)
{
- name = typeReader.GetAttribute("name");
+ //name = typeReader.GetAttribute("name");
string includeAttr = typeReader.GetAttribute("include");
included = Convert.ToBoolean(string.IsNullOrEmpty(includeAttr) ? "true" : includeAttr);
AddTypeNode(typeReader, file);
@@ -471,7 +474,7 @@ namespace Microsoft.Ddue.Tools
subtree.Close();
}
- private string name;
+ //private string name;
private bool included;
public bool Included
@@ -513,7 +516,7 @@ namespace Microsoft.Ddue.Tools
public MemberFilter(XmlReader memberReader, string file)
: base(file)
{
- name = memberReader.GetAttribute("name");
+ //name = memberReader.GetAttribute("name");
string includeAttr = memberReader.GetAttribute("include");
included = Convert.ToBoolean(string.IsNullOrEmpty(includeAttr) ? "true" : includeAttr);
@@ -536,12 +539,8 @@ namespace Microsoft.Ddue.Tools
bool alreadyFiltered = false;
foreach (OverloadFilter overloadFilter in overloadFilters)
{
- if (!string.IsNullOrEmpty(overloadId) && overloadId == overloadFilter.OverloadId)
- alreadyFiltered = true;
if (!string.IsNullOrEmpty(paramTypes) && paramTypes == overloadFilter.ParamTypes)
alreadyFiltered = true;
- if (!string.IsNullOrEmpty(paramNames) && paramNames == overloadFilter.ParamNames)
- alreadyFiltered = true;
if (alreadyFiltered && (overloadIncluded != overloadFilter.Included))
{
// write warning message about conflicting filters
@@ -559,7 +558,7 @@ namespace Microsoft.Ddue.Tools
subtree.Close();
}
- private string name;
+ //private string name;
private bool included;
public bool Included
@@ -599,7 +598,7 @@ namespace Microsoft.Ddue.Tools
if (string.IsNullOrEmpty(typeName))
typeName = (string)parameterNode.Evaluate(apiParameterTemplateNameExpression);
- int basenameStart = typeName.LastIndexOf('.') + 1;
+ int basenameStart = typeName.LastIndexOf(':') + 1;
if (basenameStart > 0 && basenameStart < typeName.Length)
typeName = typeName.Substring(basenameStart);
@@ -610,10 +609,6 @@ namespace Microsoft.Ddue.Tools
foreach (OverloadFilter overloadFilter in overloadFilters)
{
- if (key == overloadFilter.OverloadId)
- return overloadFilter.Included;
- if (paramNames.ToString() == overloadFilter.ParamNames)
- return overloadFilter.Included;
if (paramTypes.ToString() == overloadFilter.ParamTypes)
return overloadFilter.Included;
}
@@ -629,7 +624,7 @@ namespace Microsoft.Ddue.Tools
public OverloadFilter(XmlReader overloadReader, string file)
: base(file)
{
- name = overloadReader.GetAttribute("name");
+ //name = overloadReader.GetAttribute("name");
string includeAttr = overloadReader.GetAttribute("include");
included = Convert.ToBoolean(string.IsNullOrEmpty(includeAttr) ? "true" : includeAttr);
overloadId = overloadReader.GetAttribute("api");
@@ -637,7 +632,7 @@ namespace Microsoft.Ddue.Tools
paramNames = overloadReader.GetAttribute("names");
}
- private string name;
+ //private string name;
private bool included;
public bool Included
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/Properties/AssemblyInfo.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/Properties/AssemblyInfo.cs
index 1701d1d..41965fc 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/Properties/AssemblyInfo.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/Properties/AssemblyInfo.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System.Reflection;
using System.Runtime.CompilerServices;
using System.Runtime.InteropServices;
@@ -16,6 +19,8 @@ using System.Runtime.InteropServices;
[assembly: AssemblyTrademark("")]
[assembly: AssemblyCulture("")]
+[assembly: System.CLSCompliant(true)]
+
// Setting ComVisible to false makes the types in this assembly not visible
// to COM components. If you need to access a type in this assembly from
// COM, set the ComVisible attribute to true on that type.
@@ -33,5 +38,5 @@ using System.Runtime.InteropServices;
//
// You can specify all the values or you can default the Revision and Build Numbers
// by using the '*' as shown below:
-[assembly: AssemblyVersion("2.4.10522.00")]
-[assembly: AssemblyFileVersion("2.4.10522.00")]
+[assembly: AssemblyVersion("2.5.10626.00")]
+[assembly: AssemblyFileVersion("2.5.10626.00")]
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/References.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/References.cs
index ae11ad5..ba23c6f 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/References.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/References.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.Text;
@@ -169,15 +172,11 @@ namespace BuildComponents {
switch (element.LocalName) {
case "namespace":
return (NamespaceReference.Create(element));
- break;
case "member":
return (MemberReference.Create(element));
- break;
default:
return (TypeReference.Create(element));
- break;
}
- return (null);
}
public static Reference Create (XPathNavigator node) {
@@ -192,7 +191,7 @@ namespace BuildComponents {
}
}
- protected static XPathExpression referenceApiExpression = XPathExpression.Compile("string(@api)");
+ protected static XPathExpression referenceApiExpression = XPathExpression.Compile("string(@api)");
}
@@ -224,23 +223,19 @@ namespace BuildComponents {
case "type":
// also handle specialization!
return(SimpleTypeReference.Create(element));
- break;
case "referenceTo":
return(ReferenceTypeReference.Create(element));
- break;
case "pointerTo":
return(PointerTypeReference.Create(element));
- break;
case "arrayOf":
return(ArrayTypeReference.Create(element));
- break;
}
return (null);
}
public static new TypeReference Create (XPathNavigator element) {
- if (element == null) throw new ArgumentNullException("reference");
+ if (element == null) throw new ArgumentNullException("element");
string tag = element.LocalName;
if (tag == "type") {
bool isSpecialized = (bool)element.Evaluate("boolean(.//specialization)");
@@ -262,7 +257,7 @@ namespace BuildComponents {
XPathNavigator pointedToNode = element.SelectSingleNode("*[1]");
return (new PointerTypeReference(TypeReference.Create(pointedToNode)));
} else if (tag == "template") {
- string nameValue = element.GetAttribute("name", String.Empty);
+ //string nameValue = element.GetAttribute("name", String.Empty);
string indexValue = element.GetAttribute("index", String.Empty);
string apiValue = element.GetAttribute("api", String.Empty);
if ((!String.IsNullOrEmpty(apiValue)) && (!String.IsNullOrEmpty(indexValue))) {
@@ -314,7 +309,7 @@ namespace BuildComponents {
public partial class PointerTypeReference {
public static new PointerTypeReference Create (XmlReader pointerTo) {
- if (pointerTo == null) throw new ArgumentException("pointerTo");
+ if (pointerTo == null) throw new ArgumentNullException("pointerTo");
pointerTo.Read();
TypeReference pointedToType = TypeReference.Create(pointerTo);
return (new PointerTypeReference(pointedToType));
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ResolveArtLinksComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ResolveArtLinksComponent.cs
index 3f13a7b..77d763d 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ResolveArtLinksComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ResolveArtLinksComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.IO;
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ResolveConceptualLinksComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ResolveConceptualLinksComponent.cs
index 02ed150..2531e23 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ResolveConceptualLinksComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ResolveConceptualLinksComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.IO;
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ResolveReferenceLinksComponent2.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ResolveReferenceLinksComponent2.cs
index 31e4349..22587ac 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ResolveReferenceLinksComponent2.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ResolveReferenceLinksComponent2.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.IO;
@@ -185,15 +188,31 @@ namespace Microsoft.Ddue.Tools {
} else {
// if overload is prefered and found, change targetId and make link options hide parameters
if (link.PreferOverload) {
+
+ bool isConversionOperator = false;
+
+ MethodTarget method = target as MethodTarget;
+ if (method != null) {
+ isConversionOperator = method.conversionOperator;
+ }
+
MemberTarget member = target as MemberTarget;
- if ((member != null) && (!String.IsNullOrEmpty(member.OverloadId))) {
+
+ // if conversion operator is found, always link to individual topic.
+ if ((member != null) && (!String.IsNullOrEmpty(member.OverloadId)) && !isConversionOperator) {
Target overloadTarget = targets[member.OverloadId];
if (overloadTarget != null) {
target = overloadTarget;
targetId = overloadTarget.Id;
}
}
- options = options & ~DisplayOptions.ShowParameters;
+
+ // if individual conversion operator is found, always display parameters.
+ if (isConversionOperator && member != null && (!string.IsNullOrEmpty(member.OverloadId))) {
+ options = options | DisplayOptions.ShowParameters;
+ } else {
+ options = options & ~DisplayOptions.ShowParameters;
+ }
}
// get stored link type
@@ -326,6 +345,11 @@ namespace Microsoft.Ddue.Tools {
fragment.WriteTo(writer);
//writer.WriteRaw(output);
+ }
+ else if ((String.Compare(link.DisplayTarget, "extension", true) == 0) && (link.Contents != null))
+ {
+ Reference extMethodReference = XmlTargetCollectionUtilities.CreateExtensionMethodReference(link.Contents);
+ resolver.WriteReference(extMethodReference, options, writer);
} else {
// Use the display target value as a CER for the display target
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SaveComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SaveComponent.cs
index bacb26c..8b8fea9 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SaveComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SaveComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Configuration;
using System.Text;
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SharedContentComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SharedContentComponent.cs
index f339800..2a255fc 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SharedContentComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SharedContentComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.Configuration;
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SnippetComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SnippetComponent.cs
new file mode 100644
index 0000000..d4a3d68
--- /dev/null
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SnippetComponent.cs
@@ -0,0 +1,1223 @@
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
+// <summary>Contains code to insert snippets directly from the source files without using any
+// intermediate XML files.
+// </summary>
+namespace Microsoft.Ddue.Tools
+{
+ using System;
+ using System.Configuration;
+ using System.Collections.Generic;
+ using System.IO;
+ using System.Text;
+ using System.Text.RegularExpressions;
+ using System.Xml;
+ using System.Xml.XPath;
+ using System.Globalization;
+ using System.Diagnostics;
+
+ /// <summary>
+ /// SnippetComponent class to replace the snippet code references.
+ /// </summary>
+ public class SnippetComponent : BuildComponent
+ {
+ #region Private members
+ /// <summary>
+ /// Regex to validate the snippet references.
+ /// </summary>
+ private static Regex validSnippetReference = new Regex(
+ @"^[^#\a\b\f\n\r\t\v]+#(\w+,)*\w+$",
+ RegexOptions.Compiled);
+
+ /// <summary>
+ /// Dictionary to map language folder names to language id.
+ /// </summary>
+ private static Dictionary<string, string> languageMap = new Dictionary<string, string>(StringComparer.CurrentCultureIgnoreCase);
+
+ /// <summary>
+ /// List that controls the order in which languages snippets are displayed.
+ /// </summary>
+ private static List<string> languageList = new List<string>();
+
+ /// <summary>
+ /// Dictionary consisting of example name as key and example path as value.
+ /// </summary>
+ private Dictionary<string, string> exampleIndex = new Dictionary<string, string>();
+
+ /// <summary>
+ /// Dictionary consisting of exampleName\unitName as key with a null value.
+ /// </summary>
+ private Dictionary<string, string> approvedSnippetIndex = new Dictionary<string,string>();
+
+ /// <summary>
+ /// Dictionary containing the example name as key and list of rejected language snippets as values.
+ /// </summary>
+ private Dictionary<string, List<string>> rejectedSnippetIndex = new Dictionary<string, List<string>>();
+
+ /// <summary>
+ /// List of unit folder names to exclude from sample parsing.
+ /// </summary>
+ private Dictionary<string, Object> excludedUnits = new Dictionary<string, Object>();
+
+ /// <summary>
+ /// Dictionary consisting of exampleName\unitName as key with a null value.
+ /// </summary>
+ private SnippetCache snippetCache = null;
+
+ /// <summary>
+ /// XPathExpression to look for snippet references in the topics.
+ /// </summary>
+ private XPathExpression selector;
+
+ /// <summary>
+ /// XmlNamespaceManager to set the context.
+ /// </summary>
+ private XmlNamespaceManager context = new CustomContext();
+
+ /// <summary>
+ /// List of languages.
+ /// </summary>
+ private List<Language> languages = new List<Language>();
+
+ /// <summary>
+ /// snippet store.
+ /// </summary>
+ private Dictionary<SnippetIdentifier, List<Snippet>> snippets = new Dictionary<SnippetIdentifier, List<Snippet>>();
+ #endregion
+
+ #region Constructor
+
+ /// <summary>
+ /// Constructor for SnippetComponent class.
+ /// </summary>
+ /// <param name="assembler">An instance of Build Assembler</param>
+ /// <param name="configuration">configuration to be parsed for information related to snippets</param>
+ public SnippetComponent(BuildAssembler assembler, XPathNavigator configuration)
+ : base(assembler, configuration)
+ {
+ Debug.Assert(assembler != null);
+ Debug.Assert(configuration != null);
+
+ // Get the parsnip examples location.
+ XPathNodeIterator examplesNode = configuration.Select("examples/example");
+
+ if (examplesNode.Count == 0)
+ WriteMessage(MessageLevel.Error, "Each snippet component element must have a child element named 'examples' containing an element named 'example' with an attribute named 'directory', whose value is a path to the directory containing examples.");
+
+ foreach (XPathNavigator exampleNode in examplesNode)
+ {
+ string rootDirectory = exampleNode.GetAttribute("directory", string.Empty);
+
+ if (string.IsNullOrEmpty(rootDirectory))
+ WriteMessage(MessageLevel.Error, "Each examples element must have a directory attribute specifying a directory containing parsnip samples.");
+
+ rootDirectory = Environment.ExpandEnvironmentVariables(rootDirectory);
+ if (!Directory.Exists(rootDirectory))
+ WriteMessage(MessageLevel.Error, String.Format("The examples/@directory attribute specified a directory that doesn't exist: '{0}'", rootDirectory));
+
+ // create a dictionary that maps the example names to the example path under the root directory
+ this.loadExamples(rootDirectory);
+ }
+
+ // Get the approved log files location.
+ XPathNodeIterator approvedSnippetsNode = configuration.Select("approvalLogs/approvalLog");
+
+ if (approvedSnippetsNode.Count == 0)
+ WriteMessage(MessageLevel.Warn, "The config did not have an 'approvalLogs' node to specify a snippet approval logs.");
+
+ foreach (XPathNavigator node in approvedSnippetsNode)
+ {
+ string approvalLogFile = node.GetAttribute("file", string.Empty);
+
+ if (string.IsNullOrEmpty(approvalLogFile))
+ WriteMessage(MessageLevel.Error, "The approvalLog node must have a 'file' attribute specifying the path to a snippet approval log.");
+
+ approvalLogFile = Environment.ExpandEnvironmentVariables(approvalLogFile);
+ if (!File.Exists(approvalLogFile))
+ WriteMessage(MessageLevel.Error, String.Format("The approvalLog/@file attribute specified a file that doesn't exist: '{0}'", approvalLogFile));
+
+ // load the approval log into the approvedSnippetIndex dictionary
+ this.parseApprovalLogFiles(approvalLogFile);
+ }
+
+ // Get the names of the unit directories in the sample tree to exclude from parsing
+ // <excludedUnits><unitFolder name="CPP_OLD" /></excludedUnits>
+ XPathNodeIterator excludedUnitNodes = configuration.Select("excludedUnits/unitFolder");
+ foreach (XPathNavigator unitFolder in excludedUnitNodes)
+ {
+ string folderName = unitFolder.GetAttribute("name", string.Empty);
+
+ if (string.IsNullOrEmpty(folderName))
+ WriteMessage(MessageLevel.Error, "Each excludedUnits/unitFolder node must have a 'name' attribute specifying the name of a folder name to exclude.");
+
+ folderName = Environment.ExpandEnvironmentVariables(folderName);
+
+ // add the folderName to the list of names to be excluded
+ this.excludedUnits.Add(folderName.ToLower(),null);
+ }
+
+ // Get the languages defined.
+ XPathNodeIterator languageNodes = configuration.Select("languages/language");
+ foreach (XPathNavigator languageNode in languageNodes)
+ {
+ // read the @languageId, @unit, and @extension attributes
+ string languageId = languageNode.GetAttribute("languageId", string.Empty);
+ if (string.IsNullOrEmpty(languageId))
+ WriteMessage(MessageLevel.Error, "Each language node must specify an @languageId attribute.");
+
+ string unit = languageNode.GetAttribute("unit", string.Empty);
+
+ // if both @languageId and @unit are specified, add this language to the language map
+ if (!string.IsNullOrEmpty(unit))
+ languageMap.Add(unit.ToLower(), languageId);
+
+ // add languageId to the languageList for purpose of ordering snippets in the output
+ if (!languageList.Contains(languageId))
+ languageList.Add(languageId.ToLower());
+
+ string extension = languageNode.GetAttribute("extension", string.Empty);
+ if (!string.IsNullOrEmpty(extension))
+ {
+ if (!extension.Contains("."))
+ {
+ extension = "." + extension;
+ WriteMessage(MessageLevel.Warn, String.Format("The @extension value must begin with a period. Adding a period to the extension value '{0}' of the {1} language.", extension, languageId));
+ }
+ else
+ {
+ int indexOfPeriod = extension.IndexOf('.');
+ if (indexOfPeriod != 0)
+ {
+ extension = extension.Substring(indexOfPeriod);
+ WriteMessage(MessageLevel.Warn, String.Format("The @extension value must begin with a period. Using the substring beginning with the first period of the specified extension value '{0}' of the {1} language.", extension, languageId));
+ }
+ }
+ }
+
+ // read the color nodes, if any, and add them to the list of colorization rules
+ List<ColorizationRule> rules = new List<ColorizationRule>();
+
+ XPathNodeIterator colorNodes = languageNode.Select("color");
+ foreach (XPathNavigator colorNode in colorNodes)
+ {
+ string pattern = colorNode.GetAttribute("pattern", String.Empty);
+ string region = colorNode.GetAttribute("region", String.Empty);
+ string name = colorNode.GetAttribute("class", String.Empty);
+ if (String.IsNullOrEmpty(region))
+ {
+ rules.Add(new ColorizationRule(pattern, name));
+ }
+ else
+ {
+ rules.Add(new ColorizationRule(pattern, region, name));
+ }
+ }
+
+ this.languages.Add(new Language(languageId, extension, rules));
+ WriteMessage(MessageLevel.Info, String.Format("Loaded {0} colorization rules for the language '{1}', extension '{2}.", rules.Count, languageId, extension));
+ }
+
+ this.context.AddNamespace("ddue", "http://ddue.schemas.microsoft.com/authoring/2003/5");
+ this.selector = XPathExpression.Compile("//ddue:codeReference");
+ this.selector.SetContext(this.context);
+
+ // create the snippet cache
+ snippetCache = new SnippetCache(100, approvedSnippetIndex, languageMap, languages, excludedUnits);
+ }
+ #endregion
+
+ #region Public methods
+ /// <summary>
+ /// Apply method to perform the actual work of the component.
+ /// </summary>
+ /// <param name="document">document to be parsed for snippet references</param>
+ /// <param name="key">Id of a topic</param>
+ public override void Apply(XmlDocument document, string key)
+ {
+ // clear out the snippets dictionary of any snippets from the previous document
+ snippets.Clear();
+
+ XPathNodeIterator nodesIterator = document.CreateNavigator().Select(this.selector);
+ XPathNavigator[] nodes = BuildComponentUtilities.ConvertNodeIteratorToArray(nodesIterator);
+ foreach (XPathNavigator node in nodes)
+ {
+ // get the snippet reference, which can contain one or more snippet ids
+ string reference = node.Value;
+
+ // check for validity of reference
+ if (!validSnippetReference.IsMatch(reference))
+ {
+ WriteMessage(MessageLevel.Warn, "Skipping invalid snippet reference: " + reference);
+ continue;
+ }
+
+ // get the identifiers from the codeReference
+ SnippetIdentifier[] identifiers = SnippetIdentifier.ParseReference(reference);
+
+ // load the language-specific snippets for each of the specified identifiers
+ foreach (SnippetIdentifier identifier in identifiers)
+ {
+ if (snippets.ContainsKey(identifier))
+ continue;
+
+ // look up the snippets example path
+ string examplePath = string.Empty;
+ if (!this.exampleIndex.TryGetValue(identifier.Example, out examplePath))
+ {
+ WriteMessage(MessageLevel.Warn, String.Format("Snippet with identifier '{0}' was not found. The '{1}' example was not found in the examples directory.", identifier.ToString(), identifier.Example));
+ continue;
+ }
+
+ // get the snippet from the snippet cache
+ List<Snippet> snippetList = snippetCache.GetContent(examplePath, identifier);
+ if (snippetList != null)
+ {
+ snippets.Add(identifier, snippetList);
+ }
+ else
+ {
+ // if no approval log was specified in the config, all snippets are treated as approved by default
+ // so show an warning message that the snippet was not found
+ if (approvedSnippetIndex.Count == 0)
+ WriteMessage(MessageLevel.Warn, string.Format("No Snippet with identifier '{0}' was found.", identifier.ToString()));
+ else
+ {
+ // show a warning message: either snippet not found, or snippet not approved.
+ bool isApproved = false;
+
+ foreach (string snippetIndex in this.approvedSnippetIndex.Keys)
+ {
+ string[] splitSnippet = snippetIndex.Split('\\');
+ if (splitSnippet[0] == identifier.Example)
+ {
+ isApproved = true;
+ break;
+ }
+ }
+
+ // check whether snippets are present in parsnip approval logs and throw warnings accordingly.
+ if (!isApproved || !rejectedSnippetIndex.ContainsKey(identifier.Example))
+ WriteMessage(MessageLevel.Warn, string.Format("The snippet with identifier '{0}' was omitted because it is not present in parsnip approval logs.", identifier.ToString()));
+ else
+ WriteMessage(MessageLevel.Warn, string.Format("No Snippet with identifier '{0}' was found.", identifier.ToString()));
+ }
+
+ continue;
+ }
+
+ // write warning messages for any rejected units for this example
+ List<string> rejectedUnits;
+ if (rejectedSnippetIndex.TryGetValue(identifier.Example, out rejectedUnits))
+ {
+ foreach (string rejectedUnit in rejectedUnits)
+ WriteMessage(MessageLevel.Warn, string.Format("The '{0}' snippet with identifier '{1}' was omitted because the {2}\\{0} unit did not pass Parsnip testing.", rejectedUnit, identifier.ToString(), identifier.Example));
+ }
+ }
+
+ if (identifiers.Length == 1)
+ {
+ // one snippet referenced
+ SnippetIdentifier identifier = identifiers[0];
+
+ if (snippets.ContainsKey(identifier))
+ {
+ writeSnippetContent(node, identifier, snippets[identifier]);
+ }
+ }
+ else
+ {
+ // handle case where codeReference contains multiple identifiers
+ // Each language's set of snippets from multiple identifiers are displayed in a single block;
+
+ // create dictionary that maps each language to its set of snippets
+ Dictionary<string, List<Snippet>> map = new Dictionary<string, List<Snippet>>();
+ foreach (SnippetIdentifier identifier in identifiers)
+ {
+ List<Snippet> values;
+ if (snippets.TryGetValue(identifier, out values))
+ {
+ foreach (Snippet value in values)
+ {
+ List<Snippet> pieces;
+ if (!map.TryGetValue(value.Language.LanguageId, out pieces))
+ {
+ pieces = new List<Snippet>();
+ map.Add(value.Language.LanguageId, pieces);
+ }
+ pieces.Add(value);
+ }
+ }
+ }
+
+ // now write the collection of snippet pieces to the document
+ XmlWriter writer = node.InsertAfter();
+ writer.WriteStartElement("snippets");
+ writer.WriteAttributeString("reference", reference);
+
+ // first write the snippets in the order their language shows up in the language map (if any)
+ foreach (string devlang in languageList)
+ {
+ foreach (KeyValuePair<string, List<Snippet>> entry in map)
+ {
+ if (!(devlang == entry.Key.ToLower()))
+ continue;
+ writer.WriteStartElement("snippet");
+ writer.WriteAttributeString("language", entry.Key);
+ writer.WriteString("\n");
+
+ // write the set of snippets for this language
+ List<Snippet> values = entry.Value;
+ for (int i = 0; i < values.Count; i++)
+ {
+ if (i > 0)
+ writer.WriteString("\n...\n\n\n");
+ // write the colorized or plaintext snippet text
+ WriteSnippetText(values[i], writer);
+ }
+
+ writer.WriteEndElement();
+ }
+ }
+
+ // now write any snippets whose language isn't in the language map
+ foreach (KeyValuePair<string, List<Snippet>> entry in map)
+ {
+ if (languageList.Contains(entry.Key.ToLower()))
+ continue;
+ writer.WriteStartElement("snippet");
+ writer.WriteAttributeString("language", entry.Key);
+ writer.WriteString("\n");
+
+ // write the set of snippets for this language
+ List<Snippet> values = entry.Value;
+ for (int i = 0; i < values.Count; i++)
+ {
+ if (i > 0)
+ writer.WriteString("\n...\n\n\n");
+ // write the colorized or plaintext snippet text
+ WriteSnippetText(values[i], writer);
+ }
+
+ writer.WriteEndElement();
+ }
+
+ writer.WriteEndElement();
+ writer.Close();
+ }
+ node.DeleteSelf();
+ }
+ }
+ #endregion
+
+ #region Private methods
+ /// <summary>
+ /// Index the example names to paths.
+ /// </summary>
+ /// <param name="rootDirectory">root directory location of parsnip samples</param>
+ private void loadExamples(string rootDirectory)
+ {
+ try
+ {
+ DirectoryInfo root = new DirectoryInfo(rootDirectory);
+ DirectoryInfo[] areaDirectories = root.GetDirectories();
+
+ foreach (DirectoryInfo area in areaDirectories)
+ {
+ DirectoryInfo[] exampleDirectories = area.GetDirectories();
+
+ foreach (DirectoryInfo example in exampleDirectories)
+ {
+ string path;
+ if (this.exampleIndex.TryGetValue(example.Name.ToLower(CultureInfo.InvariantCulture), out path))
+ WriteMessage(MessageLevel.Warn, string.Format("The example '{0}' under folder '{1}' already exists under '{2}'", example.Name, example.FullName, path));
+
+ this.exampleIndex[example.Name.ToLower(CultureInfo.InvariantCulture)] = example.FullName;
+ }
+ }
+ }
+ catch (Exception e)
+ {
+ WriteMessage(MessageLevel.Error, string.Format(System.Threading.Thread.CurrentThread.CurrentCulture, "The loading of examples failed:{0}", e.Message));
+ throw;
+ }
+ }
+
+ /// <summary>
+ /// Index the approved snippets.
+ /// </summary>
+ /// <param name="file">approved snippets log file</param>
+ private void parseApprovalLogFiles(string file)
+ {
+ string sampleName = string.Empty;
+ string unitName = string.Empty;
+ List<string> rejectedUnits = null;
+
+ XmlReader reader = XmlReader.Create(file);
+ try
+ {
+ while (reader.Read())
+ {
+ if (reader.NodeType == XmlNodeType.Element)
+ {
+ if (reader.Name == "Sample")
+ {
+ sampleName = reader.GetAttribute("name").ToLower(CultureInfo.InvariantCulture);
+ //create a new rejectedUnits list for this sample
+ rejectedUnits = null;
+ }
+
+ if (reader.Name == "Unit")
+ {
+ unitName = reader.GetAttribute("name").ToLower(CultureInfo.InvariantCulture);
+
+ bool include = Convert.ToBoolean(reader.GetAttribute("include"));
+
+ if (include)
+ {
+ if (this.approvedSnippetIndex.ContainsKey(Path.Combine(sampleName, unitName)))
+ WriteMessage(MessageLevel.Warn, string.Format("Sample '{0}' already exists in the approval log files.", sampleName));
+ this.approvedSnippetIndex[Path.Combine(sampleName, unitName)] = null;
+ }
+ else
+ {
+ if (rejectedUnits == null)
+ {
+ rejectedUnits = new List<string>();
+ rejectedSnippetIndex[sampleName] = rejectedUnits;
+ }
+ rejectedUnits.Add(unitName);
+ }
+ }
+ }
+ }
+ }
+ catch (XmlException e)
+ {
+ WriteMessage(MessageLevel.Error, String.Format("The specified approval log file is not well-formed. The error message is: {0}", e.Message));
+ }
+ finally
+ {
+ reader.Close();
+ }
+ }
+
+ /// <summary>
+ /// Write the snippet content to output files.
+ /// </summary>
+ /// <param name="node">code reference node</param>
+ /// <param name="identifier">List of snippets</param>
+ private void writeSnippetContent(XPathNavigator node, SnippetIdentifier identifier, List<Snippet> snippetList)
+ {
+ if (snippetList == null || snippetList.Count == 0)
+ {
+ WriteMessage(MessageLevel.Warn, "Empty snippet list past for node " + node.Name);
+ return;
+ }
+
+ XmlWriter writer = node.InsertAfter();
+ writer.WriteStartElement("snippets");
+ writer.WriteAttributeString("reference", node.Value);
+
+ // first write the snippets in the order their language shows up in the language map (if any)
+ foreach (string devlang in languageList)
+ {
+ foreach (Snippet snippet in snippetList)
+ {
+ if (!(devlang == snippet.Language.LanguageId.ToLower()))
+ continue;
+ writer.WriteStartElement("snippet");
+ writer.WriteAttributeString("language", snippet.Language.LanguageId);
+ writer.WriteString("\n");
+ // write the colorized or plaintext snippet text
+ WriteSnippetText(snippet, writer);
+ writer.WriteEndElement();
+ }
+ }
+
+ // now write any snippets whose language isn't in the language map
+ foreach (Snippet snippet in snippetList)
+ {
+ if (languageList.Contains(snippet.Language.LanguageId.ToLower()))
+ continue;
+ writer.WriteStartElement("snippet");
+ writer.WriteAttributeString("language", snippet.Language.LanguageId);
+ writer.WriteString("\n");
+ // write the colorized or plaintext snippet text
+ WriteSnippetText(snippet, writer);
+ writer.WriteEndElement();
+ }
+
+ writer.WriteEndElement();
+ writer.Close();
+ }
+
+ private void WriteSnippetText(Snippet snippet, XmlWriter writer)
+ {
+ // if colorization rules are defined, then colorize the snippet.
+ if (snippet.Language.ColorizationRules != null)
+ {
+ writeColorizedSnippet(colorizeSnippet(snippet.Content, snippet.Language.ColorizationRules), writer);
+ }
+ else
+ {
+ writer.WriteString(snippet.Content);
+ }
+ }
+
+ private static ICollection<Region> colorizeSnippet(string text, List<ColorizationRule> rules)
+ {
+ // Console.WriteLine("colorizing: '{0}'", text);
+ // create a linked list consiting entirely of one uncolored region
+ LinkedList<Region> regions = new LinkedList<Region>();
+ regions.AddFirst(new Region(text));
+
+ // loop over colorization rules
+ foreach (ColorizationRule rule in rules)
+ {
+ // loop over regions
+ LinkedListNode<Region> node = regions.First;
+ while (node != null)
+ {
+ // only try to colorize uncolored regions
+ if (node.Value.ClassName != null)
+ {
+ node = node.Next;
+ continue;
+ }
+
+ // find matches in the region
+ string regionText = node.Value.Text;
+ Capture[] matches = rule.Apply(regionText);
+
+ // if no matches were found, continue to the next region
+ if (matches.Length == 0)
+ {
+ node = node.Next;
+ continue;
+ }
+
+ // we found matches; break the region into colored and uncolered subregions
+ // index is where we are looking from; index-1 is the end of the last match
+ int index = 0;
+
+ LinkedListNode<Region> referenceNode = node;
+
+ foreach (Capture match in matches)
+ {
+ // create a leading uncolored region
+ if (match.Index > index)
+ {
+ //Console.WriteLine("uncolored: {0} '{1}' -> {2} '{3}'", index, regionText[index], match.Index - 1, regionText[match.Index - 1]);
+ Region uncoloredRegion = new Region(regionText.Substring(index, match.Index - index));
+ referenceNode = regions.AddAfter(referenceNode, uncoloredRegion);
+ }
+
+ // create a colored region
+ // Console.WriteLine("name = {0}", rule.ClassName);
+ //Console.WriteLine("colored: {0} '{1}' -> {2} '{3}'", match.Index, regionText[match.Index], match.Index + match.Length - 1, regionText[match.Index + match.Length - 1]);
+ Region coloredRegion = new Region(rule.ClassName, regionText.Substring(match.Index, match.Length));
+ referenceNode = regions.AddAfter(referenceNode, coloredRegion);
+
+ index = match.Index + match.Length;
+ }
+
+ // create a trailing uncolored region
+ if (index < regionText.Length)
+ {
+ Region uncoloredRegion = new Region(regionText.Substring(index));
+ referenceNode = regions.AddAfter(referenceNode, uncoloredRegion);
+ }
+
+ // remove the original node
+ regions.Remove(node);
+ node = referenceNode.Next;
+ }
+ }
+ return (regions);
+ }
+
+ private static void writeColorizedSnippet(ICollection<Region> regions, XmlWriter writer)
+ {
+ foreach (Region region in regions)
+ {
+ // Console.WriteLine("writing {0}", region.ClassName);
+ if (region.ClassName == null)
+ {
+ writer.WriteString(region.Text);
+ }
+ else
+ {
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", region.ClassName);
+ writer.WriteString(region.Text);
+ writer.WriteEndElement();
+ }
+ }
+ }
+ #endregion
+ }
+
+ /// <summary>
+ /// Language class.
+ /// </summary>
+ internal class Language
+ {
+ #region Private members
+ /// <summary>
+ /// The id of the programming language.
+ /// </summary>
+ private string languageId;
+
+ /// <summary>
+ /// Language file extension.
+ /// </summary>
+ private string extension;
+
+ /// <summary>
+ /// List of colorization rules.
+ /// </summary>
+ private List<ColorizationRule> colorizationRules;
+ #endregion
+
+ #region Constructor
+ /// <summary>
+ /// Language Constructor
+ /// </summary>
+ /// <param name="languageId">language id</param>
+ /// <param name="extension">language file extension</param>
+ /// <param name="rules">colorization rules</param>
+ public Language(string languageId, string extension, List<ColorizationRule> rules)
+ {
+ this.languageId = languageId;
+ this.extension = extension;
+ this.colorizationRules = rules;
+ }
+ #endregion
+
+ #region Public properties
+ /// <summary>
+ /// Gets the languageId.
+ /// </summary>
+ public string LanguageId
+ {
+ get
+ {
+ return this.languageId;
+ }
+ }
+
+ /// <summary>
+ /// Gets the file extension
+ /// </summary>
+ public string Extension
+ {
+ get
+ {
+ return this.extension;
+ }
+ }
+
+ /// <summary>
+ /// Gets the colorization rules
+ /// </summary>
+ public List<ColorizationRule> ColorizationRules
+ {
+ get
+ {
+ return this.colorizationRules;
+ }
+ }
+ #endregion
+
+ #region Public methods
+ /// <summary>
+ /// Check if the language is defined.
+ /// </summary>
+ /// <param name="languageId">language id</param>
+ /// <param name="extension">file extension</param>
+ /// <returns>boolean indicating if a language is defined</returns>
+ public bool IsMatch(string languageId, string extension)
+ {
+ if (this.languageId == languageId)
+ {
+ if (this.extension == extension)
+ {
+ return true;
+ }
+ else if (this.extension == "*")
+ {
+ return true;
+ }
+ }
+ else if (this.languageId == "*")
+ {
+ if (this.extension == extension)
+ {
+ return true;
+ }
+
+ if (this.extension == "*")
+ {
+ return true;
+ }
+ }
+
+ return false;
+ }
+ #endregion
+ }
+
+ /// <summary>
+ /// Snippet class.
+ /// </summary>
+ internal class Snippet
+ {
+ #region Private Members
+ /// <summary>
+ /// snippet content.
+ /// </summary>
+ private string content;
+
+ /// <summary>
+ /// snippet language
+ /// </summary>
+ private Language language;
+ #endregion
+
+ #region Constructor
+ /// <summary>
+ /// Constructor for Snippet class.
+ /// </summary>
+ /// <param name="content">snippet content</param>
+ /// <param name="language">snippet language</param>
+ public Snippet(string content, Language language)
+ {
+ this.content = content;
+ this.language = language;
+ }
+ #endregion
+
+ #region Public properties
+ /// <summary>
+ /// Gets the snippet content.
+ /// </summary>
+ public string Content
+ {
+ get
+ {
+ return this.content;
+ }
+ }
+
+ /// <summary>
+ /// Gets the snippet language.
+ /// </summary>
+ public Language Language
+ {
+ get
+ {
+ return this.language;
+ }
+ }
+ #endregion
+ }
+
+ internal class SnippetCache
+ {
+ private int _cacheSize = 100;
+
+ private LinkedList<String> lruLinkedList;
+
+ private Dictionary<string, IndexedExample> cache;
+
+ private Dictionary<string, string> _approvalIndex;
+ private Dictionary<string, string> _languageMap;
+ private List<Language> _languages;
+ private Dictionary<string, Object> _excludedUnits;
+
+ public SnippetCache(int cacheSize, Dictionary<string, string> approvalIndex, Dictionary<string, string> languageMap, List<Language> languages, Dictionary<string, Object> excludedUnits)
+ {
+ _cacheSize = cacheSize;
+ _approvalIndex = approvalIndex;
+ _languageMap = languageMap;
+ _languages = languages;
+ _excludedUnits = excludedUnits;
+
+ cache = new Dictionary<string, IndexedExample>(_cacheSize);
+
+ lruLinkedList = new LinkedList<string>();
+ }
+
+ public List<Snippet> GetContent(string examplePath, SnippetIdentifier snippetId)
+ {
+
+ // get the example containing the identifier
+ IndexedExample exampleIndex = GetCachedExample(examplePath);
+ if (exampleIndex == null)
+ return (null);
+
+ //
+ return exampleIndex.GetContent(snippetId);
+ }
+
+ private IndexedExample GetCachedExample(string examplePath)
+ {
+ IndexedExample exampleIndex;
+ if (cache.TryGetValue(examplePath, out exampleIndex))
+ {
+ // move the file from its current position to the head of the lru linked list
+ lruLinkedList.Remove(exampleIndex.ListNode);
+ lruLinkedList.AddFirst(exampleIndex.ListNode);
+ }
+ else
+ {
+ // not in the cache, so load and index a new example
+ exampleIndex = new IndexedExample(examplePath, _approvalIndex, _languageMap, _languages, _excludedUnits);
+ if (cache.Count >= _cacheSize)
+ {
+ // the cache is full
+ // the last node in the linked list has the path of the next file to remove from the cache
+ if (lruLinkedList.Last != null)
+ {
+ cache.Remove(lruLinkedList.Last.Value);
+ lruLinkedList.RemoveLast();
+ }
+ }
+ // add the new file to the cache and to the head of the lru linked list
+ cache.Add(examplePath, exampleIndex);
+ exampleIndex.ListNode = lruLinkedList.AddFirst(examplePath);
+ }
+ return (exampleIndex);
+ }
+
+
+ }
+
+ internal class IndexedExample
+ {
+ /// <summary>
+ /// snippet store.
+ /// </summary>
+ private Dictionary<SnippetIdentifier, List<Snippet>> exampleSnippets = new Dictionary<SnippetIdentifier, List<Snippet>>();
+ private Dictionary<string, string> _approvalIndex;
+ private Dictionary<string, string> _languageMap;
+ private List<Language> _languages;
+ private Dictionary<string, Object> _excludedUnits;
+
+ public IndexedExample(string examplePath, Dictionary<string, string> approvalIndex, Dictionary<string, string> languageMap, List<Language> languages, Dictionary<string, Object> excludedUnits)
+ {
+ _approvalIndex = approvalIndex;
+ _languageMap = languageMap;
+ _languages = languages;
+ _excludedUnits = excludedUnits;
+
+ // load all the snippets under the specified example path
+ this.ParseExample(new DirectoryInfo(examplePath));
+ }
+
+ public List<Snippet> GetContent(SnippetIdentifier identifier)
+ {
+ if (exampleSnippets.ContainsKey(identifier))
+ return exampleSnippets[identifier];
+ else
+ return null;
+ }
+
+ private LinkedListNode<string> listNode;
+ public LinkedListNode<string> ListNode
+ {
+ get
+ {
+ return (listNode);
+ }
+ set
+ {
+ listNode = value;
+ }
+ }
+
+ /// <summary>
+ /// Check whether the snippet unit is approved
+ /// </summary>
+ /// <param name="unit">unit directory</param>
+ /// <returns>boolean indicating whether the snippet unit is approved</returns>
+ private bool isApprovedUnit(DirectoryInfo unit)
+ {
+ string sampleName = unit.Parent.Name.ToLower(CultureInfo.InvariantCulture);
+ string unitName = unit.Name.ToLower(CultureInfo.InvariantCulture);
+
+ // return false if the unit name is in the list of names to exclude
+ if (_excludedUnits.ContainsKey(unitName))
+ return false;
+
+ // if no approval log is specified, all snippets are approved by default
+ if (_approvalIndex.Count == 0)
+ return true;
+
+ if (_approvalIndex.ContainsKey(Path.Combine(sampleName, unitName)))
+ {
+ return true;
+ }
+
+ return false;
+ }
+
+ /// <summary>
+ /// Parse the example directory.
+ /// </summary>
+ /// <param name="unit">unit directory</param>
+ private void ParseExample(DirectoryInfo exampleDirectory)
+ {
+ // process the approved language-specific unit directories for this example
+ DirectoryInfo[] unitDirectories = exampleDirectory.GetDirectories();
+
+ foreach (DirectoryInfo unit in unitDirectories)
+ {
+ if (this.isApprovedUnit(unit))
+ this.ParseUnit(unit);
+ }
+ }
+
+ /// <summary>
+ /// Parse the unit directory for language files.
+ /// </summary>
+ /// <param name="unit">unit directory containing a language-specific version of the example</param>
+ private void ParseUnit(DirectoryInfo unit)
+ {
+ // the language is the Unit Directory name, or the language id mapped to that name
+ string language = unit.Name;
+ if (_languageMap.ContainsKey(language.ToLower()))
+ language = _languageMap[language.ToLower()];
+
+ ParseDirectory(unit, language, unit.Parent.Name);
+ }
+
+ /// <summary>
+ /// Parse an example subdir looking for source files containing snipppets.
+ /// </summary>
+ /// <param name="directory">The directory to parse</param>
+ /// <param name="language">the id of a programming language</param>
+ /// <param name="exampleName">the name of the example</param>
+ private void ParseDirectory(DirectoryInfo directory, string language, string exampleName)
+ {
+ // parse the files in this directory
+ FileInfo[] files = directory.GetFiles();
+ foreach (FileInfo file in files)
+ ParseFile(file, language, exampleName);
+
+ // recurse to get files in any subdirectories
+ DirectoryInfo[] subdirectories = directory.GetDirectories();
+ foreach (DirectoryInfo subdirectory in subdirectories)
+ ParseDirectory(subdirectory, language, exampleName);
+ }
+
+ /// <summary>
+ /// Parse the language files to retrieve the snippet content.
+ /// </summary>
+ /// <param name="file">snippet file</param>
+ /// <param name="language">snippet language</param>
+ /// <param name="example">name of the example that contains this file</param>
+ private void ParseFile(FileInfo file, string language, string exampleName)
+ {
+ string snippetLanguage = string.Empty;
+
+ // The snippet language is the name (or id mapping) of the Unit folder
+ // unless the file extension is .xaml
+ // NOTE: this is just preserving the way ExampleBuilder handled it (which we can change when we're confident there are no unwanted side-effects)
+ if (file.Extension.ToLower() == ".xaml")
+ snippetLanguage = "XAML";
+ else
+ snippetLanguage = language;
+
+ // get the text in the file
+ StreamReader reader = file.OpenText();
+ string text = reader.ReadToEnd();
+ reader.Close();
+
+ this.parseSnippetContent(text, snippetLanguage, file.Extension, exampleName);
+ }
+
+ /// <summary>
+ /// Parse the snippet content.
+ /// </summary>
+ /// <param name="text">content to be parsed</param>
+ /// <param name="language">snippet language</param>
+ /// <param name="extension">file extension</param>
+ /// <param name="example">snippet example</param>
+ private void parseSnippetContent(string text, string language, string extension, string example)
+ {
+ // parse the text for snippets
+ for (Match match = find.Match(text); match.Success; match = find.Match(text, match.Index + 10))
+ {
+ string snippetIdentifier = match.Groups["id"].Value;
+ string snippetContent = match.Groups["tx"].Value;
+ snippetContent = clean.Replace(snippetContent, "\n");
+
+ //if necessary, clean one more time to catch snippet comments on consecutive lines
+ if (clean.Match(snippetContent).Success)
+ {
+ snippetContent = clean.Replace(snippetContent, "\n");
+ }
+
+ snippetContent = cleanAtStart.Replace(snippetContent, "");
+ snippetContent = cleanAtEnd.Replace(snippetContent, "");
+
+ // get the language/extension from our languages List, which may contain colorization rules for the language
+ Language snippetLanguage = new Language(language, extension, null);
+ foreach (Language lang in _languages)
+ {
+ if (!lang.IsMatch(language, extension))
+ continue;
+ snippetLanguage = lang;
+ break;
+ }
+
+ SnippetIdentifier identifier = new SnippetIdentifier(example, snippetIdentifier);
+ // BUGBUG: i don't think this ever happens, but if it did we should write an error
+ if (!IsLegalXmlText(snippetContent))
+ {
+ // WriteMessage(MessageLevel.Warn, String.Format("Snippet '{0}' language '{1}' contains illegal characters.", identifier.ToString(), snippetLanguage.LanguageId));
+ continue;
+ }
+
+ snippetContent = StripLeadingSpaces(snippetContent);
+
+ // Add the snippet information to dictionary
+ Snippet snippet = new Snippet(snippetContent, snippetLanguage);
+ List<Snippet> values;
+
+ if (!this.exampleSnippets.TryGetValue(identifier, out values))
+ {
+ values = new List<Snippet>();
+ this.exampleSnippets.Add(identifier, values);
+ }
+ values.Add(snippet);
+ }
+ }
+
+ private bool IsLegalXmlText(string text)
+ {
+ foreach (char c in text)
+ {
+ if (!IsLegalXmlCharacter(c)) return (false);
+ }
+ return (true);
+ }
+
+ private bool IsLegalXmlCharacter(char c)
+ {
+ if (c < 0x20)
+ {
+ return ((c == 0x09) || (c == 0x0A) || (c == 0x0D));
+ }
+ else
+ {
+ if (c < 0xD800)
+ {
+ return (true);
+ }
+ else
+ {
+ return ((c >= 0xE000) && (c <= 0xFFFD));
+ }
+ }
+ }
+
+ private static string StripLeadingSpaces(string text)
+ {
+
+ if (text == null) throw new ArgumentNullException("text");
+
+ // split the text into lines
+ string[] stringSeparators = new string[] { "\r\n" };
+ string[] lines = text.Split(stringSeparators, StringSplitOptions.None);
+
+ // no need to do this if there is only one line
+ if (lines.Length == 1) return (lines[0]);
+
+ // figure out how many leading spaces to delete
+ int spaces = Int32.MaxValue;
+ for (int i = 0; i < lines.Length; i++)
+ {
+
+ string line = lines[i];
+
+ // skip empty lines
+ if (line.Length == 0) continue;
+
+ // determine the number of leading spaces
+ int index = 0;
+ while (index < line.Length)
+ {
+ if (line[index] != ' ') break;
+ index++;
+ }
+
+ if (index == line.Length)
+ {
+ // lines that are all spaces should just be treated as empty
+ lines[i] = String.Empty;
+ }
+ else
+ {
+ // otherwise, keep track of the minimum number of leading spaces
+ if (index < spaces) spaces = index;
+ }
+
+ }
+
+ // re-form the string with leading spaces deleted
+ StringBuilder result = new StringBuilder();
+ foreach (string line in lines)
+ {
+ if (line.Length == 0)
+ {
+ result.AppendLine();
+ }
+ else
+ {
+ result.AppendLine(line.Substring(spaces));
+ }
+ }
+ // Console.WriteLine("AFTER:");
+ // Console.WriteLine(result.ToString());
+ return (result.ToString());
+
+ }
+
+ /// <summary>
+ /// Regex to find the snippet content.
+ /// </summary>
+ private static Regex find = new Regex(
+ @"<snippet(?<id>\w+)>.*\n(?<tx>(.|\n)*?)\n.*</snippet(\k<id>)>",
+ RegexOptions.IgnoreCase | RegexOptions.Compiled);
+
+ /// <summary>
+ /// Regex to clean the snippet content.
+ /// </summary>
+ private static Regex clean = new Regex(
+ @"\n[^\n]*?<(/?)snippet(\w+)>[^\n]*?\n",
+ RegexOptions.IgnoreCase | RegexOptions.Compiled);
+
+ /// <summary>
+ /// Regex to clean the start of the snippet.
+ /// </summary>
+ private static Regex cleanAtStart = new Regex(
+ @"^[^\n]*?<(/?)snippet(\w+)>[^\n]*?\n",
+ RegexOptions.IgnoreCase | RegexOptions.Compiled);
+
+ /// <summary>
+ /// Regex to clean the end of the snippet.
+ /// </summary>
+ private static Regex cleanAtEnd = new Regex(
+ @"\n[^\n]*?<(/?)snippet(\w+)>[^\n]*?$",
+ RegexOptions.IgnoreCase | RegexOptions.Compiled);
+
+ }
+
+
+}
+
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SwitchComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SwitchComponent.cs
index 47b1d6c..48f9fbe 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SwitchComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SwitchComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.Configuration;
@@ -59,15 +62,16 @@ namespace Microsoft.Ddue.Tools {
}
- public override void Dispose () {
- foreach (IEnumerable<BuildComponent> components in cases.Values) {
- foreach (BuildComponent component in components) {
- component.Dispose();
+ protected override void Dispose(bool disposing) {
+ if (disposing) {
+ foreach (IEnumerable<BuildComponent> components in cases.Values) {
+ foreach (BuildComponent component in components) {
+ component.Dispose();
+ }
}
}
- base.Dispose();
+ base.Dispose(disposing);
}
-
}
} \ No newline at end of file
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SyntaxComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SyntaxComponent.cs
index 39c68f9..3573712 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SyntaxComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/SyntaxComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.Configuration;
@@ -59,7 +62,7 @@ namespace Microsoft.Ddue.Tools {
WriteMessage(MessageLevel.Error, String.Format("The type '{0}' in the assembly '{1}' does not have an appropriate constructor. The error message is: {2}", type_name, assembly_path, e.Message));
} catch (TargetInvocationException e) {
WriteMessage(MessageLevel.Error, String.Format("An error occured while attempting to instantiate the type '{0}' in the assembly '{1}'. The error message is: {2}", type_name, assembly_path, e.InnerException.Message));
- } catch (InvalidCastException e) {
+ } catch (InvalidCastException) {
WriteMessage(MessageLevel.Error, String.Format("The type '{0}' in the assembly '{1}' is not a SyntaxGenerator.", type_name, assembly_path));
}
}
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/TargetCollection.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/TargetCollection.cs
index 4366e6f..188da53 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/TargetCollection.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/TargetCollection.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.Text.RegularExpressions;
@@ -279,8 +282,16 @@ namespace Microsoft.Ddue.Tools {
public class ProcedureTarget : MemberTarget {
+ internal bool conversionOperator;
+
internal MemberReference explicitlyImplements = null;
+ public bool ConversionOperator {
+ get {
+ return (conversionOperator);
+ }
+ }
+
public MemberReference ExplicitlyImplements {
get {
return (explicitlyImplements);
@@ -326,6 +337,16 @@ namespace Microsoft.Ddue.Tools {
}
}
+ // property to hold specialized template arguments (used with extension methods)
+ internal TypeReference[] templateArgs;
+ public TypeReference[] TemplateArgs
+ {
+ get
+ {
+ return (templateArgs);
+ }
+ }
+
}
public class Parameter {
@@ -440,6 +461,7 @@ namespace Microsoft.Ddue.Tools {
}
}
+ [CLSCompliant(false)]
public TypeReference[] Arguments {
get {
return (arguments);
@@ -627,6 +649,49 @@ namespace Microsoft.Ddue.Tools {
public abstract class MemberReference : Reference { }
+ /// <summary>
+ /// Contains the information to generate the display string for an extension method link
+ /// </summary>
+ public class ExtensionMethodReference : Reference
+ {
+ private string methodName;
+ public string Name
+ {
+ get
+ {
+ return (methodName);
+ }
+ }
+
+ private Parameter[] parameters;
+ public Parameter[] Parameters
+ {
+ get
+ {
+ return (parameters);
+ }
+ }
+
+ private TypeReference[] templateArgs;
+ public TypeReference[] TemplateArgs
+ {
+ get
+ {
+ return (templateArgs);
+ }
+ }
+
+ internal ExtensionMethodReference(string methodName, Parameter[] parameters, TypeReference[] templateArgs)
+ {
+ if (methodName == null)
+ throw new ArgumentNullException("methodName");
+ this.methodName = methodName;
+ this.parameters = parameters;
+ this.templateArgs = templateArgs;
+ }
+ }
+
+
public class SimpleMemberReference : MemberReference {
private string memberId;
@@ -763,6 +828,9 @@ namespace Microsoft.Ddue.Tools {
private static XPathExpression apiIsExplicitImplementationExpression = XPathExpression.Compile("boolean(memberdata/@visibility='private' and proceduredata/@virtual='true' and boolean(implements/member))");
private static XPathExpression apiImplementedMembersExpression = XPathExpression.Compile("implements/member");
+ // op_explicit and op_implicit data
+ private static XPathExpression apiIsConversionOperatorExpression = XPathExpression.Compile("boolean((apidata/@subsubgroup='operator') and (apidata/@name='Explicit' or apidata/@name='Implicit'))");
+
// container data
private static XPathExpression apiContainingNamespaceExpression = XPathExpression.Compile("(containers/namespace)[1]");
private static XPathExpression apiContainingTypeExpression = XPathExpression.Compile("(containers/type)[1]");
@@ -774,6 +842,9 @@ namespace Microsoft.Ddue.Tools {
private static XPathExpression apiTemplatesExpression = XPathExpression.Compile("templates/template");
private static XPathExpression templateNameExpression = XPathExpression.Compile("string(@name)");
+ // extension method template data
+ private static XPathExpression methodTemplateArgsExpression = XPathExpression.Compile("templates/*");
+
// Change the container
public static string ContainerExpression {
@@ -955,10 +1026,28 @@ namespace Microsoft.Ddue.Tools {
target.parameters = CreateParameterList(api);
target.returnType = CreateReturnType(api);
+ target.conversionOperator = (bool)api.Evaluate(apiIsConversionOperatorExpression);
+
if ((bool)api.Evaluate(apiIsExplicitImplementationExpression)) {
target.explicitlyImplements = CreateMemberReference(api.SelectSingleNode(apiImplementedMembersExpression));
}
+ // this selects templates/template or templates/type, because extension methods can have a mix of generic and specialization
+ XPathNodeIterator templateArgNodes = api.Select(methodTemplateArgsExpression);
+ TypeReference[] templateArgumentReferences = null;
+ if (templateArgNodes != null && templateArgNodes.Count > 0)
+ {
+ templateArgumentReferences = new TypeReference[templateArgNodes.Count];
+ int i = 0;
+ foreach (XPathNavigator templateArgNode in templateArgNodes)
+ {
+ templateArgumentReferences[i] = CreateTypeReference(templateArgNode);
+ i++;
+ }
+ }
+ target.templateArgs = templateArgumentReferences;
+
+ // get the short name of each template param
target.templates = GetTemplateNames(api);
return (target);
@@ -1114,7 +1203,36 @@ namespace Microsoft.Ddue.Tools {
}
}
-
+
+ /// <summary>
+ /// Create an object to store the information to generate the display string for an extension method
+ /// </summary>
+ /// <param name="node">xml node containing the extension method data</param>
+ /// <returns></returns>
+ public static ExtensionMethodReference CreateExtensionMethodReference(XPathNavigator node)
+ {
+ string methodName = (string)node.Evaluate(apiNameExpression);
+ Parameter[] parameters = CreateParameterList(node);
+ TypeReference[] templateArgumentReferences = null;
+ // List<TemplateName> templateNames = new List<TemplateName>();
+
+ // this selects templates/template or templates/type, because extension methods can have a mix of generic and specialization
+ // get the short name of each template param or template arg
+ XPathNodeIterator templateNodes = node.Select(methodTemplateArgsExpression);
+ if (templateNodes != null && templateNodes.Count > 0)
+ {
+ templateArgumentReferences = new TypeReference[templateNodes.Count];
+ int i = 0;
+ foreach (XPathNavigator templateNode in templateNodes)
+ {
+ templateArgumentReferences[i] = CreateTypeReference(templateNode);
+ i++;
+ }
+ }
+ ExtensionMethodReference extMethod = new ExtensionMethodReference(methodName, parameters, templateArgumentReferences);
+ return extMethod;
+ }
+
}
// ***** Logic for constructing references from code entity reference strings *****
@@ -1186,7 +1304,11 @@ namespace Microsoft.Ddue.Tools {
// process templates
if (api.StartsWith("T:``")) {
int position = Convert.ToInt32(api.Substring(4));
- return (new NamedTemplateTypeReference("UMP"));
+ if (genericTypeContext == null) {
+ return (new NamedTemplateTypeReference("UMP"));
+ } else {
+ return (new IndexedTemplateTypeReference(genericTypeContext.Id, position));
+ }
} else if (api.StartsWith("T:`")) {
int position = Convert.ToInt32(api.Substring(3));
if (genericTypeContext == null) {
@@ -1237,6 +1359,8 @@ namespace Microsoft.Ddue.Tools {
return (new SpecializedTypeReference(specializations.ToArray()));
}
+ //private static Regex tr = new Regex(@"^(M:([_a-zA-Z0-9]+\.)*([_a-zA-Z0-9]+(\{.+\})?\.)*[_a-zA-Z0-9]+(\{.+\})?\.([_a-zA-Z0-9]+(\{[^\.]+\})?#)*[_a-zA-Z0-9]+(``\d+)?(\((((([_a-zA-Z0-9]+\.)*([_a-zA-Z0-9]+(\{.+\})?\.)*[_a-zA-Z0-9]+(\{.+\})?)|(`\d+)|(``\d+))(@|\*|(\[\]))*,)*((([_a-zA-Z0-9]+\.)*([_a-zA-Z0-9]+(\{.+\})?\.)*[_a-zA-Z0-9]+(\{.+\})?)|(`\d+)|(``\d+))(@|\*|(\[\]))*\))?(~((([_a-zA-Z0-9]+\.)*([_a-zA-Z0-9]+(\{.+\})?\.)*[_a-zA-Z0-9]+(\{.+\})?)|(`\d+)|(``\d+))(@|\*|(\[\]))*)?)$", RegexOptions.Compiled);
+ //private static Regex tr = new Regex(@"^(M:([_a-zA-Z0-9]+\.)*([_a-zA-Z0-9]+(\{[^:\(\)\s]+\})?\.)*[_a-zA-Z0-9]+(\{[^:\(\)\s]+\})?\.[_a-zA-Z0-9]+(``\d+)?(\((((([_a-zA-Z0-9]+\.)*([_a-zA-Z0-9]+(\{[^:\(\)\s]+\})?\.)*[_a-zA-Z0-9]+(\{[^:\(\)\s]+\})?)|(`\d+)|(``\d+))(@|\*|(\[\]))*,)*((([_a-zA-Z0-9]+\.)*([_a-zA-Z0-9]+(\{[^:\(\)\s]+\})?\.)*[_a-zA-Z0-9]+(\{[^:\(\)\s]+\})?)|(`\d+)|(``\d+))(@|\*|(\[\]))*\))?)$", RegexOptions.Compiled);
private static Regex tr = new Regex(@"^(M:([_a-zA-Z0-9]+\.)*[_a-zA-Z0-9]+\.[_a-zA-Z0-9]+(``\d+)?(\((((([_a-zA-Z0-9]+\.)*[_a-zA-Z0-9]+)|(`\d+)|(``\d+))(@|\*|(\[\]))*,)*((([_a-zA-Z0-9]+\.)*[_a-zA-Z0-9]+)|(`\d+)|(``\d+))(@|\*|(\[\]))*\))?)$", RegexOptions.Compiled);
public static MemberReference CreateMemberReference (string api) {
@@ -1378,6 +1502,7 @@ namespace Microsoft.Ddue.Tools {
string simpleTypePattern = String.Format(@"{0}({1}(`\d+)?\.)*{1}(`\d+)?", optionalNamespacePattern, namePattern);
+ //string specializedTypePattern = String.Format(@"{0}({1}(\{{.+\}})?\.)*{1}(\{{.+\}})?", optionalNamespacePattern, namePattern);
string specializedTypePattern = String.Format(@"({0}(\{{.+\}})?\.)*{0}(\{{.+\}})?", namePattern);
string baseTypePattern = String.Format(@"({0})|({1})", simpleTypePattern, specializedTypePattern);
@@ -1467,13 +1592,13 @@ namespace Microsoft.Ddue.Tools {
break;
case ',':
if (specializationCount == 0) {
- types.Add("T:" + typelist.Substring(start, index - start));
+ types.Add("T:" + typelist.Substring(start, index - start).Trim());
start = index + 1;
}
break;
}
}
- types.Add("T:" + typelist.Substring(start));
+ types.Add("T:" + typelist.Substring(start).Trim());
return (types.ToArray());
}
@@ -1688,7 +1813,16 @@ namespace Microsoft.Ddue.Tools {
if ((options & DisplayOptions.ShowContainer) > 0) {
TypeReference type = target.Type;
WriteType(type, options & ~DisplayOptions.ShowContainer, writer);
- WriteSeperator(writer);
+ MethodTarget methodTarget = target as MethodTarget;
+ if (methodTarget != null) {
+ if (methodTarget.conversionOperator) {
+ writer.WriteString(" ");
+ } else {
+ WriteSeperator(writer);
+ }
+ } else {
+ WriteSeperator(writer);
+ }
}
// special logic for writing methods
@@ -1745,6 +1879,13 @@ namespace Microsoft.Ddue.Tools {
return;
}
+ ExtensionMethodReference extMethod = reference as ExtensionMethodReference;
+ if (extMethod != null)
+ {
+ WriteExtensionMethod(extMethod, options, writer);
+ return;
+ }
+
InvalidReference invalid = reference as InvalidReference;
if (invalid != null) {
WriteInvalid(invalid, options, writer);
@@ -1855,6 +1996,12 @@ namespace Microsoft.Ddue.Tools {
writer.WriteAttributeString("class", "nu");
writer.WriteString("(");
writer.WriteEndElement();
+
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "fs");
+ writer.WriteString("<'");
+ writer.WriteEndElement();
+
writer.WriteEndElement();
for (int i = 0; i < templates.Length; i++) {
@@ -1883,6 +2030,12 @@ namespace Microsoft.Ddue.Tools {
writer.WriteAttributeString("class", "nu");
writer.WriteString(")");
writer.WriteEndElement();
+
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "fs");
+ writer.WriteString(">");
+ writer.WriteEndElement();
+
writer.WriteEndElement();
}
@@ -1931,9 +2084,15 @@ namespace Microsoft.Ddue.Tools {
writer.WriteEndElement();
writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "fs");
+ writer.WriteString("<'");
+ writer.WriteEndElement();
+
+ writer.WriteStartElement("span");
writer.WriteAttributeString("class", "nu");
writer.WriteString("(");
writer.WriteEndElement();
+
writer.WriteEndElement();
for (int i = 0; i < specialization.Length; i++) {
@@ -1959,6 +2118,11 @@ namespace Microsoft.Ddue.Tools {
writer.WriteEndElement();
writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "fs");
+ writer.WriteString(">");
+ writer.WriteEndElement();
+
+ writer.WriteStartElement("span");
writer.WriteAttributeString("class", "nu");
writer.WriteString(")");
writer.WriteEndElement();
@@ -2013,6 +2177,16 @@ namespace Microsoft.Ddue.Tools {
for (int i = 1; i < reference.Rank; i++) { writer.WriteString(","); }
writer.WriteString("]");
writer.WriteEndElement();
+
+ // F# array notation
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "fs");
+ writer.WriteString("[");
+ for (int i = 1; i < reference.Rank; i++) { writer.WriteString(","); }
+ writer.WriteString("]");
+ writer.WriteEndElement();
+
+
writer.WriteEndElement(); // end of <span class="languageSpecificText"> element
}
@@ -2042,6 +2216,13 @@ namespace Microsoft.Ddue.Tools {
writer.WriteAttributeString("class", "nu");
writer.WriteString(".");
writer.WriteEndElement();
+
+ // F# seperator
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "fs");
+ writer.WriteString(".");
+ writer.WriteEndElement();
+
writer.WriteEndElement();
}
@@ -2168,6 +2349,28 @@ namespace Microsoft.Ddue.Tools {
}
}
+ public void WriteExtensionMethod(ExtensionMethodReference extMethod, DisplayOptions options, XmlWriter writer)
+ {
+ if (extMethod == null) throw new ArgumentNullException("extMethod");
+ if (writer == null) throw new ArgumentNullException("writer");
+
+ // write the unqualified method name
+ writer.WriteString(extMethod.Name);
+
+ // if this is a generic method, write any template params or args
+ if (extMethod.TemplateArgs != null && extMethod.TemplateArgs.Length > 0)
+ {
+ WriteTemplateArguments(extMethod.TemplateArgs, writer);
+ }
+
+ // write parameters
+ if ((options & DisplayOptions.ShowParameters) > 0)
+ {
+ Parameter[] parameters = extMethod.Parameters;
+ WriteMethodParameters(extMethod.Parameters, writer);
+ }
+ }
+
public void WriteMember (MemberReference member, DisplayOptions options, XmlWriter writer) {
if (member == null) throw new ArgumentNullException("member");
@@ -2217,6 +2420,7 @@ namespace Microsoft.Ddue.Tools {
WriteMemberTarget(target, options, writer, dictionary);
} else {
TextReferenceUtilities.WriteSimpleMemberReference(member, options, writer, this);
+ //throw new InvalidOperationException(String.Format("Unknown member target '{0}'", member.Id));
}
}
@@ -2224,7 +2428,11 @@ namespace Microsoft.Ddue.Tools {
private void WriteProcedureName (ProcedureTarget target, DisplayOptions options, XmlWriter writer) {
MemberReference implements = target.ExplicitlyImplements;
if (implements == null) {
- writer.WriteString(target.Name);
+ if (target.conversionOperator) {
+ WriteConversionOperator(target, writer);
+ } else {
+ writer.WriteString(target.Name);
+ }
} else {
WriteMember(implements, DisplayOptions.ShowContainer, writer);
}
@@ -2235,16 +2443,63 @@ namespace Microsoft.Ddue.Tools {
WriteProcedureName(target, options, writer);
if ((options & DisplayOptions.ShowTemplates) > 0) {
- WriteTemplateParameters(target.Templates, writer);
+ // if this is a generic method, write any template params or args
+ if (target.TemplateArgs != null && target.TemplateArgs.Length > 0)
+ {
+ WriteTemplateArguments(target.TemplateArgs, writer);
+ }
}
if ((options & DisplayOptions.ShowParameters) > 0) {
Parameter[] parameters = target.Parameters;
- WriteMethodParameters(parameters, writer, dictionary);
+
+ if (target.ConversionOperator) {
+ TypeReference returns = target.returnType;
+ WriteConversionOperatorParameters(parameters, returns, writer, dictionary);
+ } else {
+ WriteMethodParameters(parameters, writer, dictionary);
+ }
}
}
+ private void WriteConversionOperator(ProcedureTarget target, XmlWriter writer)
+ {
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "languageSpecificText");
+
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "cs");
+ writer.WriteString(target.Name);
+ writer.WriteEndElement();
+
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "vb");
+ if (target.name == "Explicit") {
+ writer.WriteString("Narrowing");
+ } else if (target.name == "Implicit") {
+ writer.WriteString("Widening");
+ }
+ writer.WriteEndElement();
+
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "cpp");
+ writer.WriteString(target.name);
+ writer.WriteEndElement();
+
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "nu");
+ writer.WriteString(target.name);
+ writer.WriteEndElement();
+
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "fs");
+ writer.WriteString(target.name);
+ writer.WriteEndElement();
+
+ writer.WriteEndElement();
+ }
+
internal void WriteMethodParameters (Parameter[] parameters, XmlWriter writer) {
WriteMethodParameters(parameters, writer, null);
}
@@ -2266,22 +2521,74 @@ namespace Microsoft.Ddue.Tools {
writer.WriteStartElement("span");
writer.WriteAttributeString("class", "languageSpecificText");
// when there are no parameters, VB shows no parenthesis
+
writer.WriteStartElement("span");
writer.WriteAttributeString("class", "cs");
writer.WriteString("()");
writer.WriteEndElement();
+
writer.WriteStartElement("span");
writer.WriteAttributeString("class", "cpp");
writer.WriteString("()");
writer.WriteEndElement();
+
writer.WriteStartElement("span");
writer.WriteAttributeString("class", "nu");
writer.WriteString("()");
writer.WriteEndElement();
+
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "fs");
+ writer.WriteString("()");
+ writer.WriteEndElement();
+
writer.WriteEndElement();
+
}
}
+ private void WriteConversionOperatorParameters(Parameter[] parameters, TypeReference returns, XmlWriter writer, Dictionary<IndexedTemplateTypeReference, TypeReference> dictionary)
+ {
+ if (parameters.Length > 0 || returns != null) writer.WriteString("(");
+
+ if (parameters.Length > 0) WriteType(parameters[0].Type, DisplayOptions.Default, writer, dictionary);
+
+ if (parameters.Length > 0 && returns != null) writer.WriteString(" to ");
+
+ if (returns != null) WriteType(returns, DisplayOptions.Default, writer, dictionary);
+
+ if (parameters.Length > 0 || returns != null) writer.WriteString(")");
+
+ if (parameters.Length == 0 && returns == null)
+ {
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "languageSpecificText");
+ // when there are no parameters, VB shows no parenthesis
+
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "cs");
+ writer.WriteString("()");
+ writer.WriteEndElement();
+
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "cpp");
+ writer.WriteString("()");
+ writer.WriteEndElement();
+
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "nu");
+ writer.WriteString("()");
+ writer.WriteEndElement();
+
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "fs");
+ writer.WriteString("()");
+ writer.WriteEndElement();
+
+ writer.WriteEndElement();
+ }
+ }
+
private void WriteProperty (PropertyTarget target, DisplayOptions options, XmlWriter writer) {
WriteProcedureName(target, options, writer);
@@ -2313,6 +2620,12 @@ namespace Microsoft.Ddue.Tools {
writer.WriteAttributeString("class", "nu");
writer.WriteString("(");
writer.WriteEndElement();
+
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "fs");
+ writer.WriteString(" ");
+ writer.WriteEndElement();
+
writer.WriteEndElement();
// show parameters
@@ -2343,6 +2656,12 @@ namespace Microsoft.Ddue.Tools {
writer.WriteAttributeString("class", "nu");
writer.WriteString(")");
writer.WriteEndElement();
+
+ writer.WriteStartElement("span");
+ writer.WriteAttributeString("class", "fs");
+ writer.WriteString(" ");
+ writer.WriteEndElement();
+
writer.WriteEndElement();
}
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/Targets.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/Targets.cs
index 00c17f2..656da13 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/Targets.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/Targets.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.Text;
@@ -13,28 +16,11 @@ namespace BuildComponents {
internal string id;
- internal string container;
-
- internal string file;
-
public string Id {
get {
return (id);
}
}
-
- public string Container {
- get {
- return (container);
- }
- }
-
- public string File {
- get {
- return (file);
- }
- }
-
}
// Namespace
@@ -57,8 +43,6 @@ namespace BuildComponents {
// apidata
- protected string name;
-
protected string subgroup;
// containers
@@ -69,32 +53,8 @@ namespace BuildComponents {
protected string containingAssembly;
- // templates
-
- protected string[] templates;
-
- // typedata
-
- private object visibility;
-
- private bool isAbstract;
-
- private bool isSealed;
-
- private bool isSerializable;
-
- // family
-
- private SimpleTypeReference parentType;
-
// other
- public string Name {
- get {
- return (name);
- }
- }
-
public NamespaceReference Namespace {
get {
return (containingNamespace);
@@ -107,12 +67,6 @@ namespace BuildComponents {
}
}
- public string[] Templates {
- get {
- return (templates);
- }
- }
-
}
// Construction of targets from Xml
@@ -144,7 +98,7 @@ namespace BuildComponents {
public partial class NamespaceTarget {
- public static NamespaceTarget Create (XmlReader apidata) {
+ public static new NamespaceTarget Create (XmlReader apidata) {
NamespaceTarget target = new NamespaceTarget();
string name = apidata.GetAttribute("name");
@@ -172,16 +126,16 @@ namespace BuildComponents {
public partial class TypeTarget {
- public static TypeTarget Create (XmlReader api) {
+ public static new TypeTarget Create (XmlReader api) {
api.ReadToFollowing("apidata");
- string subgroup = api.GetAttribute("subgroup");
+ //string subgroup = api.GetAttribute("subgroup");
api.ReadToFollowing("typedata");
- string visibilityValue = api.GetAttribute("visibility");
- string abstractValue = api.GetAttribute("abstract");
- string sealedValue = api.GetAttribute("sealed");
- string serializableValue = api.GetAttribute("serealizable");
+ //string visibilityValue = api.GetAttribute("visibility");
+ //string abstractValue = api.GetAttribute("abstract");
+ //string sealedValue = api.GetAttribute("sealed");
+ //string serializableValue = api.GetAttribute("serealizable");
api.ReadToFollowing("library");
string containingAssemblyValue = api.GetAttribute("assembly");
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/TaskGrabberComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/TaskGrabberComponent.cs
index 81fc811..d03fa15 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/TaskGrabberComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/TaskGrabberComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.Configuration;
@@ -296,7 +299,7 @@ namespace Microsoft.Ddue.Tools {
{
Console.WriteLine("Exception adding to dictionary {0}", key);
Console.WriteLine(e);
- throw e;
+ throw;
}
}
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/TransformComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/TransformComponent.cs
index 82b3241..712ceb1 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/TransformComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/TransformComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.Configuration;
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ValidateComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ValidateComponent.cs
index afd6286..aeb8854 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ValidateComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/ValidateComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Xml;
using System.Xml.Schema;
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/WdxResolveConceptualLinksComponent.cs b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/WdxResolveConceptualLinksComponent.cs
index d404d28..a827164 100644
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/WdxResolveConceptualLinksComponent.cs
+++ b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/WdxResolveConceptualLinksComponent.cs
@@ -1,5 +1,8 @@
-// Copyright (c) Microsoft Corporation. All rights reserved.
-//
+// Copyright © Microsoft Corporation.
+// This source file is subject to the Microsoft Permissive License.
+// See http://www.microsoft.com/resources/sharedsource/licensingbasics/sharedsourcelicenses.mspx.
+// All other rights reserved.
+
using System;
using System.Collections.Generic;
using System.IO;
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/makefile b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/makefile
deleted file mode 100644
index 29ec09b..0000000
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/makefile
+++ /dev/null
@@ -1,13 +0,0 @@
-LIBRARY = ..\BuildAssembler\BuildAssembler.exe
-
-FLOW_COMPONENTS = IfThenComponent.cs ForEachComponent.cs CloneComponent.cs
-DIAGNOSTIC_COMPONENTS = DisplayComponent.cs ValidateComponent.cs
-PROCESSING_COMPONENTS = CopyFromFileComponent.cs CopyFromDirectoryComponent.cs SharedContentComponent.cs TransformComponent.cs SaveComponent.cs ResolveLinksComponent.cs MsdnService.cs
-
-COMPONENTS = $(FLOW_COMPONENTS) $(DIAGNOSTIC_COMPONENTS) $(PROCESSING_COMPONENTS)
-
-all: BuildComponents.dll
-
-BuildComponents.dll: *Component.cs CustomContext.cs MsdnService.cs $(LIBRARY)
- csc /t:library /out:BuildComponents.dll *Component.cs CustomContext.cs MsdnService.cs /r:$(LIBRARY)
- copy BuildComponents.dll ..\..\ProductionTools\BuildComponents
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/makefile.inc b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/makefile.inc
deleted file mode 100644
index 32f7350..0000000
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/makefile.inc
+++ /dev/null
@@ -1,2 +0,0 @@
-!INCLUDE $(INETROOT)\build\makefile.inc
-
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/placefile b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/placefile
deleted file mode 100644
index bc01306..0000000
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/placefile
+++ /dev/null
@@ -1 +0,0 @@
-Microsoft.Ddue.Tools.BuildComponents.dll Manifold
diff --git a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/plan.txt b/tools/Sandcastle/Source/BuildAssembler/BuildComponents/plan.txt
deleted file mode 100644
index d72dc7a..0000000
--- a/tools/Sandcastle/Source/BuildAssembler/BuildComponents/plan.txt
+++ /dev/null
@@ -1,62 +0,0 @@
-
-Flow Control
-------------
-
-<IfThen>
- <if>xpath_format</if>
- <then>component_list</then>
- <else>component_list</else>
-</IfThen>
-
-<ForEach>
- <xpath>xpath_format</file>
- component_list
-</ForEach>
-
-<Clone>
- <branch>component_list</branch>+
-</Clone>
-
-<Save>
- <file>xpath_format</file>
-</Save>
-
-
-
-Diagnostic
-----------
-
-<Validate>
- <schema></schema>
-</Validate>
-
-
-<Display>
- <xpath></xpath>
-</Display>
-
-
-
-Processing
-----------
-
-<InsertComments>
- <directory></directory>
- <schema></schema>
- <comment></comment>
- <identifier></identifier>
- <source></source>
- <target></target>
-</InsertComments>
-
-<InsertData>
- <file>file_path</file>
- <schema>file_path</schema>
- <source>xpath_format</source>
- <target>xpath_format</target>
-</InsertData>
-
-<Transform>
- <transform>file_path</transform>
- <parameter name=" " value=" " />+
-</Transform>