示例#1
0
        public static void TriggerSignatureHelp(ITextView textView)
        {
            CompletionController.DismissSignatureSession(textView);
            var rcc = RCompletionController.FromTextView(textView);

            rcc.TriggerSignatureHelp();
        }
示例#2
0
        /// <summary>
        /// Primary entry point for intellisense. This is where intellisense list is getting created.
        /// </summary>
        /// <param name="session">Completion session</param>
        /// <param name="completionSets">Completion sets to populate</param>
        public void AugmentCompletionSession(ICompletionSession session, IList <CompletionSet> completionSets)
        {
            _services.MainThread().Assert();

            var doc = _textBuffer.GetEditorDocument <IREditorDocument>();

            if (doc == null)
            {
                return;
            }

            var position = session.GetTriggerPoint(_textBuffer).GetPosition(_textBuffer.CurrentSnapshot);

            if (!doc.EditorTree.IsReady)
            {
                var textView = session.TextView;
                doc.EditorTree.InvokeWhenReady((o) => {
                    var controller = CompletionController.FromTextView <RCompletionController>(textView);
                    if (controller != null)
                    {
                        controller.ShowCompletion(autoShownCompletion: true);
                        controller.FilterCompletionSession();
                    }
                }, null, GetType(), processNow: true);
            }
            else
            {
                PopulateCompletionList(position, session, completionSets, doc.EditorTree.AstRoot);
            }
        }
示例#3
0
 public static void DismissSession(ITextView textView, bool retrigger = false)
 {
     CompletionController.DismissSignatureSession(textView);
     if (retrigger)
     {
         var rcc = RCompletionController.FromTextView(textView);
         rcc.TriggerSignatureHelp();
     }
 }
示例#4
0
        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();
        }
示例#5
0
        public void VsTextViewCreated(IVsTextView textViewAdapter)
        {
            IWpfTextView view = _adaptersFactory.GetWpfTextView(textViewAdapter);

            CompletionController completion = new CompletionController(view, _completionBroker);

            textViewAdapter.AddCommandFilter(completion, out IOleCommandTarget completionNext);
            completion.Next = completionNext;
        }
        public override CommandResult Invoke(Guid group, int id, object inputArg, ref object outputArg)
        {
            if (group == VSConstants.VSStd2K)
            {
                var controller = CompletionController.FromTextView <RCompletionController>(TextView);
                if (controller != null)
                {
                    if (id == (int)VSConstants.VSStd2KCmdID.RETURN)
                    {
                        return(HandleEnter(controller));
                    }

                    if (id == (int)VSConstants.VSStd2KCmdID.SCROLLUP)
                    {
                        return(HandleCtrlUp(controller));
                    }

                    if (id == (int)VSConstants.VSStd2KCmdID.CANCEL)
                    {
                        if (HandleCancel(controller))
                        {
                            return(CommandResult.Executed);
                        }
                    }
                }
            }
            else if (group == VSConstants.GUID_VSStandardCommandSet97)
            {
                if (id == (int)VSConstants.VSStd97CmdID.F1Help)
                {
                    var controller = CompletionController.FromTextView <RCompletionController>(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));
        }
        public void VsTextViewCreated(IVsTextView textViewAdapter)
        {
            IWpfTextView view = _adaptersFactory.GetWpfTextView(textViewAdapter);

            CompletionController completion = new CompletionController(view, _completionBroker);

            textViewAdapter.AddCommandFilter(completion, out IOleCommandTarget completionNext);
            completion.Next = completionNext;

            // Command Filter for GoToDefinition in .csproj files
            GotoDefinitionController gotoDefinition = GotoDefinitionController.CreateAndRegister(view, _workspaceManager, textViewAdapter);
        }
示例#8
0
        #pragma warning restore 0414

        public CompletionProvider(
            RoslynCompilationWorkspace compilationWorkspace,
            XCB.ScriptContext context,
            Func <string, SourceText> getSourceTextByModelId)
        {
            this.context = context
                           ?? throw new ArgumentNullException(nameof(context));

            this.getSourceTextByModelId = getSourceTextByModelId
                                          ?? throw new ArgumentNullException(nameof(getSourceTextByModelId));

            controller = new CompletionController(compilationWorkspace);

            providerTicket = context.GlobalObject.xiexports.monaco.RegisterWorkbookCompletionItemProvider(
                "csharp",
                (XCB.ScriptFunc)ProvideCompletionItems);
        }
 internal CompletionListWindow(ICompletionView w)
 {
     window     = w;
     controller = new CompletionController(this, w);
 }
示例#10
0
 public CompletionListWindow()
 {
     window     = new CompletionListWindowGtk();
     controller = new CompletionController(this, window);
 }
示例#11
0
        public IIntellisenseController TryCreateIntellisenseController(ITextView textView, IList <ITextBuffer> subjectBuffers)
        {
            var controller = CompletionController.FromTextView <RCompletionController>(textView);

            return(controller ?? new RCompletionController(textView, subjectBuffers, _shell.Services));
        }