提交 cd5604a5 编写于 作者: S Sam Harwell

Add DocumentationComment.ValueText for Metadata as Source

上级 672d8d6b
......@@ -135,6 +135,18 @@ public void Returns()
TestFormat(comment, expected);
}
[Fact, Trait(Traits.Feature, Traits.Features.MetadataAsSource)]
public void Value()
{
var comment = @"<value>A string value</value>";
var expected =
$@"{FeaturesResources.Value_colon}
A string value";
TestFormat(comment, expected);
}
[Fact, Trait(Traits.Feature, Traits.Features.MetadataAsSource)]
public void SummaryAndParams()
{
......@@ -189,6 +201,7 @@ public void FormatEverything()
<typeparam name=""U""></typeparam>
<typeparam name=""V"">Another type parameter.</typeparam>
<returns>This returns nothing.</returns>
<value>This has no value.</value>
<exception cref=""System.GooException"">Thrown for an unknown reason</exception>
<exception cref=""System.BarException""></exception>
<exception cref=""System.BlahException"">Thrown when blah blah blah</exception>
......@@ -219,6 +232,9 @@ public void FormatEverything()
{FeaturesResources.Returns_colon}
This returns nothing.
{FeaturesResources.Value_colon}
This has no value.
{FeaturesResources.Exceptions_colon}
System.GooException:
Thrown for an unknown reason
......
......@@ -4569,6 +4569,15 @@ internal class FeaturesResources {
}
}
/// <summary>
/// Looks up a localized string similar to Value:.
/// </summary>
internal static string Value_colon {
get {
return ResourceManager.GetString("Value_colon", resourceCulture);
}
}
/// <summary>
/// Looks up a localized string similar to Variable declaration can be deconstructed.
/// </summary>
......
......@@ -1669,4 +1669,7 @@ This version used in: {2}</value>
<data name="DisposableFieldsShouldBeDisposedDescription" xml:space="preserve">
<value>A type that implements System.IDisposable declares fields that are of types that also implement IDisposable. The Dispose method of the field is not called by the Dispose method of the declaring type. To fix a violation of this rule, call Dispose on fields that are of types that implement IDisposable if you are responsible for allocating and releasing the unmanaged resources held by the field.</value>
</data>
<data name="Value_colon" xml:space="preserve">
<value>Value:</value>
</data>
</root>
\ No newline at end of file
......@@ -20,6 +20,7 @@ internal class DocCommentFormatter
private const string s_labelFormat = "{0}:";
private static readonly string s_typeParameterHeader = FeaturesResources.Type_parameters_colon;
private static readonly string s_returnsHeader = FeaturesResources.Returns_colon;
private static readonly string s_valueHeader = FeaturesResources.Value_colon;
private static readonly string s_exceptionsHeader = FeaturesResources.Exceptions_colon;
private static readonly string s_remarksHeader = FeaturesResources.Remarks_colon;
......@@ -97,6 +98,14 @@ internal static ImmutableArray<string> Format(IDocumentationCommentFormattingSer
formattedCommentLinesBuilder.AddRange(CreateWrappedTextFromRawText(formattedReturnsText));
}
var formattedValueText = docCommentFormattingService.Format(docComment.ValueText);
if (!string.IsNullOrWhiteSpace(formattedValueText))
{
formattedCommentLinesBuilder.Add(string.Empty);
formattedCommentLinesBuilder.Add(s_valueHeader);
formattedCommentLinesBuilder.AddRange(CreateWrappedTextFromRawText(formattedValueText));
}
var exceptionTypes = docComment.ExceptionTypes;
if (exceptionTypes.Length > 0)
{
......
......@@ -527,6 +527,11 @@
<target state="new">Use simple 'using' statement</target>
<note />
</trans-unit>
<trans-unit id="Value_colon">
<source>Value:</source>
<target state="new">Value:</target>
<note />
</trans-unit>
<trans-unit id="Warning_colon_changing_namespace_may_produce_invalid_code_and_change_code_meaning">
<source>Warning: Changing namespace may produce invalid code and change code meaning.</source>
<target state="translated">Upozornění: Změna oboru názvů může vést k vytvoření neplatného kódu a změnit význam kódu.</target>
......
......@@ -527,6 +527,11 @@
<target state="new">Use simple 'using' statement</target>
<note />
</trans-unit>
<trans-unit id="Value_colon">
<source>Value:</source>
<target state="new">Value:</target>
<note />
</trans-unit>
<trans-unit id="Warning_colon_changing_namespace_may_produce_invalid_code_and_change_code_meaning">
<source>Warning: Changing namespace may produce invalid code and change code meaning.</source>
<target state="translated">Warnung: Durch die Änderung des Namespaces kann der Code ungültig werden oder seine Bedeutung verändern.</target>
......
......@@ -527,6 +527,11 @@
<target state="new">Use simple 'using' statement</target>
<note />
</trans-unit>
<trans-unit id="Value_colon">
<source>Value:</source>
<target state="new">Value:</target>
<note />
</trans-unit>
<trans-unit id="Warning_colon_changing_namespace_may_produce_invalid_code_and_change_code_meaning">
<source>Warning: Changing namespace may produce invalid code and change code meaning.</source>
<target state="translated">Advertencia: si cambia Cambiar el espacio de nombres puede producir código inválido y cambiar el significado del código.</target>
......
......@@ -527,6 +527,11 @@
<target state="new">Use simple 'using' statement</target>
<note />
</trans-unit>
<trans-unit id="Value_colon">
<source>Value:</source>
<target state="new">Value:</target>
<note />
</trans-unit>
<trans-unit id="Warning_colon_changing_namespace_may_produce_invalid_code_and_change_code_meaning">
<source>Warning: Changing namespace may produce invalid code and change code meaning.</source>
<target state="translated">Avertissement : Le changement d’espace de noms peut produire du code non valide et changer la signification du code.</target>
......
......@@ -527,6 +527,11 @@
<target state="new">Use simple 'using' statement</target>
<note />
</trans-unit>
<trans-unit id="Value_colon">
<source>Value:</source>
<target state="new">Value:</target>
<note />
</trans-unit>
<trans-unit id="Warning_colon_changing_namespace_may_produce_invalid_code_and_change_code_meaning">
<source>Warning: Changing namespace may produce invalid code and change code meaning.</source>
<target state="translated">Avviso: la modifica dello spazio dei nomi può comportare la creazione di codice non valido e modificare il significato del codice.</target>
......
......@@ -527,6 +527,11 @@
<target state="new">Use simple 'using' statement</target>
<note />
</trans-unit>
<trans-unit id="Value_colon">
<source>Value:</source>
<target state="new">Value:</target>
<note />
</trans-unit>
<trans-unit id="Warning_colon_changing_namespace_may_produce_invalid_code_and_change_code_meaning">
<source>Warning: Changing namespace may produce invalid code and change code meaning.</source>
<target state="translated">警告: 名前空間を変更すると無効なコードが生成され、コードの意味が変更される可能性があります。</target>
......
......@@ -527,6 +527,11 @@
<target state="new">Use simple 'using' statement</target>
<note />
</trans-unit>
<trans-unit id="Value_colon">
<source>Value:</source>
<target state="new">Value:</target>
<note />
</trans-unit>
<trans-unit id="Warning_colon_changing_namespace_may_produce_invalid_code_and_change_code_meaning">
<source>Warning: Changing namespace may produce invalid code and change code meaning.</source>
<target state="translated">경고: 네임스페이스를 변경하면 잘못된 코드가 발생하고 코드 의미가 변경될 수 있습니다.</target>
......
......@@ -527,6 +527,11 @@
<target state="new">Use simple 'using' statement</target>
<note />
</trans-unit>
<trans-unit id="Value_colon">
<source>Value:</source>
<target state="new">Value:</target>
<note />
</trans-unit>
<trans-unit id="Warning_colon_changing_namespace_may_produce_invalid_code_and_change_code_meaning">
<source>Warning: Changing namespace may produce invalid code and change code meaning.</source>
<target state="translated">Ostrzeżenie: Zmiana przestrzeni nazw może skutkować nieprawidłowym kodem i zmianą jego znaczenia.</target>
......
......@@ -527,6 +527,11 @@
<target state="new">Use simple 'using' statement</target>
<note />
</trans-unit>
<trans-unit id="Value_colon">
<source>Value:</source>
<target state="new">Value:</target>
<note />
</trans-unit>
<trans-unit id="Warning_colon_changing_namespace_may_produce_invalid_code_and_change_code_meaning">
<source>Warning: Changing namespace may produce invalid code and change code meaning.</source>
<target state="translated">Aviso: a alteração do namespace pode produzir código inválido e mudar o significado do código.</target>
......
......@@ -527,6 +527,11 @@
<target state="new">Use simple 'using' statement</target>
<note />
</trans-unit>
<trans-unit id="Value_colon">
<source>Value:</source>
<target state="new">Value:</target>
<note />
</trans-unit>
<trans-unit id="Warning_colon_changing_namespace_may_produce_invalid_code_and_change_code_meaning">
<source>Warning: Changing namespace may produce invalid code and change code meaning.</source>
<target state="translated">Предупреждение: изменение пространства имен может привести к появлению недопустимого кода и к изменению значения кода.</target>
......
......@@ -527,6 +527,11 @@
<target state="new">Use simple 'using' statement</target>
<note />
</trans-unit>
<trans-unit id="Value_colon">
<source>Value:</source>
<target state="new">Value:</target>
<note />
</trans-unit>
<trans-unit id="Warning_colon_changing_namespace_may_produce_invalid_code_and_change_code_meaning">
<source>Warning: Changing namespace may produce invalid code and change code meaning.</source>
<target state="translated">Uyarı: Ad alanının değiştirilmesi geçersiz kod oluşturabilir ve kodun anlamını değiştirebilir.</target>
......
......@@ -527,6 +527,11 @@
<target state="new">Use simple 'using' statement</target>
<note />
</trans-unit>
<trans-unit id="Value_colon">
<source>Value:</source>
<target state="new">Value:</target>
<note />
</trans-unit>
<trans-unit id="Warning_colon_changing_namespace_may_produce_invalid_code_and_change_code_meaning">
<source>Warning: Changing namespace may produce invalid code and change code meaning.</source>
<target state="translated">警告: 更改命名空间可能会产生无效的代码并更改代码的含义。</target>
......
......@@ -527,6 +527,11 @@
<target state="new">Use simple 'using' statement</target>
<note />
</trans-unit>
<trans-unit id="Value_colon">
<source>Value:</source>
<target state="new">Value:</target>
<note />
</trans-unit>
<trans-unit id="Warning_colon_changing_namespace_may_produce_invalid_code_and_change_code_meaning">
<source>Warning: Changing namespace may produce invalid code and change code meaning.</source>
<target state="translated">警告: 變更命名空間可能會產生無效的程式碼及變更程式碼意義。</target>
......
......@@ -39,6 +39,11 @@ internal sealed class DocumentationComment
/// </summary>
public string ReturnsText { get; private set; }
/// <summary>
/// The text in the &lt;value&gt; tag. Null if no tag existed.
/// </summary>
public string ValueText { get; private set; }
/// <summary>
/// The text in the &lt;remarks&gt; tag. Null if no tag existed.
/// </summary>
......@@ -182,6 +187,10 @@ private void ParseCallback(XmlReader reader)
{
_comment.ReturnsText = TrimEachLine(reader.ReadInnerXml());
}
else if (XmlNames.ElementEquals(localName, XmlNames.ValueElementName) && _comment.ValueText == null)
{
_comment.ValueText = TrimEachLine(reader.ReadInnerXml());
}
else if (XmlNames.ElementEquals(localName, XmlNames.RemarksElementName) && _comment.RemarksText == null)
{
_comment.RemarksText = TrimEachLine(reader.ReadInnerXml());
......
......@@ -16,6 +16,7 @@ public void ParseEmptyXmlFragment()
Assert.Equal(null, document.ExampleText);
Assert.Equal(null, document.ReturnsText);
Assert.Equal(null, document.ValueText);
Assert.Equal(null, document.SummaryText);
}
......@@ -25,6 +26,7 @@ public void ParseFullTag()
var comment = DocumentationComment.FromXmlFragment(
@"<summary>Hello, world!</summary>
<returns>42.</returns>
<value>43.</value>
<example>goo.Bar();</example>
<param name=""goo"">A goo.</param>
<typeparam name=""T"">A type.</typeparam>
......@@ -33,6 +35,7 @@ public void ParseFullTag()
Assert.Equal("Hello, world!", comment.SummaryText);
Assert.Equal("42.", comment.ReturnsText);
Assert.Equal("43.", comment.ValueText);
Assert.Equal("goo.Bar();", comment.ExampleText);
Assert.Equal("goo", comment.ParameterNames[0]);
Assert.Equal("A goo.", comment.GetParameterText("goo"));
......@@ -246,6 +249,7 @@ World .
string fullXml = $@"<summary>{multiLineText}</summary>
<returns>{multiLineText}</returns>
<value>{multiLineText}</value>
<example>{multiLineText}</example>
<param name=""goo"">{multiLineText}</param>
<typeparam name=""T"">{multiLineText}</typeparam>
......@@ -263,6 +267,7 @@ World .
Assert.Equal(expected, comment.SummaryText);
Assert.Equal(expected, comment.ReturnsText);
Assert.Equal(expected, comment.ValueText);
Assert.Equal(expected, comment.ExampleText);
Assert.Equal(expected, comment.GetParameterText("goo"));
Assert.Equal(expected, comment.GetTypeParameterText("T"));
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册