Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
ffa28b87
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,发现更多精彩内容 >>
提交
ffa28b87
编写于
3月 27, 2020
作者:
D
David Barbet
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Add tests and fix bugs
上级
1697e742
变更
3
展开全部
显示空白变更内容
内联
并排
Showing
3 changed file
with
485 addition
and
5 deletion
+485
-5
src/Features/LanguageServer/Protocol/Microsoft.CodeAnalysis.LanguageServer.Protocol.csproj
...col/Microsoft.CodeAnalysis.LanguageServer.Protocol.csproj
+1
-0
src/VisualStudio/Core/Def/Implementation/LanguageClient/InProcLanguageServer.cs
...Def/Implementation/LanguageClient/InProcLanguageServer.cs
+14
-5
src/VisualStudio/Core/Test.Next/Services/LspDiagnosticsTests.cs
...sualStudio/Core/Test.Next/Services/LspDiagnosticsTests.cs
+470
-0
未找到文件。
src/Features/LanguageServer/Protocol/Microsoft.CodeAnalysis.LanguageServer.Protocol.csproj
浏览文件 @
ffa28b87
...
...
@@ -34,6 +34,7 @@
<InternalsVisibleTo
Include=
"Microsoft.VisualStudio.LanguageServices.LiveShare.UnitTests"
/>
<InternalsVisibleTo
Include=
"Microsoft.CodeAnalysis.Remote.ServiceHub"
/>
<InternalsVisibleTo
Include=
"Roslyn.Services.Test.Utilities"
/>
<InternalsVisibleTo
Include=
"Roslyn.VisualStudio.Next.UnitTests"
/>
</ItemGroup>
<ItemGroup>
...
...
src/VisualStudio/Core/Def/Implementation/LanguageClient/InProcLanguageServer.cs
浏览文件 @
ffa28b87
...
...
@@ -249,7 +249,7 @@ private async void DiagnosticService_DiagnosticsUpdated(object sender, Diagnosti
/// </summary>
private
readonly
Dictionary
<
DocumentId
,
ImmutableHashSet
<
Uri
>>
_documentsToPublishedUris
=
new
Dictionary
<
DocumentId
,
ImmutableHashSet
<
Uri
>>();
private
async
Task
PublishDiagnosticsAsync
(
Document
document
)
internal
async
Task
PublishDiagnosticsAsync
(
Document
document
)
{
// Retrieve all diagnostics for the current document grouped by their actual file uri.
var
fileUriToDiagnostics
=
await
GetDiagnosticsAsync
(
document
,
CancellationToken
.
None
).
ConfigureAwait
(
false
);
...
...
@@ -257,7 +257,7 @@ private async Task PublishDiagnosticsAsync(Document document)
// Get the list of file uris with diagnostics (for the document).
// We need to join the uris from current diagnostics with those previously published
// so that we clear out any diagnostics in mapped files that are no longer a part
// of the current diagnostics set (because the diagnostics w
as
fixed).
// of the current diagnostics set (because the diagnostics w
ere
fixed).
var
urisForCurrentDocument
=
GetOrValue
(
_documentsToPublishedUris
,
document
.
Id
,
ImmutableHashSet
<
Uri
>.
Empty
).
Union
(
fileUriToDiagnostics
.
Keys
);
// Update the mapping for this document to be the uris we're about to publish diagnostics for.
...
...
@@ -289,9 +289,18 @@ private async Task PublishDiagnosticsAsync(Document document)
_documentsToPublishedUris
[
document
.
Id
]
=
_documentsToPublishedUris
[
document
.
Id
].
Remove
(
fileUri
);
}
// Update the published diagnostics map to contain the new diagnostics for this document and mapped uri.
_publishedFileToDiagnostics
.
GetOrAdd
(
fileUri
,
(
_
)
=>
{
return
new
Dictionary
<
DocumentId
,
ImmutableArray
<
LanguageServer
.
Protocol
.
Diagnostic
>>();
})[
document
.
Id
]
=
diagnostics
;
// Update the published diagnostics map to contain the new diagnostics contributed by this document and fileUri.
var
documentsToPublishedDiagnostics
=
_publishedFileToDiagnostics
.
GetOrAdd
(
fileUri
,
(
_
)
=>
new
Dictionary
<
DocumentId
,
ImmutableArray
<
LanguageServer
.
Protocol
.
Diagnostic
>>());
if
(
fileUriToDiagnostics
.
ContainsKey
(
fileUri
))
{
documentsToPublishedDiagnostics
[
document
.
Id
]
=
fileUriToDiagnostics
[
fileUri
];
}
else
{
// There are no new diagnostics for this document and file uri, if we're tracking it we can stop.
documentsToPublishedDiagnostics
.
Remove
(
document
.
Id
);
}
}
}
...
...
src/VisualStudio/Core/Test.Next/Services/LspDiagnosticsTests.cs
0 → 100644
浏览文件 @
ffa28b87
此差异已折叠。
点击以展开。
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录