void ICommandHandler <ToggleCompletionModeCommandArgs> .ExecuteCommand(ToggleCompletionModeCommandArgs args, Action nextHandler) { if (Workspace.TryGetWorkspace(args.SubjectBuffer.AsTextContainer(), out var workspace)) { var newState = !workspace.Options.GetOption(EditorCompletionOptions.UseSuggestionMode); workspace.Options = workspace.Options.WithChangedOption(EditorCompletionOptions.UseSuggestionMode, newState); // If we don't have a computation in progress, then we don't have to do anything here. if (this.sessionOpt == null) { return; } this.sessionOpt.SetModelBuilderState(newState); } }
void ICommandHandler <ToggleCompletionModeCommandArgs> .ExecuteCommand(ToggleCompletionModeCommandArgs args, Action nextHandler) { Workspace workspace; if (Workspace.TryGetWorkspace(args.SubjectBuffer.AsTextContainer(), out workspace)) { var optionService = workspace.Services.GetService <IOptionService>(); var optionSet = optionService.GetOptions(); var wasEnabled = optionService.GetOption(EditorCompletionOptions.UseSuggestionMode); optionService.SetOptions(optionSet.WithChangedOption(EditorCompletionOptions.UseSuggestionMode, !wasEnabled)); // If we don't have a computation in progress, then we don't have to do anything here. if (this.sessionOpt == null) { return; } this.sessionOpt.SetModelBuilderState(!wasEnabled); } }
CommandState ICommandHandler <ToggleCompletionModeCommandArgs> .GetCommandState(ToggleCompletionModeCommandArgs args, System.Func <CommandState> nextHandler) { AssertIsForeground(); var isEnabled = args.SubjectBuffer.GetFeatureOnOffOption(EditorCompletionOptions.UseSuggestionMode); return(new CommandState(isAvailable: true, isChecked: isEnabled)); }
CommandState ICommandHandler <ToggleCompletionModeCommandArgs> .GetCommandState(ToggleCompletionModeCommandArgs args, System.Func <CommandState> nextHandler) { AssertIsForeground(); return(GetCommandStateWorker(args, nextHandler)); }
void ICommandHandler <ToggleCompletionModeCommandArgs> .ExecuteCommand(ToggleCompletionModeCommandArgs args, System.Action nextHandler) { AssertIsForeground(); ExecuteCommandWorker(args, nextHandler); }
void IChainedCommandHandler <ToggleCompletionModeCommandArgs> .ExecuteCommand(ToggleCompletionModeCommandArgs args, Action nextHandler, CommandExecutionContext context) { AssertIsForeground(); ExecuteCommandWorker(args, nextHandler, context); }
bool ICommandHandler <ToggleCompletionModeCommandArgs> .ExecuteCommand(ToggleCompletionModeCommandArgs args, CommandExecutionContext executionContext) { // Do nothing. We merely enable others to call this command return(true); }
CommandState ICommandHandler <ToggleCompletionModeCommandArgs> .GetCommandState(ToggleCompletionModeCommandArgs args) { return(CommandState.Available); }
public bool ExecuteCommand(ToggleCompletionModeCommandArgs args, CommandExecutionContext executionContext) { // Record that user used the Ctrl+Alt+Space command to use Suggestion Mode return(false); // If we return true, the command is marked as "handled" and not actually executed }
// Use CommandState.Unspecified to not interfere with execution, // but if there are not command handlers that mark this command as Available, // then we won't run public CommandState GetCommandState(ToggleCompletionModeCommandArgs args) => CommandState.Unspecified;