Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
306c8e24
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,发现更多精彩内容 >>
提交
306c8e24
编写于
7月 28, 2020
作者:
C
Cyrus Najmabadi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Adjsut
上级
a4eae054
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
11 addition
and
13 deletion
+11
-13
src/Workspaces/Remote/ServiceHub/Services/DesignerAttribute/RemoteDesignerAttributeIncrementalAnalyzer.cs
...erAttribute/RemoteDesignerAttributeIncrementalAnalyzer.cs
+11
-13
未找到文件。
src/Workspaces/Remote/ServiceHub/Services/DesignerAttribute/RemoteDesignerAttributeIncrementalAnalyzer.cs
浏览文件 @
306c8e24
...
...
@@ -93,23 +93,26 @@ private async Task AnalyzeProjectAsync(Project project, Document? specificDocume
// Now get all the values that actually changed and notify VS about them. We don't need
// to tell it about the ones that didn't change since that will have no effect on the
// user experience.
var
changedData
=
await
ComputeLatestChangedInfo
Async
(
var
latestData
=
await
ComputeLatestData
Async
(
project
,
specificDocument
,
projectVersion
,
cancellationToken
).
ConfigureAwait
(
false
);
var
changedData
=
latestData
.
WhereAsArray
(
d
=>
!
_documentToLastReportedInformation
.
TryGetValue
(
d
.
document
.
Id
,
out
var
existingInfo
)
||
existingInfo
.
category
!=
d
.
data
.
Category
);
if
(!
changedData
.
IsEmpty
)
{
await
_endPoint
.
InvokeAsync
(
nameof
(
IDesignerAttributeListener
.
ReportDesignerAttributeDataAsync
),
new
object
[]
{
changedData
.
Select
AsArray
(
d
=>
d
.
data
).
ToArray
()
},
new
object
[]
{
changedData
.
Select
(
d
=>
d
.
data
).
ToArray
()
},
cancellationToken
).
ConfigureAwait
(
false
);
}
// Now, keep track of what we've reported to the host so we won't report unchanged files in the future.
foreach
(
var
(
document
,
info
)
in
changed
Data
)
foreach
(
var
(
document
,
info
)
in
latest
Data
)
_documentToLastReportedInformation
[
document
.
Id
]
=
(
info
.
Category
,
projectVersion
);
}
private
async
Task
<
ImmutableArray
<(
Document
document
,
DesignerAttributeData
data
)>>
ComputeLatest
ChangedInfo
Async
(
private
async
Task
<
ImmutableArray
<(
Document
document
,
DesignerAttributeData
data
)>>
ComputeLatest
Data
Async
(
Project
project
,
Document
?
specificDocument
,
VersionStamp
projectVersion
,
CancellationToken
cancellationToken
)
{
var
compilation
=
await
project
.
GetRequiredCompilationAsync
(
cancellationToken
).
ConfigureAwait
(
false
);
...
...
@@ -142,9 +145,11 @@ private async Task AnalyzeProjectAsync(Project project, Document? specificDocume
// If nothing has changed at the top level between the last time we analyzed this document and now, then
// no need to analyze again.
var
hasExistingInfo
=
_documentToLastReportedInformation
.
TryGetValue
(
document
.
Id
,
out
var
existingInfo
);
if
(
hasExistingInfo
&&
existingInfo
.
projectVersion
==
projectVersion
)
if
(
_documentToLastReportedInformation
.
TryGetValue
(
document
.
Id
,
out
var
existingInfo
)
&&
existingInfo
.
projectVersion
==
projectVersion
)
{
return
default
;
}
// We either haven't computed the designer info, or our data was out of date. We need
// So recompute here. Figure out what the current category is, and if that's different
...
...
@@ -152,13 +157,6 @@ private async Task AnalyzeProjectAsync(Project project, Document? specificDocume
var
category
=
await
DesignerAttributeHelpers
.
ComputeDesignerAttributeCategoryAsync
(
designerCategoryType
,
document
,
cancellationToken
).
ConfigureAwait
(
false
);
if
(
hasExistingInfo
&&
existingInfo
.
category
==
category
)
{
// category hasn't changed. no need to report this.
return
default
;
}
var
data
=
new
DesignerAttributeData
{
Category
=
category
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录