Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
753314a2
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,发现更多精彩内容 >>
未验证
提交
753314a2
编写于
3月 25, 2020
作者:
T
Tomáš Matoušek
提交者:
GitHub
3月 25, 2020
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Avoid operations on disposed workspace (#42768)
上级
3d77de87
变更
24
隐藏空白更改
内联
并排
Showing
24 changed file
with
121 addition
and
115 deletion
+121
-115
src/EditorFeatures/TestUtilities/LanguageServer/AbstractLanguageServerProtocolTests.cs
...ies/LanguageServer/AbstractLanguageServerProtocolTests.cs
+19
-18
src/Features/LanguageServer/ProtocolUnitTests/CodeActions/CodeActionsTests.cs
...eServer/ProtocolUnitTests/CodeActions/CodeActionsTests.cs
+2
-2
src/Features/LanguageServer/ProtocolUnitTests/Completion/CompletionResolveTests.cs
...er/ProtocolUnitTests/Completion/CompletionResolveTests.cs
+2
-2
src/Features/LanguageServer/ProtocolUnitTests/Completion/CompletionTests.cs
...ageServer/ProtocolUnitTests/Completion/CompletionTests.cs
+4
-3
src/Features/LanguageServer/ProtocolUnitTests/Definitions/GoToDefinitionTests.cs
...rver/ProtocolUnitTests/Definitions/GoToDefinitionTests.cs
+7
-6
src/Features/LanguageServer/ProtocolUnitTests/Definitions/GoToTypeDefinitionTests.cs
.../ProtocolUnitTests/Definitions/GoToTypeDefinitionTests.cs
+7
-6
src/Features/LanguageServer/ProtocolUnitTests/FoldingRanges/FoldingRangesTests.cs
...ver/ProtocolUnitTests/FoldingRanges/FoldingRangesTests.cs
+6
-6
src/Features/LanguageServer/ProtocolUnitTests/Formatting/FormatDocumentOnTypeTests.cs
...ProtocolUnitTests/Formatting/FormatDocumentOnTypeTests.cs
+3
-3
src/Features/LanguageServer/ProtocolUnitTests/Formatting/FormatDocumentRangeTests.cs
.../ProtocolUnitTests/Formatting/FormatDocumentRangeTests.cs
+3
-3
src/Features/LanguageServer/ProtocolUnitTests/Formatting/FormatDocumentTests.cs
...erver/ProtocolUnitTests/Formatting/FormatDocumentTests.cs
+3
-3
src/Features/LanguageServer/ProtocolUnitTests/Highlights/DocumentHighlightTests.cs
...er/ProtocolUnitTests/Highlights/DocumentHighlightTests.cs
+4
-4
src/Features/LanguageServer/ProtocolUnitTests/Hover/HoverTests.cs
...ures/LanguageServer/ProtocolUnitTests/Hover/HoverTests.cs
+4
-4
src/Features/LanguageServer/ProtocolUnitTests/Initialize/InitializeTests.cs
...ageServer/ProtocolUnitTests/Initialize/InitializeTests.cs
+2
-2
src/Features/LanguageServer/ProtocolUnitTests/References/FindImplementationsTests.cs
.../ProtocolUnitTests/References/FindImplementationsTests.cs
+7
-6
src/Features/LanguageServer/ProtocolUnitTests/Rename/RenameTests.cs
...es/LanguageServer/ProtocolUnitTests/Rename/RenameTests.cs
+4
-4
src/Features/LanguageServer/ProtocolUnitTests/SignatureHelp/SignatureHelpTests.cs
...ver/ProtocolUnitTests/SignatureHelp/SignatureHelpTests.cs
+2
-2
src/Features/LanguageServer/ProtocolUnitTests/Symbols/DocumentSymbolsTests.cs
...eServer/ProtocolUnitTests/Symbols/DocumentSymbolsTests.cs
+8
-8
src/Features/LanguageServer/ProtocolUnitTests/Symbols/WorkspaceSymbolsTests.cs
...Server/ProtocolUnitTests/Symbols/WorkspaceSymbolsTests.cs
+12
-12
src/VisualStudio/LiveShare/Test/ClassificationsHandlerTests.cs
...isualStudio/LiveShare/Test/ClassificationsHandlerTests.cs
+3
-3
src/VisualStudio/LiveShare/Test/DiagnosticsHandlerTests.cs
src/VisualStudio/LiveShare/Test/DiagnosticsHandlerTests.cs
+3
-4
src/VisualStudio/LiveShare/Test/FindAllReferencesHandlerTests.cs
...ualStudio/LiveShare/Test/FindAllReferencesHandlerTests.cs
+9
-8
src/VisualStudio/LiveShare/Test/PreviewCodeActionsTests.cs
src/VisualStudio/LiveShare/Test/PreviewCodeActionsTests.cs
+2
-2
src/VisualStudio/LiveShare/Test/ProjectsHandlerTests.cs
src/VisualStudio/LiveShare/Test/ProjectsHandlerTests.cs
+2
-1
src/VisualStudio/LiveShare/Test/RunCodeActionsHandlerTests.cs
...VisualStudio/LiveShare/Test/RunCodeActionsHandlerTests.cs
+3
-3
未找到文件。
src/EditorFeatures/TestUtilities/LanguageServer/AbstractLanguageServerProtocolTests.cs
浏览文件 @
753314a2
...
...
@@ -18,6 +18,7 @@
using
Microsoft.CodeAnalysis.LanguageServer.Handler.Commands
;
using
Microsoft.CodeAnalysis.Test.Utilities
;
using
Microsoft.CodeAnalysis.Text
;
using
Microsoft.CodeAnalysis.UnitTests
;
using
Microsoft.VisualStudio.Composition
;
using
Microsoft.VisualStudio.Text.Adornments
;
using
Newtonsoft.Json
;
...
...
@@ -178,8 +179,8 @@ private protected static RunCodeActionParams CreateRunCodeActionParams(string co
/// Creates a solution with a document.
/// </summary>
/// <returns>the solution and the annotated ranges in the document.</returns>
protected
(
Solution
solution
,
Dictionary
<
string
,
IList
<
LSP
.
Location
>>
locations
)
CreateTestSolution
(
string
markup
)
=>
CreateTest
Solution
(
new
string
[]
{
markup
}
);
protected
Workspace
CreateTestWorkspace
(
string
markup
,
out
Dictionary
<
string
,
IList
<
LSP
.
Location
>>
locations
)
=>
CreateTest
Workspace
(
new
string
[]
{
markup
},
out
locations
);
/// <summary>
/// Create a solution with multiple documents.
...
...
@@ -187,29 +188,29 @@ private protected static RunCodeActionParams CreateRunCodeActionParams(string co
/// <returns>
/// the solution with the documents plus a list for each document of all annotated ranges in the document.
/// </returns>
protected
(
Solution
solution
,
Dictionary
<
string
,
IList
<
LSP
.
Location
>>
locations
)
CreateTestSolution
(
string
[]
markup
s
)
protected
Workspace
CreateTestWorkspace
(
string
[]
markups
,
out
Dictionary
<
string
,
IList
<
LSP
.
Location
>>
location
s
)
{
using
var
workspace
=
TestWorkspace
.
CreateCSharp
(
markups
,
exportProvider
:
GetExportProvider
());
var
workspace
=
TestWorkspace
.
CreateCSharp
(
markups
,
exportProvider
:
GetExportProvider
());
var
solution
=
workspace
.
CurrentSolution
;
var
locations
=
new
Dictionary
<
string
,
IList
<
LSP
.
Location
>>();
locations
=
new
Dictionary
<
string
,
IList
<
LSP
.
Location
>>();
foreach
(
var
document
in
workspace
.
Documents
)
{
var
text
=
solution
.
GetDocument
(
document
.
Id
).
GetTextSynchronously
(
CancellationToken
.
None
);
foreach
(
var
kvp
in
document
.
AnnotatedSpans
)
foreach
(
var
(
name
,
spans
)
in
document
.
AnnotatedSpans
)
{
locations
.
GetOrAdd
(
kvp
.
Key
,
CreateLocation
)
.
AddRange
(
kvp
.
Value
.
Select
(
s
=>
ProtocolConversions
.
TextSpanToLocation
(
s
,
text
,
new
Uri
(
GetDocumentFilePathFromName
(
document
.
Name
)))));
locations
.
GetOrAdd
(
name
,
_
=>
new
List
<
LSP
.
Location
>())
.
AddRange
(
spans
.
Select
(
span
=>
ProtocolConversions
.
TextSpanToLocation
(
span
,
text
,
new
Uri
(
GetDocumentFilePathFromName
(
document
.
Name
)))));
}
// Pass in the text without markup.
workspace
.
ChangeSolution
(
ChangeDocumentFilePathToValidURI
(
workspace
.
CurrentSolution
,
document
,
text
)
);
solution
=
ChangeDocumentFilePathToValidURI
(
solution
,
document
,
text
);
}
return
(
workspace
.
CurrentSolution
,
locations
);
workspace
.
ChangeSolution
(
solution
);
// local functions
static
List
<
LSP
.
Location
>
CreateLocation
(
string
s
)
=>
new
List
<
LSP
.
Location
>();
return
workspace
;
}
// Private protected because LanguageServerProtocol is internal
...
...
@@ -227,15 +228,15 @@ private static string GetDocumentFilePathFromName(string documentName)
/// Adds/Removes the document instead of updating file path due to
/// https://github.com/dotnet/roslyn/issues/34837
/// </summary>
private
static
Solution
ChangeDocumentFilePathToValidURI
(
Solution
originalSolution
,
TestHostDocument
originalD
ocument
,
SourceText
text
)
private
static
Solution
ChangeDocumentFilePathToValidURI
(
Solution
solution
,
TestHostDocument
d
ocument
,
SourceText
text
)
{
var
documentName
=
originalDocument
.
Name
;
var
documentId
=
document
.
Id
;
var
documentName
=
document
.
Name
;
var
documentPath
=
GetDocumentFilePathFromName
(
documentName
);
var
solution
=
originalSolution
.
RemoveDocument
(
originalDocument
.
Id
);
var
newDocumentId
=
DocumentId
.
CreateNewId
(
originalDocument
.
Project
.
Id
);
return
solution
.
AddDocument
(
newDocumentId
,
documentName
,
text
,
filePath
:
documentPath
);
return
solution
.
RemoveDocument
(
documentId
)
.
AddDocument
(
documentId
,
documentName
,
text
,
filePath
:
documentPath
);
}
}
}
src/Features/LanguageServer/ProtocolUnitTests/CodeActions/CodeActionsTests.cs
浏览文件 @
753314a2
...
...
@@ -26,11 +26,11 @@ void M()
{|caret:|}int i = 1;
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
expected
=
CreateCommand
(
CSharpAnalyzersResources
.
Use_implicit_type
,
locations
[
"caret"
].
Single
());
var
clientCapabilities
=
CreateClientCapabilitiesWithExperimentalValue
(
"supportsWorkspaceEdits"
,
JToken
.
FromObject
(
false
));
var
results
=
await
RunGetCodeActionsAsync
(
s
olution
,
locations
[
"caret"
].
Single
(),
clientCapabilities
);
var
results
=
await
RunGetCodeActionsAsync
(
workspace
.
CurrentS
olution
,
locations
[
"caret"
].
Single
(),
clientCapabilities
);
var
useImplicitTypeResult
=
results
.
Single
(
r
=>
r
.
Title
==
CSharpAnalyzersResources
.
Use_implicit_type
);
AssertJsonEquals
(
expected
,
useImplicitTypeResult
);
}
...
...
src/Features/LanguageServer/ProtocolUnitTests/Completion/CompletionResolveTests.cs
浏览文件 @
753314a2
...
...
@@ -25,7 +25,7 @@ void M()
{|caret:|}
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
tags
=
new
string
[]
{
"Class"
,
"Internal"
};
var
completionParams
=
CreateCompletionParams
(
locations
[
"caret"
].
Single
());
var
completionItem
=
CreateCompletionItem
(
"A"
,
LSP
.
CompletionItemKind
.
Class
,
tags
,
completionParams
);
...
...
@@ -34,7 +34,7 @@ void M()
var
expected
=
CreateResolvedCompletionItem
(
"A"
,
LSP
.
CompletionItemKind
.
Class
,
null
,
completionParams
,
description
,
"class A"
,
null
);
var
results
=
(
LSP
.
VSCompletionItem
)
await
RunResolveCompletionItemAsync
(
s
olution
,
completionItem
,
clientCapabilities
);
var
results
=
(
LSP
.
VSCompletionItem
)
await
RunResolveCompletionItemAsync
(
workspace
.
CurrentS
olution
,
completionItem
,
clientCapabilities
);
AssertJsonEquals
(
expected
,
results
);
}
...
...
src/Features/LanguageServer/ProtocolUnitTests/Completion/CompletionTests.cs
浏览文件 @
753314a2
...
...
@@ -25,11 +25,11 @@ void M()
{|caret:|}
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
expected
=
CreateCompletionItem
(
"A"
,
LSP
.
CompletionItemKind
.
Class
,
new
string
[]
{
"Class"
,
"Internal"
},
CreateCompletionParams
(
locations
[
"caret"
].
Single
()));
var
clientCapabilities
=
new
LSP
.
VSClientCapabilities
{
SupportsVisualStudioExtensions
=
true
};
var
results
=
(
LSP
.
CompletionItem
[])
await
RunGetCompletionsAsync
(
s
olution
,
locations
[
"caret"
].
Single
(),
clientCapabilities
);
var
results
=
(
LSP
.
CompletionItem
[])
await
RunGetCompletionsAsync
(
workspace
.
CurrentS
olution
,
locations
[
"caret"
].
Single
(),
clientCapabilities
);
AssertJsonEquals
(
expected
,
results
.
First
());
}
...
...
@@ -44,7 +44,8 @@ void M()
{|caret:|}
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
solution
=
workspace
.
CurrentSolution
;
// Make sure the unimported types option is on by default.
solution
=
solution
.
WithOptions
(
solution
.
Options
...
...
src/Features/LanguageServer/ProtocolUnitTests/Definitions/GoToDefinitionTests.cs
浏览文件 @
753314a2
...
...
@@ -25,9 +25,9 @@ void M()
var len = {|caret:|}aString.Length;
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
results
=
await
RunGotoDefinitionAsync
(
s
olution
,
locations
[
"caret"
].
Single
());
var
results
=
await
RunGotoDefinitionAsync
(
workspace
.
CurrentS
olution
,
locations
[
"caret"
].
Single
());
AssertLocationsEqual
(
locations
[
"definition"
],
results
);
}
...
...
@@ -51,9 +51,10 @@ class B
}
}"
};
var
(
solution
,
locations
)
=
CreateTestSolution
(
markups
);
var
results
=
await
RunGotoDefinitionAsync
(
solution
,
locations
[
"caret"
].
Single
());
using
var
workspace
=
CreateTestWorkspace
(
markups
,
out
var
locations
);
var
results
=
await
RunGotoDefinitionAsync
(
workspace
.
CurrentSolution
,
locations
[
"caret"
].
Single
());
AssertLocationsEqual
(
locations
[
"definition"
],
results
);
}
...
...
@@ -68,9 +69,9 @@ void M()
var len = aString.Length;
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
results
=
await
RunGotoDefinitionAsync
(
s
olution
,
locations
[
"caret"
].
Single
());
var
results
=
await
RunGotoDefinitionAsync
(
workspace
.
CurrentS
olution
,
locations
[
"caret"
].
Single
());
Assert
.
Empty
(
results
);
}
...
...
src/Features/LanguageServer/ProtocolUnitTests/Definitions/GoToTypeDefinitionTests.cs
浏览文件 @
753314a2
...
...
@@ -24,9 +24,9 @@ class B
{
{|caret:|}A classA;
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
results
=
await
RunGotoTypeDefinitionAsync
(
s
olution
,
locations
[
"caret"
].
Single
());
var
results
=
await
RunGotoTypeDefinitionAsync
(
workspace
.
CurrentS
olution
,
locations
[
"caret"
].
Single
());
AssertLocationsEqual
(
locations
[
"definition"
],
results
);
}
...
...
@@ -49,9 +49,10 @@ class B
}
}"
};
var
(
solution
,
locations
)
=
CreateTestSolution
(
markups
);
var
results
=
await
RunGotoTypeDefinitionAsync
(
solution
,
locations
[
"caret"
].
Single
());
using
var
workspace
=
CreateTestWorkspace
(
markups
,
out
var
locations
);
var
results
=
await
RunGotoTypeDefinitionAsync
(
workspace
.
CurrentSolution
,
locations
[
"caret"
].
Single
());
AssertLocationsEqual
(
locations
[
"definition"
],
results
);
}
...
...
@@ -67,9 +68,9 @@ class B
A classA;
{|caret:|}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
results
=
await
RunGotoTypeDefinitionAsync
(
s
olution
,
locations
[
"caret"
].
Single
());
var
results
=
await
RunGotoTypeDefinitionAsync
(
workspace
.
CurrentS
olution
,
locations
[
"caret"
].
Single
());
Assert
.
Empty
(
results
);
}
...
...
src/Features/LanguageServer/ProtocolUnitTests/FoldingRanges/FoldingRangesTests.cs
浏览文件 @
753314a2
...
...
@@ -20,12 +20,12 @@ public async Task TestGetFoldingRangeAsync_Imports()
var
markup
=
@"using {|foldingRange:System;
using System.Linq;|}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
expected
=
locations
[
"foldingRange"
]
.
Select
(
location
=>
CreateFoldingRange
(
LSP
.
FoldingRangeKind
.
Imports
,
location
.
Range
))
.
ToArray
();
var
results
=
await
RunGetFoldingRangeAsync
(
s
olution
);
var
results
=
await
RunGetFoldingRangeAsync
(
workspace
.
CurrentS
olution
);
AssertJsonEquals
(
expected
,
results
);
}
...
...
@@ -36,12 +36,12 @@ public async Task TestGetFoldingRangeAsync_Comments()
@"{|foldingRange:// A comment|}
{|foldingRange:/* A multiline
comment */|}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
expected
=
locations
[
"foldingRange"
]
.
Select
(
location
=>
CreateFoldingRange
(
LSP
.
FoldingRangeKind
.
Comment
,
location
.
Range
))
.
ToArray
();
var
results
=
await
RunGetFoldingRangeAsync
(
s
olution
);
var
results
=
await
RunGetFoldingRangeAsync
(
workspace
.
CurrentS
olution
);
AssertJsonEquals
(
expected
,
results
);
}
...
...
@@ -52,12 +52,12 @@ public async Task TestGetFoldingRangeAsync_Regions()
@"{|foldingRange:#region ARegion
#endregion|}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
expected
=
locations
[
"foldingRange"
]
.
Select
(
location
=>
CreateFoldingRange
(
LSP
.
FoldingRangeKind
.
Region
,
location
.
Range
))
.
ToArray
();
var
results
=
await
RunGetFoldingRangeAsync
(
s
olution
);
var
results
=
await
RunGetFoldingRangeAsync
(
workspace
.
CurrentS
olution
);
AssertJsonEquals
(
expected
,
results
);
}
...
...
src/Features/LanguageServer/ProtocolUnitTests/Formatting/FormatDocumentOnTypeTests.cs
浏览文件 @
753314a2
...
...
@@ -34,12 +34,12 @@ void M()
{
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
characterTyped
=
";"
;
var
locationTyped
=
locations
[
"type"
].
Single
();
var
documentText
=
await
s
olution
.
GetDocumentFromURI
(
locationTyped
.
Uri
).
GetTextAsync
();
var
documentText
=
await
workspace
.
CurrentS
olution
.
GetDocumentFromURI
(
locationTyped
.
Uri
).
GetTextAsync
();
var
results
=
await
RunFormatDocumentOnTypeAsync
(
s
olution
,
characterTyped
,
locationTyped
);
var
results
=
await
RunFormatDocumentOnTypeAsync
(
workspace
.
CurrentS
olution
,
characterTyped
,
locationTyped
);
var
actualText
=
ApplyTextEdits
(
results
,
documentText
);
Assert
.
Equal
(
expected
,
actualText
);
}
...
...
src/Features/LanguageServer/ProtocolUnitTests/Formatting/FormatDocumentRangeTests.cs
浏览文件 @
753314a2
...
...
@@ -32,11 +32,11 @@ void M()
int i = 1;
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
rangeToFormat
=
locations
[
"format"
].
Single
();
var
documentText
=
await
s
olution
.
GetDocumentFromURI
(
rangeToFormat
.
Uri
).
GetTextAsync
();
var
documentText
=
await
workspace
.
CurrentS
olution
.
GetDocumentFromURI
(
rangeToFormat
.
Uri
).
GetTextAsync
();
var
results
=
await
RunFormatDocumentRangeAsync
(
s
olution
,
rangeToFormat
);
var
results
=
await
RunFormatDocumentRangeAsync
(
workspace
.
CurrentS
olution
,
rangeToFormat
);
var
actualText
=
ApplyTextEdits
(
results
,
documentText
);
Assert
.
Equal
(
expected
,
actualText
);
}
...
...
src/Features/LanguageServer/ProtocolUnitTests/Formatting/FormatDocumentTests.cs
浏览文件 @
753314a2
...
...
@@ -34,11 +34,11 @@ void M()
int i = 1;
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
documentURI
=
locations
[
"caret"
].
Single
().
Uri
;
var
documentText
=
await
s
olution
.
GetDocumentFromURI
(
documentURI
).
GetTextAsync
();
var
documentText
=
await
workspace
.
CurrentS
olution
.
GetDocumentFromURI
(
documentURI
).
GetTextAsync
();
var
results
=
await
RunFormatDocumentAsync
(
s
olution
,
documentURI
);
var
results
=
await
RunFormatDocumentAsync
(
workspace
.
CurrentS
olution
,
documentURI
);
var
actualText
=
ApplyTextEdits
(
results
,
documentText
);
Assert
.
Equal
(
expected
,
actualText
);
}
...
...
src/Features/LanguageServer/ProtocolUnitTests/Highlights/DocumentHighlightTests.cs
浏览文件 @
753314a2
...
...
@@ -31,7 +31,7 @@ void M()
{|caret:|}{|write:classB|} = new B();
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
expected
=
new
LSP
.
DocumentHighlight
[]
{
CreateDocumentHighlight
(
LSP
.
DocumentHighlightKind
.
Text
,
locations
[
"text"
].
Single
()),
...
...
@@ -39,7 +39,7 @@ void M()
CreateDocumentHighlight
(
LSP
.
DocumentHighlightKind
.
Write
,
locations
[
"write"
].
Single
())
};
var
results
=
await
RunGetDocumentHighlightAsync
(
s
olution
,
locations
[
"caret"
].
Single
());
var
results
=
await
RunGetDocumentHighlightAsync
(
workspace
.
CurrentS
olution
,
locations
[
"caret"
].
Single
());
AssertJsonEquals
(
expected
,
results
);
}
...
...
@@ -54,9 +54,9 @@ void M()
{|caret:|}
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
results
=
await
RunGetDocumentHighlightAsync
(
s
olution
,
locations
[
"caret"
].
Single
());
var
results
=
await
RunGetDocumentHighlightAsync
(
workspace
.
CurrentS
olution
,
locations
[
"caret"
].
Single
());
Assert
.
Empty
(
results
);
}
...
...
src/Features/LanguageServer/ProtocolUnitTests/Hover/HoverTests.cs
浏览文件 @
753314a2
...
...
@@ -28,11 +28,11 @@ public async Task TestGetHoverAsync()
{
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
expectedLocation
=
locations
[
"caret"
].
Single
();
var
expected
=
CreateHover
(
expectedLocation
,
"string A.Method(int i)\r\n> A great method"
);
var
results
=
await
RunGetHoverAsync
(
s
olution
,
expectedLocation
).
ConfigureAwait
(
false
);
var
results
=
await
RunGetHoverAsync
(
workspace
.
CurrentS
olution
,
expectedLocation
).
ConfigureAwait
(
false
);
AssertJsonEquals
(
expected
,
results
);
}
...
...
@@ -52,9 +52,9 @@ private string Method(int i)
{|caret:|}
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
results
=
await
RunGetHoverAsync
(
s
olution
,
locations
[
"caret"
].
Single
()).
ConfigureAwait
(
false
);
var
results
=
await
RunGetHoverAsync
(
workspace
.
CurrentS
olution
,
locations
[
"caret"
].
Single
()).
ConfigureAwait
(
false
);
Assert
.
Null
(
results
);
}
...
...
src/Features/LanguageServer/ProtocolUnitTests/Initialize/InitializeTests.cs
浏览文件 @
753314a2
...
...
@@ -16,8 +16,8 @@ public class InitializeTests : AbstractLanguageServerProtocolTests
[
Fact
]
public
async
Task
TestInitializeAsync
()
{
var
(
solution
,
_
)
=
CreateTestSolution
(
string
.
Empty
);
var
results
=
await
RunInitializeAsync
(
s
olution
,
new
LSP
.
InitializeParams
());
using
var
worksapce
=
CreateTestWorkspace
(
string
.
Empty
,
out
var
_
);
var
results
=
await
RunInitializeAsync
(
worksapce
.
CurrentS
olution
,
new
LSP
.
InitializeParams
());
AssertServerCapabilities
(
results
.
Capabilities
);
}
...
...
src/Features/LanguageServer/ProtocolUnitTests/References/FindImplementationsTests.cs
浏览文件 @
753314a2
...
...
@@ -27,9 +27,9 @@ class A : IA
{
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
results
=
await
RunFindImplementationAsync
(
s
olution
,
locations
[
"caret"
].
Single
());
var
results
=
await
RunFindImplementationAsync
(
workspace
.
CurrentS
olution
,
locations
[
"caret"
].
Single
());
AssertLocationsEqual
(
locations
[
"implementation"
],
results
);
}
...
...
@@ -55,9 +55,10 @@ class A : IA
}
}"
};
var
(
solution
,
locations
)
=
CreateTestSolution
(
markups
);
var
results
=
await
RunFindImplementationAsync
(
solution
,
locations
[
"caret"
].
Single
());
using
var
workspace
=
CreateTestWorkspace
(
markups
,
out
var
locations
);
var
results
=
await
RunFindImplementationAsync
(
workspace
.
CurrentSolution
,
locations
[
"caret"
].
Single
());
AssertLocationsEqual
(
locations
[
"implementation"
],
results
);
}
...
...
@@ -72,9 +73,9 @@ void M()
{|caret:|}
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
results
=
await
RunFindImplementationAsync
(
s
olution
,
locations
[
"caret"
].
Single
());
var
results
=
await
RunFindImplementationAsync
(
workspace
.
CurrentS
olution
,
locations
[
"caret"
].
Single
());
Assert
.
Empty
(
results
);
}
...
...
src/Features/LanguageServer/ProtocolUnitTests/Rename/RenameTests.cs
浏览文件 @
753314a2
...
...
@@ -27,12 +27,12 @@ void M2()
{|renamed:M|}()
}
}"
;
var
(
solution
,
ranges
)
=
CreateTestSolution
(
markup
);
var
renameLocation
=
range
s
[
"caret"
].
First
();
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
renameLocation
=
location
s
[
"caret"
].
First
();
var
renameValue
=
"RENAME"
;
var
expectedEdits
=
range
s
[
"renamed"
].
Select
(
location
=>
new
LSP
.
TextEdit
()
{
NewText
=
renameValue
,
Range
=
location
.
Range
});
var
expectedEdits
=
location
s
[
"renamed"
].
Select
(
location
=>
new
LSP
.
TextEdit
()
{
NewText
=
renameValue
,
Range
=
location
.
Range
});
var
results
=
await
RunRenameAsync
(
s
olution
,
renameLocation
,
renameValue
);
var
results
=
await
RunRenameAsync
(
workspace
.
CurrentS
olution
,
renameLocation
,
renameValue
);
AssertJsonEquals
(
expectedEdits
,
results
.
DocumentChanges
.
First
().
Edits
);
}
...
...
src/Features/LanguageServer/ProtocolUnitTests/SignatureHelp/SignatureHelpTests.cs
浏览文件 @
753314a2
...
...
@@ -32,7 +32,7 @@ int M2(string a)
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
expected
=
new
LSP
.
SignatureHelp
()
{
ActiveParameter
=
0
,
...
...
@@ -40,7 +40,7 @@ int M2(string a)
Signatures
=
new
LSP
.
SignatureInformation
[]
{
CreateSignatureInformation
(
"int A.M2(string a)"
,
"M2 is a method."
,
"a"
,
""
)
}
};
var
results
=
await
RunGetSignatureHelpAsync
(
s
olution
,
locations
[
"caret"
].
Single
());
var
results
=
await
RunGetSignatureHelpAsync
(
workspace
.
CurrentS
olution
,
locations
[
"caret"
].
Single
());
AssertJsonEquals
(
expected
,
results
);
}
...
...
src/Features/LanguageServer/ProtocolUnitTests/Symbols/DocumentSymbolsTests.cs
浏览文件 @
753314a2
...
...
@@ -24,14 +24,14 @@ public async Task TestGetDocumentSymbolsAsync()
{
}|}
}|}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
expected
=
new
LSP
.
DocumentSymbol
[]
{
CreateDocumentSymbol
(
LSP
.
SymbolKind
.
Class
,
"A"
,
"A"
,
locations
[
"class"
].
Single
(),
locations
[
"classSelection"
].
Single
())
};
CreateDocumentSymbol
(
LSP
.
SymbolKind
.
Method
,
"M"
,
"M()"
,
locations
[
"method"
].
Single
(),
locations
[
"methodSelection"
].
Single
(),
expected
.
First
());
var
results
=
await
RunGetDocumentSymbolsAsync
(
s
olution
,
true
);
var
results
=
await
RunGetDocumentSymbolsAsync
(
workspace
.
CurrentS
olution
,
true
);
AssertJsonEquals
(
expected
,
results
);
}
...
...
@@ -45,14 +45,14 @@ public async Task TestGetDocumentSymbolsAsync__WithoutHierarchicalSupport()
{
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
expected
=
new
LSP
.
SymbolInformation
[]
{
CreateSymbolInformation
(
LSP
.
SymbolKind
.
Class
,
"A"
,
locations
[
"class"
].
Single
()),
CreateSymbolInformation
(
LSP
.
SymbolKind
.
Method
,
"M()"
,
locations
[
"method"
].
Single
(),
"A"
)
};
var
results
=
await
RunGetDocumentSymbolsAsync
(
s
olution
,
false
);
var
results
=
await
RunGetDocumentSymbolsAsync
(
workspace
.
CurrentS
olution
,
false
);
AssertJsonEquals
(
expected
,
results
);
}
...
...
@@ -69,17 +69,17 @@ void Method()
int i = 1;
}
}"
;
var
(
solution
,
_
)
=
CreateTestSolution
(
markup
);
var
results
=
await
RunGetDocumentSymbolsAsync
(
s
olution
,
false
).
ConfigureAwait
(
false
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
_
);
var
results
=
await
RunGetDocumentSymbolsAsync
(
workspace
.
CurrentS
olution
,
false
).
ConfigureAwait
(
false
);
Assert
.
Equal
(
3
,
results
.
Length
);
}
[
Fact
]
public
async
Task
TestGetDocumentSymbolsAsync__NoSymbols
()
{
var
(
solution
,
_
)
=
CreateTestSolution
(
string
.
Empty
);
using
var
workspace
=
CreateTestWorkspace
(
string
.
Empty
,
out
var
_
);
var
results
=
await
RunGetDocumentSymbolsAsync
(
s
olution
,
true
);
var
results
=
await
RunGetDocumentSymbolsAsync
(
workspace
.
CurrentS
olution
,
true
);
Assert
.
Empty
(
results
);
}
...
...
src/Features/LanguageServer/ProtocolUnitTests/Symbols/WorkspaceSymbolsTests.cs
浏览文件 @
753314a2
...
...
@@ -23,13 +23,13 @@ void M()
{
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
expected
=
new
LSP
.
SymbolInformation
[]
{
CreateSymbolInformation
(
LSP
.
SymbolKind
.
Class
,
"A"
,
locations
[
"class"
].
Single
())
};
var
results
=
await
RunGetWorkspaceSymbolsAsync
(
s
olution
,
"A"
).
ConfigureAwait
(
false
);
var
results
=
await
RunGetWorkspaceSymbolsAsync
(
workspace
.
CurrentS
olution
,
"A"
).
ConfigureAwait
(
false
);
AssertJsonEquals
(
expected
,
results
);
}
...
...
@@ -43,13 +43,13 @@ public async Task TestGetWorkspaceSymbolsAsync_Method()
{
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
expected
=
new
LSP
.
SymbolInformation
[]
{
CreateSymbolInformation
(
LSP
.
SymbolKind
.
Method
,
"M"
,
locations
[
"method"
].
Single
())
};
var
results
=
await
RunGetWorkspaceSymbolsAsync
(
s
olution
,
"M"
).
ConfigureAwait
(
false
);
var
results
=
await
RunGetWorkspaceSymbolsAsync
(
workspace
.
CurrentS
olution
,
"M"
).
ConfigureAwait
(
false
);
AssertJsonEquals
(
expected
,
results
);
}
...
...
@@ -66,13 +66,13 @@ void M()
int {|local:i|} = 1;
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
expected
=
new
LSP
.
SymbolInformation
[]
{
CreateSymbolInformation
(
LSP
.
SymbolKind
.
Variable
,
"i"
,
locations
[
"local"
].
Single
())
};
var
results
=
await
RunGetWorkspaceSymbolsAsync
(
s
olution
,
"i"
).
ConfigureAwait
(
false
);
var
results
=
await
RunGetWorkspaceSymbolsAsync
(
workspace
.
CurrentS
olution
,
"i"
).
ConfigureAwait
(
false
);
AssertJsonEquals
(
expected
,
results
);
}
...
...
@@ -91,7 +91,7 @@ class {|class:F|}
int {|field:F|};
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
expected
=
new
LSP
.
SymbolInformation
[]
{
CreateSymbolInformation
(
LSP
.
SymbolKind
.
Field
,
"F"
,
locations
[
"field"
][
0
]),
...
...
@@ -99,7 +99,7 @@ class {|class:F|}
CreateSymbolInformation
(
LSP
.
SymbolKind
.
Field
,
"F"
,
locations
[
"field"
][
1
])
};
var
results
=
await
RunGetWorkspaceSymbolsAsync
(
s
olution
,
"F"
).
ConfigureAwait
(
false
);
var
results
=
await
RunGetWorkspaceSymbolsAsync
(
workspace
.
CurrentS
olution
,
"F"
).
ConfigureAwait
(
false
);
AssertJsonEquals
(
expected
,
results
);
}
...
...
@@ -122,14 +122,14 @@ public async Task TestGetWorkspaceSymbolsAsync_MultipleDocuments()
}"
};
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
s
);
using
var
workspace
=
CreateTestWorkspace
(
markups
,
out
var
location
s
);
var
expected
=
new
LSP
.
SymbolInformation
[]
{
CreateSymbolInformation
(
LSP
.
SymbolKind
.
Method
,
"M"
,
locations
[
"method"
][
0
]),
CreateSymbolInformation
(
LSP
.
SymbolKind
.
Method
,
"M"
,
locations
[
"method"
][
1
])
};
var
results
=
await
RunGetWorkspaceSymbolsAsync
(
s
olution
,
"M"
).
ConfigureAwait
(
false
);
var
results
=
await
RunGetWorkspaceSymbolsAsync
(
workspace
.
CurrentS
olution
,
"M"
).
ConfigureAwait
(
false
);
AssertJsonEquals
(
expected
,
results
);
}
...
...
@@ -143,9 +143,9 @@ void M()
{
}
}"
;
var
(
solution
,
_
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
_
);
var
results
=
await
RunGetWorkspaceSymbolsAsync
(
s
olution
,
"NonExistingSymbol"
).
ConfigureAwait
(
false
);
var
results
=
await
RunGetWorkspaceSymbolsAsync
(
workspace
.
CurrentS
olution
,
"NonExistingSymbol"
).
ConfigureAwait
(
false
);
Assert
.
Empty
(
results
);
}
...
...
src/VisualStudio/LiveShare/Test/ClassificationsHandlerTests.cs
浏览文件 @
753314a2
...
...
@@ -24,10 +24,10 @@ void M()
{|classify:var|} i = 1;
}
}"
;
var
(
solution
,
ranges
)
=
CreateTestSolution
(
markup
);
var
classifyLocation
=
range
s
[
"classify"
].
First
();
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
classifyLocation
=
location
s
[
"classify"
].
First
();
var
results
=
await
TestHandleAsync
<
ClassificationParams
,
object
[
]>
(
s
olution
,
CreateClassificationParams
(
classifyLocation
));
var
results
=
await
TestHandleAsync
<
ClassificationParams
,
object
[
]>
(
workspace
.
CurrentS
olution
,
CreateClassificationParams
(
classifyLocation
));
AssertJsonEquals
(
new
ClassificationSpan
[]
{
CreateClassificationSpan
(
"keyword"
,
classifyLocation
.
Range
)
},
results
);
}
...
...
src/VisualStudio/LiveShare/Test/DiagnosticsHandlerTests.cs
浏览文件 @
753314a2
...
...
@@ -25,12 +25,11 @@ void M()
{|diagnostic:var|} i = 1;
}
}"
;
var
(
solution
,
ranges
)
=
CreateTestSolution
(
markup
);
var
workspace
=
(
TestWorkspace
)
solution
.
Workspace
;
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
diagnosticLocation
=
range
s
[
"diagnostic"
].
First
();
var
diagnosticLocation
=
location
s
[
"diagnostic"
].
First
();
var
_
=
await
TestHandleAsync
<
TextDocumentParams
,
LSP
.
Diagnostic
[
]>
(
s
olution
,
CreateTestDocumentParams
(
diagnosticLocation
.
Uri
));
var
_
=
await
TestHandleAsync
<
TextDocumentParams
,
LSP
.
Diagnostic
[
]>
(
workspace
.
CurrentS
olution
,
CreateTestDocumentParams
(
diagnosticLocation
.
Uri
));
}
private
static
TextDocumentParams
CreateTestDocumentParams
(
Uri
uri
)
...
...
src/VisualStudio/LiveShare/Test/FindAllReferencesHandlerTests.cs
浏览文件 @
753314a2
...
...
@@ -33,9 +33,9 @@ void M2()
var j = someInt + A.{|caret:|}{|reference:someInt|};
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
results
=
await
RunFindAllReferencesAsync
(
s
olution
,
locations
[
"caret"
].
First
(),
true
);
var
results
=
await
RunFindAllReferencesAsync
(
workspace
.
CurrentS
olution
,
locations
[
"caret"
].
First
(),
true
);
AssertLocationsEqual
(
locations
[
"reference"
],
results
);
}
...
...
@@ -59,9 +59,9 @@ void M2()
var j = someInt + A.{|caret:|}{|reference:someInt|};
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
results
=
await
RunFindAllReferencesAsync
(
s
olution
,
locations
[
"caret"
].
First
(),
false
);
var
results
=
await
RunFindAllReferencesAsync
(
workspace
.
CurrentS
olution
,
locations
[
"caret"
].
First
(),
false
);
AssertLocationsEqual
(
locations
[
"reference"
],
results
);
}
...
...
@@ -86,9 +86,10 @@ void M2()
}
}"
};
var
(
solution
,
locations
)
=
CreateTestSolution
(
markups
);
var
results
=
await
RunFindAllReferencesAsync
(
solution
,
locations
[
"caret"
].
First
(),
true
);
using
var
workspace
=
CreateTestWorkspace
(
markups
,
out
var
locations
);
var
results
=
await
RunFindAllReferencesAsync
(
workspace
.
CurrentSolution
,
locations
[
"caret"
].
First
(),
true
);
AssertLocationsEqual
(
locations
[
"reference"
],
results
);
}
...
...
@@ -100,9 +101,9 @@ public async Task TestFindAllReferencesAsync_InvalidLocation()
{
{|caret:|}
}"
;
var
(
solution
,
ranges
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
results
=
await
RunFindAllReferencesAsync
(
solution
,
range
s
[
"caret"
].
First
(),
true
);
var
results
=
await
RunFindAllReferencesAsync
(
workspace
.
CurrentSolution
,
location
s
[
"caret"
].
First
(),
true
);
Assert
.
Empty
(
results
);
}
...
...
src/VisualStudio/LiveShare/Test/PreviewCodeActionsTests.cs
浏览文件 @
753314a2
...
...
@@ -24,10 +24,10 @@ void M()
{|caret:|}{|edit:int|} i = 1;
}
}"
;
var
(
solution
,
locations
)
=
CreateTestSolution
(
markup
);
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
expected
=
CreateTextEdit
(
"var"
,
locations
[
"edit"
].
First
().
Range
);
var
results
=
await
TestHandleAsync
<
RunCodeActionParams
,
LSP
.
TextEdit
[
]>
(
s
olution
,
CreateRunCodeActionParams
(
CSharpAnalyzersResources
.
Use_implicit_type
,
locations
[
"caret"
].
First
()));
var
results
=
await
TestHandleAsync
<
RunCodeActionParams
,
LSP
.
TextEdit
[
]>
(
workspace
.
CurrentS
olution
,
CreateRunCodeActionParams
(
CSharpAnalyzersResources
.
Use_implicit_type
,
locations
[
"caret"
].
First
()));
AssertJsonEquals
(
new
LSP
.
TextEdit
[]
{
expected
},
results
);
}
...
...
src/VisualStudio/LiveShare/Test/ProjectsHandlerTests.cs
浏览文件 @
753314a2
...
...
@@ -15,7 +15,8 @@ public class ProjectsHandlerTests : AbstractLiveShareRequestHandlerTests
[
Fact
]
public
async
Task
TestProjectsAsync
()
{
var
(
solution
,
ranges
)
=
CreateTestSolution
(
string
.
Empty
);
using
var
workspace
=
CreateTestWorkspace
(
string
.
Empty
,
out
var
_
);
var
solution
=
workspace
.
CurrentSolution
;
var
expected
=
solution
.
Projects
.
Select
(
p
=>
CreateLspProject
(
p
)).
ToArray
();
var
results
=
(
CustomProtocol
.
Project
[])
await
TestHandleAsync
<
object
,
object
[
]>
(
solution
,
null
);
...
...
src/VisualStudio/LiveShare/Test/RunCodeActionsHandlerTests.cs
浏览文件 @
753314a2
...
...
@@ -26,10 +26,10 @@ void M()
{|caret:|}int i = 1;
}
}"
;
var
(
solution
,
ranges
)
=
CreateTestSolution
(
markup
);
var
codeActionLocation
=
range
s
[
"caret"
].
First
();
using
var
workspace
=
CreateTestWorkspace
(
markup
,
out
var
locations
);
var
codeActionLocation
=
location
s
[
"caret"
].
First
();
var
results
=
await
TestHandleAsync
<
LSP
.
ExecuteCommandParams
,
object
>(
s
olution
,
CreateExecuteCommandParams
(
codeActionLocation
,
CSharpAnalyzersResources
.
Use_implicit_type
));
var
results
=
await
TestHandleAsync
<
LSP
.
ExecuteCommandParams
,
object
>(
workspace
.
CurrentS
olution
,
CreateExecuteCommandParams
(
codeActionLocation
,
CSharpAnalyzersResources
.
Use_implicit_type
));
Assert
.
True
((
bool
)
results
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录