提交 ff914ae5 编写于 作者: K Kevin Pilch-Bisson 提交者: GitHub

Merge pull request #12089 from tvand7093/issue-8322

Fixed broken partial tags in Xml documentation 
......@@ -1083,5 +1083,31 @@ static void Main(string[] args)
}
", "args");
}
}
[WorkItem(8322, "https://github.com/dotnet/roslyn/issues/8322")]
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
public async Task PartialTagCompletion()
{
await VerifyItemsExistAsync(@"
public class foo
{
/// <r$$
public void bar() { }
}", "!--", "![CDATA[", "completionlist", "example", "exception", "include", "permission", "remarks", "see", "seealso", "summary");
}
[WorkItem(8322, "https://github.com/dotnet/roslyn/issues/8322")]
[Fact, Trait(Traits.Feature, Traits.Features.Completion)]
public async Task PartialTagCompletionNestedTags()
{
await VerifyItemsExistAsync(@"
public class foo
{
/// <summary>
/// <r$$
/// </summary>
public void bar() { }
}", "!--", "![CDATA[", "c", "code", "list", "para", "see", "seealso");
}
}
}
......@@ -17,7 +17,7 @@
namespace Microsoft.CodeAnalysis.CSharp.Completion.Providers
{
internal partial class XmlDocCommentCompletionProvider : AbstractDocCommentCompletionProvider
internal partial class XmlDocCommentCompletionProvider : AbstractDocCommentCompletionProvider
{
internal override bool IsInsertionTrigger(SourceText text, int characterPosition, OptionSet options)
{
......@@ -73,7 +73,8 @@ internal override bool IsInsertionTrigger(SourceText text, int characterPosition
(token.Parent.IsKind(SyntaxKind.XmlName) && token.Parent.IsParentKind(SyntaxKind.XmlEmptyElement)))
{
// The user is typing inside an XmlElement
if (token.Parent.Parent.Kind() == SyntaxKind.XmlElement)
if (token.Parent.Parent.Kind() == SyntaxKind.XmlElement ||
token.Parent.Parent.IsParentKind(SyntaxKind.XmlElement))
{
items.AddRange(GetNestedTags(declaredSymbol));
}
......@@ -83,7 +84,7 @@ internal override bool IsInsertionTrigger(SourceText text, int characterPosition
items.AddRange(GetListItems(span));
}
if (token.Parent.IsParentKind(SyntaxKind.XmlEmptyElement) & token.Parent.Parent.IsParentKind(SyntaxKind.XmlElement))
if (token.Parent.IsParentKind(SyntaxKind.XmlEmptyElement) && token.Parent.Parent.IsParentKind(SyntaxKind.XmlElement))
{
var element = (XmlElementSyntax)token.Parent.Parent.Parent;
if (element.StartTag.Name.LocalName.ValueText == ListTagName)
......@@ -97,7 +98,8 @@ internal override bool IsInsertionTrigger(SourceText text, int characterPosition
items.AddRange(GetListHeaderItems());
}
if (token.Parent.Parent is DocumentationCommentTriviaSyntax)
if (token.Parent.Parent is DocumentationCommentTriviaSyntax ||
(token.Parent.Parent.IsKind(SyntaxKind.XmlEmptyElement) && token.Parent.Parent.Parent is DocumentationCommentTriviaSyntax))
{
items.AddRange(GetTopLevelSingleUseNames(parentTrivia, span));
items.AddRange(GetTopLevelRepeatableItems());
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册