提交 803b5a60 编写于 作者: L lorcanmooney 提交者: Sam Harwell

Cleanup and remove redundancy

上级 557a3ffe
......@@ -967,7 +967,7 @@ public static XmlEmptyElementSyntax XmlNullKeywordElement()
private static XmlEmptyElementSyntax XmlKeywordElement(string keyword)
{
return XmlEmptyElement(DocumentationCommentXmlNames.SeeElementName).AddAttributes(
XmlTextAttribute(DocumentationCommentXmlNames.KeywordElementName, keyword));
XmlTextAttribute(DocumentationCommentXmlNames.LangwordAttributeName, keyword));
}
/// <summary>
......
......@@ -12,34 +12,38 @@ internal static class DocumentationCommentXmlNames
public const string CElementName = "c";
public const string CodeElementName = "code";
public const string CompletionListElementName = "completionlist";
public const string DescriptionElementName = "description";
public const string ExampleElementName = "example";
public const string ExceptionElementName = "exception";
public const string IncludeElementName = "include";
public const string ItemElementName = "item";
public const string ListElementName = "list";
public const string ListHeaderElementName = "listheader";
public const string ParaElementName = "para";
public const string ParameterElementName = "param";
public const string ParameterReferenceElementName = "paramref";
public const string PermissionElementName = "permission";
public const string PlaceholderElementName = "placeholder";
public const string PreliminaryElementName = "preliminary";
public const string RemarksElementName = "remarks";
public const string ReturnsElementName = "returns";
public const string SeeElementName = "see";
public const string SeeAlsoElementName = "seealso";
public const string SummaryElementName = "summary";
public const string TermElementName = "term";
public const string ThreadSafetyElementName = "threadsafety";
public const string TypeParameterElementName = "typeparam";
public const string TypeParameterReferenceElementName = "typeparamref";
public const string ValueElementName = "value";
public const string ThreadSafetyElementName = "threadsafety";
public const string PreliminaryElementName = "preliminary";
public const string KeywordElementName = "langword";
public const string PlaceholderElementName = "placeholder";
public const string CrefAttributeName = "cref";
public const string NameAttributeName = "name";
public const string FileAttributeName = "file";
public const string InstanceAttributeName = "instance";
public const string LangwordAttributeName = "langword";
public const string NameAttributeName = "name";
public const string PathAttributeName = "path";
public const string TypeAttributeName = "type";
public const string StaticAttributeName = "static";
public const string InstanceAttributeName = "instance";
public const string TypeAttributeName = "type";
public static bool ElementEquals(string name1, string name2, bool fromVb = false)
{
......
......@@ -748,7 +748,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
XmlAttribute(
XmlName(
Nothing,
XmlTextLiteralToken(DocumentationCommentXmlNames.KeywordElementName, DocumentationCommentXmlNames.KeywordElementName)),
XmlTextLiteralToken(DocumentationCommentXmlNames.LangwordAttributeName, DocumentationCommentXmlNames.LangwordAttributeName)),
XmlString(
Token(SyntaxKind.DoubleQuoteToken),
SyntaxTokenList.Create(XmlTextLiteralToken(keyword, keyword)),
......
......@@ -16,6 +16,8 @@
namespace Microsoft.CodeAnalysis.CSharp.Completion.Providers
{
using static DocumentationCommentXmlNames;
internal partial class XmlDocCommentCompletionProvider : AbstractDocCommentCompletionProvider<DocumentationCommentTriviaSyntax>
{
internal override bool IsInsertionTrigger(SourceText text, int characterPosition, OptionSet options)
......@@ -88,10 +90,10 @@ internal override bool IsInsertionTrigger(SourceText text, int characterPosition
if (token.Parent.Parent.Kind() == SyntaxKind.XmlElement ||
token.Parent.Parent.IsParentKind(SyntaxKind.XmlElement))
{
items.AddRange(GetNestedTags(declaredSymbol));
items.AddRange(GetNestedItems(declaredSymbol));
}
if (token.Parent.Parent.Kind() == SyntaxKind.XmlElement && ((XmlElementSyntax)token.Parent.Parent).StartTag.Name.LocalName.ValueText == ListTagName)
if (token.Parent.Parent.Kind() == SyntaxKind.XmlElement && ((XmlElementSyntax)token.Parent.Parent).StartTag.Name.LocalName.ValueText == ListElementName)
{
items.AddRange(GetListItems());
}
......@@ -99,13 +101,13 @@ internal override bool IsInsertionTrigger(SourceText text, int characterPosition
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)
if (element.StartTag.Name.LocalName.ValueText == ListElementName)
{
items.AddRange(GetListItems());
}
}
if (token.Parent.Parent.Kind() == SyntaxKind.XmlElement && ((XmlElementSyntax)token.Parent.Parent).StartTag.Name.LocalName.ValueText == ListHeaderTagName)
if (token.Parent.Parent.Kind() == SyntaxKind.XmlElement && ((XmlElementSyntax)token.Parent.Parent).StartTag.Name.LocalName.ValueText == ListHeaderElementName)
{
items.AddRange(GetListHeaderItems());
}
......@@ -123,12 +125,12 @@ internal override bool IsInsertionTrigger(SourceText text, int characterPosition
{
var startTag = (XmlElementStartTagSyntax)token.Parent;
if (token == startTag.GreaterThanToken && startTag.Name.LocalName.ValueText == ListTagName)
if (token == startTag.GreaterThanToken && startTag.Name.LocalName.ValueText == ListElementName)
{
items.AddRange(GetListItems());
}
if (token == startTag.GreaterThanToken && startTag.Name.LocalName.ValueText == ListHeaderTagName)
if (token == startTag.GreaterThanToken && startTag.Name.LocalName.ValueText == ListHeaderElementName)
{
items.AddRange(GetListHeaderItems());
}
......@@ -144,16 +146,16 @@ private bool IsAttributeNameContext(SyntaxToken token, int position, out string
if (token.IsKind(SyntaxKind.XmlTextLiteralToken) && string.IsNullOrWhiteSpace(token.Text))
{
// Unlike VB, the C# lexer has a preference for leading trivia so, in the following text...
// Unlike VB, the C# lexer has a preference for leading trivia. In the following example...
//
// <exception $$
// /// <exception $$
//
// ...the trailing whitespace will not be attached as trivia to any node. Instead it will
// be treated as an independent XmlTextLiteralToken, so we skip backwards by one token.
// be treated as an independent XmlTextLiteralToken, so skip backwards by one token.
token = token.GetPreviousToken();
}
// Handle the <elem$$ case by going back one token (some of the subsequent checks need to account for this)
// Handle the <elem$$ case by going back one token (the subsequent checks need to account for this)
token = token.GetPreviousTokenIfTouchingWord(position);
SyntaxList<XmlAttributeSyntax> attributes = default(SyntaxList<XmlAttributeSyntax>);
......@@ -179,9 +181,7 @@ private bool IsAttributeNameContext(SyntaxToken token, int position, out string
}
}
attributeNames = attributes.Select(attribute => GetAttributeName(attribute))
.ToSet();
attributeNames = attributes.Select(GetAttributeName).ToSet();
return elementName != null;
}
......@@ -192,26 +192,20 @@ private string GetElementNameAndAttributes(SyntaxNode node, out SyntaxList<XmlAt
switch (node.Kind())
{
case SyntaxKind.XmlEmptyElement:
{
var emptyElementSyntax = (XmlEmptyElementSyntax)node;
nameSyntax = emptyElementSyntax.Name;
attributes = emptyElementSyntax.Attributes;
break;
}
case SyntaxKind.XmlElement:
{
node = ((XmlElementSyntax)node).StartTag;
goto case SyntaxKind.XmlElementStartTag;
}
case SyntaxKind.XmlElementStartTag:
{
var startTagSyntax = (XmlElementStartTagSyntax)node;
nameSyntax = startTagSyntax.Name;
attributes = startTagSyntax.Attributes;
break;
}
default:
nameSyntax = null;
......@@ -276,7 +270,7 @@ private bool IsAttributeValueContext(SyntaxToken token, out string tagName, out
protected override IEnumerable<string> GetKeywordNames()
{
return SyntaxFacts.GetKeywordKinds().Select(keyword => SyntaxFacts.GetText(keyword));
return SyntaxFacts.GetKeywordKinds().Select(SyntaxFacts.GetText);
}
protected override IEnumerable<string> GetExistingTopLevelElementNames(DocumentationCommentTriviaSyntax syntax)
......
......@@ -6,6 +6,7 @@ Imports Microsoft.CodeAnalysis.Completion.Providers
Imports Microsoft.CodeAnalysis.Options
Imports Microsoft.CodeAnalysis.Text
Imports Microsoft.CodeAnalysis.VisualBasic.Syntax
Imports Roslyn.Utilities.DocumentationCommentXmlNames
Namespace Microsoft.CodeAnalysis.VisualBasic.Completion.Providers
Partial Friend Class XmlDocCommentCompletionProvider
......@@ -101,23 +102,23 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Completion.Providers
Dim grandParent = parentElement.Parent
If grandParent.IsKind(SyntaxKind.XmlElement) Then
items.AddRange(GetNestedTags(symbol))
items.AddRange(GetNestedItems(symbol))
If GetStartTagName(grandParent) = ListTagName Then
If GetStartTagName(grandParent) = ListElementName Then
items.AddRange(GetListItems())
End If
If GetStartTagName(grandParent) = ListHeaderTagName Then
If GetStartTagName(grandParent) = ListHeaderElementName Then
items.AddRange(GetListHeaderItems())
End If
ElseIf token.Parent.IsKind(SyntaxKind.XmlText) AndAlso token.Parent.Parent.IsKind(SyntaxKind.XmlElement) Then
items.AddRange(GetNestedTags(symbol))
items.AddRange(GetNestedItems(symbol))
If GetStartTagName(token.Parent.Parent) = ListTagName Then
If GetStartTagName(token.Parent.Parent) = ListElementName Then
items.AddRange(GetListItems())
End If
If GetStartTagName(token.Parent.Parent) = ListHeaderTagName Then
If GetStartTagName(token.Parent.Parent) = ListHeaderElementName Then
items.AddRange(GetListHeaderItems())
End If
ElseIf grandParent.IsKind(SyntaxKind.DocumentationCommentTrivia) Then
......@@ -128,11 +129,11 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Completion.Providers
If token.Parent.IsKind(SyntaxKind.XmlElementStartTag, SyntaxKind.XmlName) Then
If parentElement.IsParentKind(SyntaxKind.XmlElement) Then
If GetStartTagName(parentElement.Parent) = ListTagName Then
If GetStartTagName(parentElement.Parent) = ListElementName Then
items.AddRange(GetListItems())
End If
If GetStartTagName(parentElement.Parent) = ListHeaderTagName Then
If GetStartTagName(parentElement.Parent) = ListHeaderElementName Then
items.AddRange(GetListHeaderItems())
End If
End If
......@@ -229,7 +230,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Completion.Providers
End Sub
Protected Overrides Function GetKeywordNames() As IEnumerable(Of String)
Return SyntaxFacts.GetKeywordKinds().Select(Function(keyword) SyntaxFacts.GetText(keyword))
Return SyntaxFacts.GetKeywordKinds().Select(AddressOf SyntaxFacts.GetText)
End Function
Protected Overrides Function GetExistingTopLevelElementNames(parentTrivia As DocumentationCommentTriviaSyntax) As IEnumerable(Of String)
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册