Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
803b5a60
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
803b5a60
编写于
9月 02, 2016
作者:
L
lorcanmooney
提交者:
Sam Harwell
8月 31, 2017
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Cleanup and remove redundancy
上级
557a3ffe
变更
6
展开全部
隐藏空白更改
内联
并排
Showing
6 changed file
with
126 addition
and
170 deletion
+126
-170
src/Compilers/CSharp/Portable/Syntax/SyntaxFactory.cs
src/Compilers/CSharp/Portable/Syntax/SyntaxFactory.cs
+1
-1
src/Compilers/Core/Portable/InternalUtilities/DocumentationCommentXmlNames.cs
...ortable/InternalUtilities/DocumentationCommentXmlNames.cs
+11
-7
src/Compilers/VisualBasic/Portable/Syntax/SyntaxFactory.vb
src/Compilers/VisualBasic/Portable/Syntax/SyntaxFactory.vb
+1
-1
src/Features/CSharp/Portable/Completion/CompletionProviders/XmlDocCommentCompletionProvider.cs
...on/CompletionProviders/XmlDocCommentCompletionProvider.cs
+14
-20
src/Features/Core/Portable/Completion/Providers/AbstractDocCommentCompletionProvider.cs
...pletion/Providers/AbstractDocCommentCompletionProvider.cs
+89
-132
src/Features/VisualBasic/Portable/Completion/CompletionProviders/XmlDocCommentCompletionProvider.vb
...on/CompletionProviders/XmlDocCommentCompletionProvider.vb
+10
-9
未找到文件。
src/Compilers/CSharp/Portable/Syntax/SyntaxFactory.cs
浏览文件 @
803b5a60
...
@@ -967,7 +967,7 @@ public static XmlEmptyElementSyntax XmlNullKeywordElement()
...
@@ -967,7 +967,7 @@ public static XmlEmptyElementSyntax XmlNullKeywordElement()
private
static
XmlEmptyElementSyntax
XmlKeywordElement
(
string
keyword
)
private
static
XmlEmptyElementSyntax
XmlKeywordElement
(
string
keyword
)
{
{
return
XmlEmptyElement
(
DocumentationCommentXmlNames
.
SeeElementName
).
AddAttributes
(
return
XmlEmptyElement
(
DocumentationCommentXmlNames
.
SeeElementName
).
AddAttributes
(
XmlTextAttribute
(
DocumentationCommentXmlNames
.
KeywordElement
Name
,
keyword
));
XmlTextAttribute
(
DocumentationCommentXmlNames
.
LangwordAttribute
Name
,
keyword
));
}
}
/// <summary>
/// <summary>
...
...
src/Compilers/Core/Portable/InternalUtilities/DocumentationCommentXmlNames.cs
浏览文件 @
803b5a60
...
@@ -12,34 +12,38 @@ internal static class DocumentationCommentXmlNames
...
@@ -12,34 +12,38 @@ internal static class DocumentationCommentXmlNames
public
const
string
CElementName
=
"c"
;
public
const
string
CElementName
=
"c"
;
public
const
string
CodeElementName
=
"code"
;
public
const
string
CodeElementName
=
"code"
;
public
const
string
CompletionListElementName
=
"completionlist"
;
public
const
string
CompletionListElementName
=
"completionlist"
;
public
const
string
DescriptionElementName
=
"description"
;
public
const
string
ExampleElementName
=
"example"
;
public
const
string
ExampleElementName
=
"example"
;
public
const
string
ExceptionElementName
=
"exception"
;
public
const
string
ExceptionElementName
=
"exception"
;
public
const
string
IncludeElementName
=
"include"
;
public
const
string
IncludeElementName
=
"include"
;
public
const
string
ItemElementName
=
"item"
;
public
const
string
ListElementName
=
"list"
;
public
const
string
ListElementName
=
"list"
;
public
const
string
ListHeaderElementName
=
"listheader"
;
public
const
string
ParaElementName
=
"para"
;
public
const
string
ParaElementName
=
"para"
;
public
const
string
ParameterElementName
=
"param"
;
public
const
string
ParameterElementName
=
"param"
;
public
const
string
ParameterReferenceElementName
=
"paramref"
;
public
const
string
ParameterReferenceElementName
=
"paramref"
;
public
const
string
PermissionElementName
=
"permission"
;
public
const
string
PermissionElementName
=
"permission"
;
public
const
string
PlaceholderElementName
=
"placeholder"
;
public
const
string
PreliminaryElementName
=
"preliminary"
;
public
const
string
RemarksElementName
=
"remarks"
;
public
const
string
RemarksElementName
=
"remarks"
;
public
const
string
ReturnsElementName
=
"returns"
;
public
const
string
ReturnsElementName
=
"returns"
;
public
const
string
SeeElementName
=
"see"
;
public
const
string
SeeElementName
=
"see"
;
public
const
string
SeeAlsoElementName
=
"seealso"
;
public
const
string
SeeAlsoElementName
=
"seealso"
;
public
const
string
SummaryElementName
=
"summary"
;
public
const
string
SummaryElementName
=
"summary"
;
public
const
string
TermElementName
=
"term"
;
public
const
string
ThreadSafetyElementName
=
"threadsafety"
;
public
const
string
TypeParameterElementName
=
"typeparam"
;
public
const
string
TypeParameterElementName
=
"typeparam"
;
public
const
string
TypeParameterReferenceElementName
=
"typeparamref"
;
public
const
string
TypeParameterReferenceElementName
=
"typeparamref"
;
public
const
string
ValueElementName
=
"value"
;
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
CrefAttributeName
=
"cref"
;
public
const
string
NameAttributeName
=
"name"
;
public
const
string
FileAttributeName
=
"file"
;
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
PathAttributeName
=
"path"
;
public
const
string
TypeAttributeName
=
"type"
;
public
const
string
StaticAttributeName
=
"static"
;
public
const
string
StaticAttributeName
=
"static"
;
public
const
string
InstanceAttributeName
=
"instanc
e"
;
public
const
string
TypeAttributeName
=
"typ
e"
;
public
static
bool
ElementEquals
(
string
name1
,
string
name2
,
bool
fromVb
=
false
)
public
static
bool
ElementEquals
(
string
name1
,
string
name2
,
bool
fromVb
=
false
)
{
{
...
...
src/Compilers/VisualBasic/Portable/Syntax/SyntaxFactory.vb
浏览文件 @
803b5a60
...
@@ -748,7 +748,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
...
@@ -748,7 +748,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
XmlAttribute
(
XmlAttribute
(
XmlName
(
XmlName
(
Nothing
,
Nothing
,
XmlTextLiteralToken
(
DocumentationCommentXmlNames
.
KeywordElementName
,
DocumentationCommentXmlNames
.
KeywordElement
Name
)),
XmlTextLiteralToken
(
DocumentationCommentXmlNames
.
LangwordAttributeName
,
DocumentationCommentXmlNames
.
LangwordAttribute
Name
)),
XmlString
(
XmlString
(
Token
(
SyntaxKind
.
DoubleQuoteToken
),
Token
(
SyntaxKind
.
DoubleQuoteToken
),
SyntaxTokenList
.
Create
(
XmlTextLiteralToken
(
keyword
,
keyword
)),
SyntaxTokenList
.
Create
(
XmlTextLiteralToken
(
keyword
,
keyword
)),
...
...
src/Features/CSharp/Portable/Completion/CompletionProviders/XmlDocCommentCompletionProvider.cs
浏览文件 @
803b5a60
...
@@ -16,6 +16,8 @@
...
@@ -16,6 +16,8 @@
namespace
Microsoft.CodeAnalysis.CSharp.Completion.Providers
namespace
Microsoft.CodeAnalysis.CSharp.Completion.Providers
{
{
using
static
DocumentationCommentXmlNames
;
internal
partial
class
XmlDocCommentCompletionProvider
:
AbstractDocCommentCompletionProvider
<
DocumentationCommentTriviaSyntax
>
internal
partial
class
XmlDocCommentCompletionProvider
:
AbstractDocCommentCompletionProvider
<
DocumentationCommentTriviaSyntax
>
{
{
internal
override
bool
IsInsertionTrigger
(
SourceText
text
,
int
characterPosition
,
OptionSet
options
)
internal
override
bool
IsInsertionTrigger
(
SourceText
text
,
int
characterPosition
,
OptionSet
options
)
...
@@ -88,10 +90,10 @@ internal override bool IsInsertionTrigger(SourceText text, int characterPosition
...
@@ -88,10 +90,10 @@ internal override bool IsInsertionTrigger(SourceText text, int characterPosition
if
(
token
.
Parent
.
Parent
.
Kind
()
==
SyntaxKind
.
XmlElement
||
if
(
token
.
Parent
.
Parent
.
Kind
()
==
SyntaxKind
.
XmlElement
||
token
.
Parent
.
Parent
.
IsParentKind
(
SyntaxKind
.
XmlElement
))
token
.
Parent
.
Parent
.
IsParentKind
(
SyntaxKind
.
XmlElement
))
{
{
items
.
AddRange
(
GetNested
Tag
s
(
declaredSymbol
));
items
.
AddRange
(
GetNested
Item
s
(
declaredSymbol
));
}
}
if
(
token
.
Parent
.
Parent
.
Kind
()
==
SyntaxKind
.
XmlElement
&&
((
XmlElementSyntax
)
token
.
Parent
.
Parent
).
StartTag
.
Name
.
LocalName
.
ValueText
==
List
Tag
Name
)
if
(
token
.
Parent
.
Parent
.
Kind
()
==
SyntaxKind
.
XmlElement
&&
((
XmlElementSyntax
)
token
.
Parent
.
Parent
).
StartTag
.
Name
.
LocalName
.
ValueText
==
List
Element
Name
)
{
{
items
.
AddRange
(
GetListItems
());
items
.
AddRange
(
GetListItems
());
}
}
...
@@ -99,13 +101,13 @@ internal override bool IsInsertionTrigger(SourceText text, int characterPosition
...
@@ -99,13 +101,13 @@ internal override bool IsInsertionTrigger(SourceText text, int characterPosition
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
;
var
element
=
(
XmlElementSyntax
)
token
.
Parent
.
Parent
.
Parent
;
if
(
element
.
StartTag
.
Name
.
LocalName
.
ValueText
==
List
Tag
Name
)
if
(
element
.
StartTag
.
Name
.
LocalName
.
ValueText
==
List
Element
Name
)
{
{
items
.
AddRange
(
GetListItems
());
items
.
AddRange
(
GetListItems
());
}
}
}
}
if
(
token
.
Parent
.
Parent
.
Kind
()
==
SyntaxKind
.
XmlElement
&&
((
XmlElementSyntax
)
token
.
Parent
.
Parent
).
StartTag
.
Name
.
LocalName
.
ValueText
==
ListHeader
Tag
Name
)
if
(
token
.
Parent
.
Parent
.
Kind
()
==
SyntaxKind
.
XmlElement
&&
((
XmlElementSyntax
)
token
.
Parent
.
Parent
).
StartTag
.
Name
.
LocalName
.
ValueText
==
ListHeader
Element
Name
)
{
{
items
.
AddRange
(
GetListHeaderItems
());
items
.
AddRange
(
GetListHeaderItems
());
}
}
...
@@ -123,12 +125,12 @@ internal override bool IsInsertionTrigger(SourceText text, int characterPosition
...
@@ -123,12 +125,12 @@ internal override bool IsInsertionTrigger(SourceText text, int characterPosition
{
{
var
startTag
=
(
XmlElementStartTagSyntax
)
token
.
Parent
;
var
startTag
=
(
XmlElementStartTagSyntax
)
token
.
Parent
;
if
(
token
==
startTag
.
GreaterThanToken
&&
startTag
.
Name
.
LocalName
.
ValueText
==
List
Tag
Name
)
if
(
token
==
startTag
.
GreaterThanToken
&&
startTag
.
Name
.
LocalName
.
ValueText
==
List
Element
Name
)
{
{
items
.
AddRange
(
GetListItems
());
items
.
AddRange
(
GetListItems
());
}
}
if
(
token
==
startTag
.
GreaterThanToken
&&
startTag
.
Name
.
LocalName
.
ValueText
==
ListHeader
Tag
Name
)
if
(
token
==
startTag
.
GreaterThanToken
&&
startTag
.
Name
.
LocalName
.
ValueText
==
ListHeader
Element
Name
)
{
{
items
.
AddRange
(
GetListHeaderItems
());
items
.
AddRange
(
GetListHeaderItems
());
}
}
...
@@ -144,16 +146,16 @@ private bool IsAttributeNameContext(SyntaxToken token, int position, out string
...
@@ -144,16 +146,16 @@ private bool IsAttributeNameContext(SyntaxToken token, int position, out string
if
(
token
.
IsKind
(
SyntaxKind
.
XmlTextLiteralToken
)
&&
string
.
IsNullOrWhiteSpace
(
token
.
Text
))
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
// ...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
();
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
);
token
=
token
.
GetPreviousTokenIfTouchingWord
(
position
);
SyntaxList
<
XmlAttributeSyntax
>
attributes
=
default
(
SyntaxList
<
XmlAttributeSyntax
>);
SyntaxList
<
XmlAttributeSyntax
>
attributes
=
default
(
SyntaxList
<
XmlAttributeSyntax
>);
...
@@ -179,9 +181,7 @@ private bool IsAttributeNameContext(SyntaxToken token, int position, out string
...
@@ -179,9 +181,7 @@ private bool IsAttributeNameContext(SyntaxToken token, int position, out string
}
}
}
}
attributeNames
=
attributes
.
Select
(
attribute
=>
GetAttributeName
(
attribute
))
attributeNames
=
attributes
.
Select
(
GetAttributeName
).
ToSet
();
.
ToSet
();
return
elementName
!=
null
;
return
elementName
!=
null
;
}
}
...
@@ -192,26 +192,20 @@ private string GetElementNameAndAttributes(SyntaxNode node, out SyntaxList<XmlAt
...
@@ -192,26 +192,20 @@ private string GetElementNameAndAttributes(SyntaxNode node, out SyntaxList<XmlAt
switch
(
node
.
Kind
())
switch
(
node
.
Kind
())
{
{
case
SyntaxKind
.
XmlEmptyElement
:
case
SyntaxKind
.
XmlEmptyElement
:
{
var
emptyElementSyntax
=
(
XmlEmptyElementSyntax
)
node
;
var
emptyElementSyntax
=
(
XmlEmptyElementSyntax
)
node
;
nameSyntax
=
emptyElementSyntax
.
Name
;
nameSyntax
=
emptyElementSyntax
.
Name
;
attributes
=
emptyElementSyntax
.
Attributes
;
attributes
=
emptyElementSyntax
.
Attributes
;
break
;
break
;
}
case
SyntaxKind
.
XmlElement
:
case
SyntaxKind
.
XmlElement
:
{
node
=
((
XmlElementSyntax
)
node
).
StartTag
;
node
=
((
XmlElementSyntax
)
node
).
StartTag
;
goto
case
SyntaxKind
.
XmlElementStartTag
;
goto
case
SyntaxKind
.
XmlElementStartTag
;
}
case
SyntaxKind
.
XmlElementStartTag
:
case
SyntaxKind
.
XmlElementStartTag
:
{
var
startTagSyntax
=
(
XmlElementStartTagSyntax
)
node
;
var
startTagSyntax
=
(
XmlElementStartTagSyntax
)
node
;
nameSyntax
=
startTagSyntax
.
Name
;
nameSyntax
=
startTagSyntax
.
Name
;
attributes
=
startTagSyntax
.
Attributes
;
attributes
=
startTagSyntax
.
Attributes
;
break
;
break
;
}
default
:
default
:
nameSyntax
=
null
;
nameSyntax
=
null
;
...
@@ -276,7 +270,7 @@ private bool IsAttributeValueContext(SyntaxToken token, out string tagName, out
...
@@ -276,7 +270,7 @@ private bool IsAttributeValueContext(SyntaxToken token, out string tagName, out
protected
override
IEnumerable
<
string
>
GetKeywordNames
()
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
)
protected
override
IEnumerable
<
string
>
GetExistingTopLevelElementNames
(
DocumentationCommentTriviaSyntax
syntax
)
...
...
src/Features/Core/Portable/Completion/Providers/AbstractDocCommentCompletionProvider.cs
浏览文件 @
803b5a60
此差异已折叠。
点击以展开。
src/Features/VisualBasic/Portable/Completion/CompletionProviders/XmlDocCommentCompletionProvider.vb
浏览文件 @
803b5a60
...
@@ -6,6 +6,7 @@ Imports Microsoft.CodeAnalysis.Completion.Providers
...
@@ -6,6 +6,7 @@ Imports Microsoft.CodeAnalysis.Completion.Providers
Imports
Microsoft.CodeAnalysis.Options
Imports
Microsoft.CodeAnalysis.Options
Imports
Microsoft.CodeAnalysis.Text
Imports
Microsoft.CodeAnalysis.Text
Imports
Microsoft.CodeAnalysis.VisualBasic.Syntax
Imports
Microsoft.CodeAnalysis.VisualBasic.Syntax
Imports
Roslyn.Utilities.DocumentationCommentXmlNames
Namespace
Microsoft.CodeAnalysis.VisualBasic.Completion.Providers
Namespace
Microsoft.CodeAnalysis.VisualBasic.Completion.Providers
Partial
Friend
Class
XmlDocCommentCompletionProvider
Partial
Friend
Class
XmlDocCommentCompletionProvider
...
@@ -101,23 +102,23 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Completion.Providers
...
@@ -101,23 +102,23 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Completion.Providers
Dim
grandParent
=
parentElement
.
Parent
Dim
grandParent
=
parentElement
.
Parent
If
grandParent
.
IsKind
(
SyntaxKind
.
XmlElement
)
Then
If
grandParent
.
IsKind
(
SyntaxKind
.
XmlElement
)
Then
items
.
AddRange
(
GetNested
Tag
s
(
symbol
))
items
.
AddRange
(
GetNested
Item
s
(
symbol
))
If
GetStartTagName
(
grandParent
)
=
List
Tag
Name
Then
If
GetStartTagName
(
grandParent
)
=
List
Element
Name
Then
items
.
AddRange
(
GetListItems
())
items
.
AddRange
(
GetListItems
())
End
If
End
If
If
GetStartTagName
(
grandParent
)
=
ListHeader
Tag
Name
Then
If
GetStartTagName
(
grandParent
)
=
ListHeader
Element
Name
Then
items
.
AddRange
(
GetListHeaderItems
())
items
.
AddRange
(
GetListHeaderItems
())
End
If
End
If
ElseIf
token
.
Parent
.
IsKind
(
SyntaxKind
.
XmlText
)
AndAlso
token
.
Parent
.
Parent
.
IsKind
(
SyntaxKind
.
XmlElement
)
Then
ElseIf
token
.
Parent
.
IsKind
(
SyntaxKind
.
XmlText
)
AndAlso
token
.
Parent
.
Parent
.
IsKind
(
SyntaxKind
.
XmlElement
)
Then
items
.
AddRange
(
GetNested
Tag
s
(
symbol
))
items
.
AddRange
(
GetNested
Item
s
(
symbol
))
If
GetStartTagName
(
token
.
Parent
.
Parent
)
=
List
Tag
Name
Then
If
GetStartTagName
(
token
.
Parent
.
Parent
)
=
List
Element
Name
Then
items
.
AddRange
(
GetListItems
())
items
.
AddRange
(
GetListItems
())
End
If
End
If
If
GetStartTagName
(
token
.
Parent
.
Parent
)
=
ListHeader
Tag
Name
Then
If
GetStartTagName
(
token
.
Parent
.
Parent
)
=
ListHeader
Element
Name
Then
items
.
AddRange
(
GetListHeaderItems
())
items
.
AddRange
(
GetListHeaderItems
())
End
If
End
If
ElseIf
grandParent
.
IsKind
(
SyntaxKind
.
DocumentationCommentTrivia
)
Then
ElseIf
grandParent
.
IsKind
(
SyntaxKind
.
DocumentationCommentTrivia
)
Then
...
@@ -128,11 +129,11 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Completion.Providers
...
@@ -128,11 +129,11 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Completion.Providers
If
token
.
Parent
.
IsKind
(
SyntaxKind
.
XmlElementStartTag
,
SyntaxKind
.
XmlName
)
Then
If
token
.
Parent
.
IsKind
(
SyntaxKind
.
XmlElementStartTag
,
SyntaxKind
.
XmlName
)
Then
If
parentElement
.
IsParentKind
(
SyntaxKind
.
XmlElement
)
Then
If
parentElement
.
IsParentKind
(
SyntaxKind
.
XmlElement
)
Then
If
GetStartTagName
(
parentElement
.
Parent
)
=
List
Tag
Name
Then
If
GetStartTagName
(
parentElement
.
Parent
)
=
List
Element
Name
Then
items
.
AddRange
(
GetListItems
())
items
.
AddRange
(
GetListItems
())
End
If
End
If
If
GetStartTagName
(
parentElement
.
Parent
)
=
ListHeader
Tag
Name
Then
If
GetStartTagName
(
parentElement
.
Parent
)
=
ListHeader
Element
Name
Then
items
.
AddRange
(
GetListHeaderItems
())
items
.
AddRange
(
GetListHeaderItems
())
End
If
End
If
End
If
End
If
...
@@ -229,7 +230,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Completion.Providers
...
@@ -229,7 +230,7 @@ Namespace Microsoft.CodeAnalysis.VisualBasic.Completion.Providers
End
Sub
End
Sub
Protected
Overrides
Function
GetKeywordNames
()
As
IEnumerable
(
Of
String
)
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
End
Function
Protected
Overrides
Function
GetExistingTopLevelElementNames
(
parentTrivia
As
DocumentationCommentTriviaSyntax
)
As
IEnumerable
(
Of
String
)
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.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录