Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
82658299
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,发现更多精彩内容 >>
未验证
提交
82658299
编写于
1月 09, 2020
作者:
D
David
提交者:
GitHub
1月 09, 2020
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #40851 from dotnet/merges/release/dev16.5-preview2-to-master
Merge release/dev16.5-preview2 to master
上级
2537042a
7b338d5f
变更
7
隐藏空白更改
内联
并排
Showing
7 changed file
with
63 addition
and
12 deletion
+63
-12
src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs
...ompilers/CSharp/Portable/Compilation/CSharpCompilation.cs
+6
-1
src/Compilers/CSharp/Test/Symbol/Compilation/CompilationAPITests.cs
...ers/CSharp/Test/Symbol/Compilation/CompilationAPITests.cs
+14
-0
src/Compilers/VisualBasic/Portable/Compilation/VisualBasicCompilation.vb
...isualBasic/Portable/Compilation/VisualBasicCompilation.vb
+6
-1
src/Compilers/VisualBasic/Test/Semantic/Compilation/CompilationAPITests.vb
...ualBasic/Test/Semantic/Compilation/CompilationAPITests.vb
+13
-0
src/VisualStudio/Core/Def/Implementation/LanguageClient/InProcLanguageServer.cs
...Def/Implementation/LanguageClient/InProcLanguageServer.cs
+19
-2
src/VisualStudio/Core/Test.Next/Services/LanguageServiceTests.cs
...ualStudio/Core/Test.Next/Services/LanguageServiceTests.cs
+1
-1
src/Workspaces/Remote/ServiceHub/Services/LanguageServer.cs
src/Workspaces/Remote/ServiceHub/Services/LanguageServer.cs
+4
-7
未找到文件。
src/Compilers/CSharp/Portable/Compilation/CSharpCompilation.cs
浏览文件 @
82658299
...
...
@@ -1129,7 +1129,12 @@ internal void GetUnaliasedReferencedAssemblies(ArrayBuilder<AssemblySymbol> asse
private
protected
override
MetadataReference
?
CommonGetMetadataReference
(
IAssemblySymbol
assemblySymbol
)
{
return
GetMetadataReference
(
assemblySymbol
.
EnsureCSharpSymbolOrNull
(
nameof
(
assemblySymbol
)));
if
(
assemblySymbol
is
Symbols
.
PublicModel
.
AssemblySymbol
{
UnderlyingAssemblySymbol
:
var
underlyingSymbol
})
{
return
GetMetadataReference
(
underlyingSymbol
);
}
return
null
;
}
internal
MetadataReference
?
GetMetadataReference
(
AssemblySymbol
?
assemblySymbol
)
...
...
src/Compilers/CSharp/Test/Symbol/Compilation/CompilationAPITests.cs
浏览文件 @
82658299
...
...
@@ -2267,6 +2267,20 @@ public void GetMetadataReferenceAPITest()
Assert
.
NotNull
(
reference2
);
}
[
Fact
]
[
WorkItem
(
40466
,
"https://github.com/dotnet/roslyn/issues/40466"
)]
public
void
GetMetadataReference_VisualBasicSymbols
()
{
var
comp
=
CreateCompilation
(
""
);
var
vbComp
=
CreateVisualBasicCompilation
(
""
,
referencedAssemblies
:
TargetFrameworkUtil
.
GetReferences
(
TargetFramework
.
Standard
));
var
assembly
=
(
IAssemblySymbol
)
vbComp
.
GetBoundReferenceManager
().
GetReferencedAssemblies
().
First
().
Value
;
Assert
.
Null
(
comp
.
GetMetadataReference
(
assembly
));
Assert
.
Null
(
comp
.
GetMetadataReference
(
vbComp
.
Assembly
));
Assert
.
Null
(
comp
.
GetMetadataReference
((
IAssemblySymbol
)
null
));
}
[
Fact
]
public
void
ConsistentParseOptions
()
{
...
...
src/Compilers/VisualBasic/Portable/Compilation/VisualBasicCompilation.vb
浏览文件 @
82658299
...
...
@@ -1232,7 +1232,12 @@ Namespace Microsoft.CodeAnalysis.VisualBasic
End
Function
Private
Protected
Overrides
Function
CommonGetMetadataReference
(
assemblySymbol
As
IAssemblySymbol
)
As
MetadataReference
Return
GetMetadataReference
(
assemblySymbol
.
EnsureVbSymbolOrNothing
(
Of
AssemblySymbol
)(
NameOf
(
assemblySymbol
)))
Dim
symbol
=
TryCast
(
assemblySymbol
,
AssemblySymbol
)
If
symbol
IsNot
Nothing
Then
Return
GetMetadataReference
(
symbol
)
End
If
Return
Nothing
End
Function
Public
Overrides
ReadOnly
Property
ReferencedAssemblyNames
As
IEnumerable
(
Of
AssemblyIdentity
)
...
...
src/Compilers/VisualBasic/Test/Semantic/Compilation/CompilationAPITests.vb
浏览文件 @
82658299
...
...
@@ -2257,6 +2257,19 @@ End Class
Assert
.
NotNull
(
reference2
)
End
Sub
<
WorkItem
(
40466
,
"https://github.com/dotnet/roslyn/issues/40466"
)
>
<
Fact
>
Public
Sub
GetMetadataReference_CSharpSymbols
()
Dim
comp
As
Compilation
=
CreateCompilation
(
""
)
Dim
csComp
=
CreateCSharpCompilation
(
""
,
referencedAssemblies
:
=
TargetFrameworkUtil
.
GetReferences
(
TargetFramework
.
Standard
))
Dim
assembly
=
csComp
.
GetBoundReferenceManager
().
GetReferencedAssemblies
().
First
().
Value
Assert
.
Null
(
comp
.
GetMetadataReference
(
DirectCast
(
assembly
.
GetISymbol
(),
IAssemblySymbol
)))
Assert
.
Null
(
comp
.
GetMetadataReference
(
csComp
.
Assembly
))
Assert
.
Null
(
comp
.
GetMetadataReference
(
Nothing
))
End
Sub
<
Fact
()
>
Public
Sub
EqualityOfMergedNamespaces
()
...
...
src/VisualStudio/Core/Def/Implementation/LanguageClient/InProcLanguageServer.cs
浏览文件 @
82658299
...
...
@@ -13,6 +13,7 @@
using
Microsoft.CodeAnalysis.LanguageServer
;
using
Microsoft.VisualStudio.LanguageServer.Client
;
using
Microsoft.VisualStudio.LanguageServer.Protocol
;
using
Newtonsoft.Json
;
using
Newtonsoft.Json.Linq
;
using
StreamJsonRpc
;
...
...
@@ -52,11 +53,27 @@ internal class InProcLanguageServer
[
JsonRpcMethod
(
Methods
.
InitializeName
)]
public
Task
<
InitializeResult
>
Initialize
(
JToken
input
,
CancellationToken
cancellationToken
)
{
// The VS LSP protocol package changed the type of 'tagSupport' from bool to an object.
// Our version of the LSP protocol package is older and assumes that the type is bool, so deserialization fails.
// Since we don't really read this field, just no-op the error until we can update our package references.
// https://github.com/dotnet/roslyn/issues/40829 tracks updating this.
var
settings
=
new
JsonSerializerSettings
{
Error
=
(
sender
,
args
)
=>
{
if
(
object
.
Equals
(
args
.
ErrorContext
.
Member
,
"tagSupport"
)
&&
args
.
ErrorContext
.
OriginalObject
.
GetType
()
==
typeof
(
PublishDiagnosticsSetting
))
{
args
.
ErrorContext
.
Handled
=
true
;
}
}
};
var
serializer
=
JsonSerializer
.
Create
(
settings
);
// InitializeParams only references ClientCapabilities, but the VS LSP client
// sends additional VS specific capabilities, so directly deserialize them into the VSClientCapabilities
// to avoid losing them.
_clientCapabilities
=
input
[
"capabilities"
].
ToObject
<
VSClientCapabilities
>();
return
_protocol
.
InitializeAsync
(
_workspace
.
CurrentSolution
,
input
.
ToObject
<
InitializeParams
>(),
_clientCapabilities
,
cancellationToken
);
_clientCapabilities
=
input
[
"capabilities"
].
ToObject
<
VSClientCapabilities
>(
serializer
);
return
_protocol
.
InitializeAsync
(
_workspace
.
CurrentSolution
,
input
.
ToObject
<
InitializeParams
>(
serializer
),
_clientCapabilities
,
cancellationToken
);
}
[
JsonRpcMethod
(
Methods
.
InitializedName
)]
...
...
src/VisualStudio/Core/Test.Next/Services/LanguageServiceTests.cs
浏览文件 @
82658299
...
...
@@ -96,7 +96,7 @@ private async Task<List<VSPublishSymbolParams>> GetVsSearchResultsAsync(Solution
{
var
result
=
await
jsonRpc
.
InvokeWithCancellationAsync
<
JObject
>(
Methods
.
InitializeName
,
new
object
[]
{
Process
.
GetCurrentProcess
().
Id
,
"test"
,
new
Uri
(
"file://test"
),
new
ClientCapabilities
(),
TraceSetting
.
Off
},
new
object
[]
{
new
InitializeParams
()
},
CancellationToken
.
None
);
Assert
.
True
(
result
[
"capabilities"
][
"workspaceStreamingSymbolProvider"
].
ToObject
<
bool
>());
...
...
src/Workspaces/Remote/ServiceHub/Services/LanguageServer.cs
浏览文件 @
82658299
...
...
@@ -10,8 +10,7 @@
using
Microsoft.CodeAnalysis.LanguageServer
;
using
Microsoft.CodeAnalysis.NavigateTo
;
using
Microsoft.VisualStudio.LanguageServer.Protocol
;
using
Newtonsoft.Json
;
using
Roslyn.Utilities
;
using
Newtonsoft.Json.Linq
;
using
StreamJsonRpc
;
using
LSP
=
Microsoft
.
VisualStudio
.
LanguageServer
.
Protocol
;
...
...
@@ -41,17 +40,15 @@ public LanguageServer(Stream stream, IServiceProvider serviceProvider)
}
[
JsonRpcMethod
(
Methods
.
InitializeName
)]
public
object
Initialize
(
int
?
processId
,
string
rootPath
,
Uri
rootUri
,
ClientCapabilities
capabilities
,
TraceSetting
trace
,
CancellationToken
cancellationToken
)
public
Task
<
InitializeResult
>
Initialize
(
JToken
input
,
CancellationToken
cancellationToken
)
{
// our LSP server only supports WorkspaceStreamingSymbolProvider capability
// for now
return
new
InitializeResult
()
return
Task
.
FromResult
(
new
InitializeResult
()
{
Capabilities
=
new
VSServerCapabilities
()
{
WorkspaceStreamingSymbolProvider
=
true
}
};
}
)
;
}
[
JsonRpcMethod
(
Methods
.
InitializedName
)]
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录