Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
98f12bba
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,发现更多精彩内容 >>
未验证
提交
98f12bba
编写于
3月 10, 2020
作者:
C
CyrusNajmabadi
提交者:
GitHub
3月 10, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #41999 from mazhou-msft/mazhou/issue-26610
Fix issue #26610
上级
c45ce50d
01d0dfa6
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
17 addition
and
20 deletion
+17
-20
src/Features/Core/Portable/Completion/Providers/AbstractRecommendationServiceBasedCompletionProvider.cs
...s/AbstractRecommendationServiceBasedCompletionProvider.cs
+4
-1
src/Features/Core/Portable/Completion/Providers/SymbolCompletionItem.cs
...ore/Portable/Completion/Providers/SymbolCompletionItem.cs
+13
-19
未找到文件。
src/Features/Core/Portable/Completion/Providers/AbstractRecommendationServiceBasedCompletionProvider.cs
浏览文件 @
98f12bba
...
...
@@ -122,12 +122,15 @@ private static int ComputeSymbolMatchPriority(ISymbol symbol)
var
position
=
SymbolCompletionItem
.
GetContextPosition
(
item
);
var
name
=
SymbolCompletionItem
.
GetSymbolName
(
item
);
var
kind
=
SymbolCompletionItem
.
GetKind
(
item
);
var
isGeneric
=
SymbolCompletionItem
.
GetSymbolIsGeneric
(
item
);
var
relatedDocumentIds
=
document
.
Project
.
Solution
.
GetRelatedDocumentIds
(
document
.
Id
).
Concat
(
document
.
Id
);
var
options
=
document
.
Project
.
Solution
.
Workspace
.
Options
;
var
totalSymbols
=
await
base
.
GetPerContextSymbolsAsync
(
document
,
position
,
options
,
relatedDocumentIds
,
preselect
:
false
,
cancellationToken
:
cancellationToken
).
ConfigureAwait
(
false
);
foreach
(
var
(
documentId
,
syntaxContext
,
symbols
)
in
totalSymbols
)
{
var
bestSymbols
=
symbols
.
Where
(
s
=>
kind
!=
null
&&
s
.
Kind
==
kind
&&
s
.
Name
==
name
).
ToImmutableArray
();
var
bestSymbols
=
symbols
.
WhereAsArray
(
s
=>
kind
!=
null
&&
s
.
Kind
==
kind
&&
s
.
Name
==
name
&&
isGeneric
==
(
s
.
GetArity
()
>
0
));
if
(
bestSymbols
.
Any
())
{
return
await
SymbolCompletionItem
.
GetDescriptionAsync
(
item
,
bestSymbols
,
document
,
syntaxContext
.
SemanticModel
,
cancellationToken
).
ConfigureAwait
(
false
);
...
...
src/Features/Core/Portable/Completion/Providers/SymbolCompletionItem.cs
浏览文件 @
98f12bba
...
...
@@ -59,11 +59,16 @@ public static CompletionItem AddSymbolEncoding(IReadOnlyList<ISymbol> symbols, C
return
item
.
AddProperty
(
"Symbols"
,
EncodeSymbols
(
symbols
));
}
public
static
CompletionItem
AddSymbol
NameAndKind
(
IReadOnlyList
<
ISymbol
>
symbols
,
CompletionItem
item
)
public
static
CompletionItem
AddSymbol
Info
(
IReadOnlyList
<
ISymbol
>
symbols
,
CompletionItem
item
)
{
var
symbol
=
symbols
[
0
];
return
item
.
AddProperty
(
"SymbolKind"
,
((
int
)
symbol
.
Kind
).
ToString
())
.
AddProperty
(
"SymbolName"
,
symbol
.
Name
);
var
isGeneric
=
symbol
.
GetArity
()
>
0
;
item
=
item
.
AddProperty
(
"SymbolKind"
,
((
int
)
symbol
.
Kind
).
ToString
())
.
AddProperty
(
"SymbolName"
,
symbol
.
Name
);
return
isGeneric
?
item
.
AddProperty
(
"IsGeneric"
,
isGeneric
.
ToString
())
:
item
;
}
public
static
string
EncodeSymbols
(
IReadOnlyList
<
ISymbol
>
symbols
)
...
...
@@ -302,29 +307,18 @@ public static string GetInsertionText(CompletionItem item)
{
return
CreateWorker
(
displayText
,
displayTextSuffix
,
symbols
,
rules
,
contextPosition
,
AddSymbol
NameAndKind
,
sortText
,
insertionText
,
AddSymbol
Info
,
sortText
,
insertionText
,
filterText
,
supportedPlatforms
,
properties
,
tags
);
}
internal
static
string
GetSymbolName
(
CompletionItem
item
)
{
if
(
item
.
Properties
.
TryGetValue
(
"SymbolName"
,
out
var
name
))
{
return
name
;
}
return
null
;
}
=>
item
.
Properties
.
TryGetValue
(
"SymbolName"
,
out
var
name
)
?
name
:
null
;
internal
static
SymbolKind
?
GetKind
(
CompletionItem
item
)
{
if
(
item
.
Properties
.
TryGetValue
(
"SymbolKind"
,
out
var
kind
))
{
return
(
SymbolKind
)
int
.
Parse
(
kind
);
}
=>
item
.
Properties
.
TryGetValue
(
"SymbolKind"
,
out
var
kind
)
?
(
SymbolKind
?)
int
.
Parse
(
kind
)
:
null
;
return
null
;
}
internal
static
bool
GetSymbolIsGeneric
(
CompletionItem
item
)
=>
item
.
Properties
.
TryGetValue
(
"IsGeneric"
,
out
var
v
)
&&
bool
.
TryParse
(
v
,
out
var
isGeneric
)
&&
isGeneric
;
public
static
async
Task
<
CompletionDescription
>
GetDescriptionAsync
(
CompletionItem
item
,
ImmutableArray
<
ISymbol
>
symbols
,
Document
document
,
SemanticModel
semanticModel
,
CancellationToken
cancellationToken
)
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录