diff options
author | Andrew Arnott <andrewarnott@gmail.com> | 2009-09-20 21:45:59 -0700 |
---|---|---|
committer | Andrew Arnott <andrewarnott@gmail.com> | 2009-09-21 08:06:25 -0700 |
commit | e4e6423ed5f5ba51c500780b5ce72fcd64d63156 (patch) | |
tree | cded6512b7591e569aeeb78419ca0007f7dced01 /tools/Sandcastle/Source/BuildAssembler/BuildComponents | |
parent | bbe3f9cc9c8a1e5909273c1a162a63ea7a66afd8 (diff) | |
download | DotNetOpenAuth-e4e6423ed5f5ba51c500780b5ce72fcd64d63156.zip DotNetOpenAuth-e4e6423ed5f5ba51c500780b5ce72fcd64d63156.tar.gz DotNetOpenAuth-e4e6423ed5f5ba51c500780b5ce72fcd64d63156.tar.bz2 |
Upgraded to latest Sandcastle changeset (26202).
Diffstat (limited to 'tools/Sandcastle/Source/BuildAssembler/BuildComponents')
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> |