提交 3ef4e7a7 编写于 作者: A Andrew Casey

Stop setting InternalFeatureOnOffOptions

We were doing so to disable snippets in the interactive window, but it
turns out that it's per-user, rather than per-workspace.

Fixes #5393
上级 6eca7dcd
......@@ -97,6 +97,7 @@ internal class Model
if (completionService != null &&
workspace != null &&
workspace.Kind != WorkspaceKind.Interactive && // TODO (https://github.com/dotnet/roslyn/issues/5107): support in interactive
workspace.Options.GetOption(InternalFeatureOnOffOptions.Snippets) &&
triggerInfo.TriggerReason != CompletionTriggerReason.Snippets)
{
......
......@@ -25,9 +25,6 @@ internal InteractiveWorkspace(InteractiveEvaluator engine, HostServices hostServ
// register work coordinator for this workspace
_registrationService = this.Services.GetService<ISolutionCrawlerRegistrationService>();
_registrationService.Register(this);
// TODO (https://github.com/dotnet/roslyn/issues/5107): Enable in Interactive.
this.Options = this.Options.WithChangedOption(InternalFeatureOnOffOptions.Snippets, false);
}
protected override void Dispose(bool finalize)
......
......@@ -38,7 +38,7 @@ public void ExecuteCommand(SurroundWithCommandArgs args, Action nextHandler)
{
AssertIsForeground();
if (!args.SubjectBuffer.GetOption(InternalFeatureOnOffOptions.Snippets))
if (!AreSnippetsEnabled(args))
{
nextHandler();
return;
......@@ -51,7 +51,7 @@ public CommandState GetCommandState(SurroundWithCommandArgs args, Func<CommandSt
{
AssertIsForeground();
if (!args.SubjectBuffer.GetOption(InternalFeatureOnOffOptions.Snippets))
if (!AreSnippetsEnabled(args))
{
return nextHandler();
}
......
......@@ -49,7 +49,7 @@ protected virtual bool TryInvokeSnippetPickerOnQuestionMark(ITextView textView,
public void ExecuteCommand(TabKeyCommandArgs args, Action nextHandler)
{
AssertIsForeground();
if (!args.SubjectBuffer.GetOption(InternalFeatureOnOffOptions.Snippets))
if (!AreSnippetsEnabled(args))
{
nextHandler();
return;
......@@ -83,7 +83,7 @@ public CommandState GetCommandState(TabKeyCommandArgs args, Func<CommandState> n
{
AssertIsForeground();
if (!args.SubjectBuffer.GetOption(InternalFeatureOnOffOptions.Snippets))
if (!AreSnippetsEnabled(args))
{
return nextHandler();
}
......@@ -100,7 +100,7 @@ public CommandState GetCommandState(TabKeyCommandArgs args, Func<CommandState> n
public void ExecuteCommand(ReturnKeyCommandArgs args, Action nextHandler)
{
AssertIsForeground();
if (!args.SubjectBuffer.GetOption(InternalFeatureOnOffOptions.Snippets))
if (!AreSnippetsEnabled(args))
{
nextHandler();
return;
......@@ -120,7 +120,7 @@ public CommandState GetCommandState(ReturnKeyCommandArgs args, Func<CommandState
{
AssertIsForeground();
if (!args.SubjectBuffer.GetOption(InternalFeatureOnOffOptions.Snippets))
if (!AreSnippetsEnabled(args))
{
return nextHandler();
}
......@@ -137,7 +137,7 @@ public CommandState GetCommandState(ReturnKeyCommandArgs args, Func<CommandState
public void ExecuteCommand(EscapeKeyCommandArgs args, Action nextHandler)
{
AssertIsForeground();
if (!args.SubjectBuffer.GetOption(InternalFeatureOnOffOptions.Snippets))
if (!AreSnippetsEnabled(args))
{
nextHandler();
return;
......@@ -157,7 +157,7 @@ public CommandState GetCommandState(EscapeKeyCommandArgs args, Func<CommandState
{
AssertIsForeground();
if (!args.SubjectBuffer.GetOption(InternalFeatureOnOffOptions.Snippets))
if (!AreSnippetsEnabled(args))
{
return nextHandler();
}
......@@ -174,7 +174,7 @@ public CommandState GetCommandState(EscapeKeyCommandArgs args, Func<CommandState
public void ExecuteCommand(BackTabKeyCommandArgs args, Action nextHandler)
{
AssertIsForeground();
if (!args.SubjectBuffer.GetOption(InternalFeatureOnOffOptions.Snippets))
if (!AreSnippetsEnabled(args))
{
nextHandler();
return;
......@@ -194,7 +194,7 @@ public CommandState GetCommandState(BackTabKeyCommandArgs args, Func<CommandStat
{
AssertIsForeground();
if (!args.SubjectBuffer.GetOption(InternalFeatureOnOffOptions.Snippets))
if (!AreSnippetsEnabled(args))
{
return nextHandler();
}
......@@ -212,7 +212,7 @@ public void ExecuteCommand(InsertSnippetCommandArgs args, Action nextHandler)
{
AssertIsForeground();
if (!args.SubjectBuffer.GetOption(InternalFeatureOnOffOptions.Snippets))
if (!AreSnippetsEnabled(args))
{
nextHandler();
return;
......@@ -225,7 +225,7 @@ public CommandState GetCommandState(InsertSnippetCommandArgs args, Func<CommandS
{
AssertIsForeground();
if (!args.SubjectBuffer.GetOption(InternalFeatureOnOffOptions.Snippets))
if (!AreSnippetsEnabled(args))
{
return nextHandler();
}
......@@ -303,5 +303,13 @@ protected bool TryGetExpansionManager(out IVsExpansionManager expansionManager)
textManager.GetExpansionManager(out expansionManager);
return expansionManager != null;
}
protected static bool AreSnippetsEnabled(CommandArgs args)
{
Workspace workspace;
return args.SubjectBuffer.GetOption(InternalFeatureOnOffOptions.Snippets) &&
// TODO (https://github.com/dotnet/roslyn/issues/5107): enable in interactive
!(Workspace.TryGetWorkspace(args.SubjectBuffer.AsTextContainer(), out workspace) && workspace.Kind == WorkspaceKind.Interactive);
}
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册