Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
2ddbe6e6
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,发现更多精彩内容 >>
提交
2ddbe6e6
编写于
9月 12, 2016
作者:
H
Heejae Chang
提交者:
GitHub
9月 12, 2016
浏览文件
操作
浏览文件
下载
差异文件
Merge pull request #13743 from heejaechang/oopOption
check whether options that require OOP are enabled.
上级
4de75902
53b92a74
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
51 addition
and
2 deletion
+51
-2
src/VisualStudio/Core/Def/Implementation/Remote/RemoteHostClientServiceFactory.RemoteHostClientService.cs
...RemoteHostClientServiceFactory.RemoteHostClientService.cs
+51
-2
未找到文件。
src/VisualStudio/Core/Def/Implementation/Remote/RemoteHostClientServiceFactory.RemoteHostClientService.cs
浏览文件 @
2ddbe6e6
...
...
@@ -5,16 +5,20 @@
using
System.Threading.Tasks
;
using
Microsoft.CodeAnalysis
;
using
Microsoft.CodeAnalysis.Diagnostics
;
using
Microsoft.CodeAnalysis.Editor.Shared.Utilities
;
using
Microsoft.CodeAnalysis.ErrorReporting
;
using
Microsoft.CodeAnalysis.Execution
;
using
Microsoft.CodeAnalysis.Internal.Log
;
using
Microsoft.CodeAnalysis.Shared.Options
;
using
Microsoft.VisualStudio.Settings
;
using
Microsoft.VisualStudio.Shell.Settings
;
using
Roslyn.Utilities
;
namespace
Microsoft.VisualStudio.LanguageServices.Remote
{
internal
partial
class
RemoteHostClientServiceFactory
{
public
class
RemoteHostClientService
:
IRemoteHostClientService
public
class
RemoteHostClientService
:
ForegroundThreadAffinitizedObject
,
IRemoteHostClientService
{
private
readonly
Workspace
_workspace
;
private
readonly
IDiagnosticAnalyzerService
_analyzerService
;
...
...
@@ -25,7 +29,8 @@ public class RemoteHostClientService : IRemoteHostClientService
private
CancellationTokenSource
_shutdownCancellationTokenSource
;
private
Task
<
RemoteHostClient
>
_instanceTask
;
public
RemoteHostClientService
(
Workspace
workspace
,
IDiagnosticAnalyzerService
analyzerService
)
public
RemoteHostClientService
(
Workspace
workspace
,
IDiagnosticAnalyzerService
analyzerService
)
:
base
()
{
_gate
=
new
object
();
...
...
@@ -51,6 +56,12 @@ public void Enable()
return
;
}
if
(!
FeaturesEnabled
())
{
// none of features that require OOP is enabled.
return
;
}
// log that remote host is enabled
Logger
.
Log
(
FunctionId
.
RemoteHostClientService_Enabled
,
KeyValueLogMessage
.
NoProperty
);
...
...
@@ -187,6 +198,44 @@ private void OnConnectionChanged(object sender, bool connected)
// crash right away when connection is closed
FatalError
.
Report
(
new
Exception
(
"Connection to remote host closed"
));
}
private
bool
FeaturesEnabled
()
{
if
(
ServiceFeatureOnOffOptions
.
IsClosedFileDiagnosticsEnabled
(
_workspace
.
Options
,
LanguageNames
.
CSharp
))
{
return
true
;
}
if
(
TestImpactEnabled
())
{
return
true
;
}
// TODO: add check for code lens.
return
false
;
}
private
bool
TestImpactEnabled
()
{
const
string
TestImpactPath
=
@"CodeAnalysis\TestImpact\IsGloballyEnabled"
;
const
string
KeyName
=
"Value"
;
// TODO: think about how to get rid of this code. since we don't want any code that require foreground
// thread to run
AssertIsForeground
();
var
shellSettingsManager
=
new
ShellSettingsManager
(
Shell
.
ServiceProvider
.
GlobalProvider
);
var
writeableSettingsStore
=
shellSettingsManager
.
GetWritableSettingsStore
(
SettingsScope
.
UserSettings
);
if
(
writeableSettingsStore
.
PropertyExists
(
TestImpactPath
,
KeyName
))
{
return
writeableSettingsStore
.
GetBoolean
(
TestImpactPath
,
KeyName
);
}
else
{
return
false
;
}
}
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录