public static void TriggerSignatureHelp(ITextView textView) { CompletionController.DismissSignatureSession(textView); var rcc = RCompletionController.FromTextView(textView); rcc.TriggerSignatureHelp(); }
private CommandResult HandleCtrlUp(RCompletionController controller) { TextView.Properties.AddProperty(RCompletionController.IsRHistoryRequest, true); controller.DismissAllSessions(); controller.ShowCompletion(false); return(CommandResult.Executed); }
private void HandleF1Help(RCompletionController controller) { IVsUIShell uiShell = VsAppShell.Current.GetGlobalService <IVsUIShell>(typeof(SVsUIShell)); Guid gmdSet = RGuidList.RCmdSetGuid; object o = new object(); // Post interrupt command which knows if it can interrupt R or not uiShell.PostExecCommand(ref gmdSet, RPackageCommandId.icmdHelpOnCurrent, 0, ref o); }
private void HandleCancel(RCompletionController controller) { if (!controller.HasActiveCompletionSession && !controller.HasActiveSignatureSession(TextView)) { Workflow.Operations.CancelAsync().DoNotWait(); // Post interrupt command which knows if it can interrupt R or not Workflow.Shell.PostCommand(RGuidList.RCmdSetGuid, RPackageCommandId.icmdInterruptR); } }
public static void DismissSession(ITextView textView, bool retrigger = false) { CompletionController.DismissSignatureSession(textView); if (retrigger) { var rcc = RCompletionController.FromTextView(textView); rcc.TriggerSignatureHelp(); } }
public static void TriggerSignatureHelp(ITextView textView, ICoreShell shell) { CompletionController.DismissSignatureSession(textView, shell); var rcc = RCompletionController.FromTextView(textView); // Since this call may come async via dispatcher the editor // window may be already closed at this point. rcc?.TriggerSignatureHelp(); }
private bool HandleCancel(RCompletionController controller) { if (controller.HasActiveCompletionSession || controller.HasActiveSignatureSession(TextView)) { controller.DismissAllSessions(); return(true); } // If session is reading user input, do not terminate it if (!Workflow.RSession.IsReadingUserInput) { Workflow.Shell.PostCommand(RGuidList.RCmdSetGuid, RPackageCommandId.icmdInterruptR); } return(false); }
public override CommandResult Invoke(Guid group, int id, object inputArg, ref object outputArg) { if (group == VSConstants.VSStd2K) { RCompletionController controller = RCompletionController.FromTextView(TextView); if (controller != null) { if (id == (int)VSConstants.VSStd2KCmdID.RETURN) { return(HandleEnter(controller)); } else if (id == (int)VSConstants.VSStd2KCmdID.CANCEL) { HandleCancel(controller); // Allow VS to continue processing cancel } } } else if (group == VSConstants.GUID_VSStandardCommandSet97) { if (id == (int)VSConstants.VSStd97CmdID.F1Help) { RCompletionController controller = RCompletionController.FromTextView(TextView); if (controller != null) { // Translate to R help HandleF1Help(controller); return(CommandResult.Executed); } } } var status = _snippetController.Status(group, id); if (status != CommandStatus.NotSupported) { var result = _snippetController.Invoke(group, id, inputArg, ref outputArg); if (result.Status != CommandStatus.NotSupported) { return(result); } } return(base.Invoke(group, id, inputArg, ref outputArg)); }
private CommandResult HandleEnter(RCompletionController controller) { // If completion is up, commit it if (controller.HasActiveCompletionSession) { // Check for exact match. If applicable span is 'x' and completion is 'x' // then we don't complete and rather execute. If span is 'x' while // current completion entry is 'X11' then we complete depending on // the 'complete on enter' setting. try { var session = controller.CompletionSession; var set = session.SelectedCompletionSet; var span = set.ApplicableTo; var snapshot = span.TextBuffer.CurrentSnapshot; string spanText = snapshot.GetText(span.GetSpan(snapshot)); if (spanText != set.SelectionStatus.Completion.InsertionText) { // If selection is does not match typed text, // control completion depending on the editor setting. if (set.SelectionStatus.IsSelected && Services.GetService <IREditorSettings>().CommitOnEnter) { controller.CommitCompletionSession(); controller.DismissAllSessions(); return(CommandResult.Executed); } } } catch (Exception) { } } controller.DismissAllSessions(); var broker = Services.GetService <ICompletionBroker>(); broker.DismissAllSessions(TextView); var interactiveWorkflowProvider = Services.GetService <IRInteractiveWorkflowProvider>(); var ops = interactiveWorkflowProvider.GetOrCreate().Operations as IRInteractiveWorkflowOperationsEx; ops.ExecuteCurrentExpression(TextView, FormatReplDocument); return(CommandResult.Executed); }
private void HandleF1Help(RCompletionController controller) => Workflow.Services.PostCommand(RGuidList.RCmdSetGuid, RPackageCommandId.icmdHelpOnCurrent);
public IIntellisenseController TryCreateIntellisenseController(ITextView view, IList <ITextBuffer> subjectBuffers) { return(RCompletionController.Create(view, subjectBuffers, CompletionBroker, QuickInfoBroker, SignatureHelpBroker)); }
private void HandleF1Help(RCompletionController controller) { VsAppShell.Current.PostCommand(RGuidList.RCmdSetGuid, RPackageCommandId.icmdHelpOnCurrent); }
private void HandleCancel(RCompletionController controller) { Workflow.Operations.CancelAsync().DoNotWait(); // Post interrupt command which knows if it can interrupt R or not VsAppShell.Current.PostCommand(RGuidList.RCmdSetGuid, RPackageCommandId.icmdInterruptR); }
private void HandleCancel(RCompletionController controller) { // Post interrupt command which knows if it can interrupt R or not VsAppShell.Current.PostCommand(RGuidList.RCmdSetGuid, RPackageCommandId.icmdInterruptR); }