コード例 #1
0
ファイル: SignatureHelpContext.cs プロジェクト: xoriath/RTVS
        /// <summary>
        /// Determines if current caret position is in the same function
        /// argument list as before or is it a different one and signature
        /// help session should be dismissed and re-triggered. This is helpful
        /// when user types nested function calls such as 'a(b(c(...), d(...)))'
        /// </summary>
        public static bool IsSameSignatureContext(ITextView textView, ITextBuffer subjectBuffer)
        {
            ISignatureHelpBroker signatureBroker = EditorShell.Current.ExportProvider.GetExportedValue <ISignatureHelpBroker>();
            var sessions = signatureBroker.GetSessions(textView);

            Debug.Assert(sessions.Count < 2);
            if (sessions.Count == 1)
            {
                IFunctionInfo sessionFunctionInfo = null;
                sessions[0].Properties.TryGetProperty <IFunctionInfo>("functionInfo", out sessionFunctionInfo);

                if (sessionFunctionInfo != null)
                {
                    try {
                        IREditorDocument document = REditorDocument.FromTextBuffer(textView.TextBuffer);
                        document.EditorTree.EnsureTreeReady();

                        ParameterInfo parametersInfo = SignatureHelp.GetParametersInfoFromBuffer(
                            document.EditorTree.AstRoot, subjectBuffer.CurrentSnapshot,
                            textView.Caret.Position.BufferPosition);

                        return(parametersInfo != null && parametersInfo.FunctionName == sessionFunctionInfo.Name);
                    } catch (Exception) { }
                }
            }

            return(false);
        }
コード例 #2
0
 public TemplateCompletionControllerProvider([Import(typeof(SVsServiceProvider))] IServiceProvider serviceProvider, ICompletionBroker completionBroker, IAsyncQuickInfoBroker quickInfoBroker, ISignatureHelpBroker signatureHelpBroker)
 {
     _completionBroker    = completionBroker;
     _quickInfoBroker     = quickInfoBroker;
     _signatureHelpBroker = signatureHelpBroker;
     _pyService           = (PythonToolsService)serviceProvider.GetService(typeof(PythonToolsService));
 }
コード例 #3
0
            public CommandFilter(IWpfTextView textView, ISignatureHelpBroker broker)
            {
                _currentSession = null;

                TextView = textView;
                Broker   = broker;
            }
コード例 #4
0
 internal XSharpSignatureHelpCommandHandler(IVsTextView textViewAdapter, ITextView textView, ISignatureHelpBroker broker)
 {
     this._textView        = textView;
     this._signatureBroker = broker;
     //add this to the filter chain
     textViewAdapter.AddCommandFilter(this, out m_nextCommandHandler);
 }
コード例 #5
0
        public CommandFilter(IVsTextView textViewAdapter, IWpfTextView textView, ITextStructureNavigator textNavigator, ISignatureHelpBroker signatureBroker)
        {
            textViewAdapter.AddCommandFilter(this, out _nextCommand);

            _textView        = textView;
            _textNavigator   = textNavigator;
            _signatureBroker = signatureBroker;
        }
コード例 #6
0
        public CompletionController(ITextView textView, ITextStructureNavigatorSelectorService navigatorService, ISignatureHelpBroker signatureHelpBroker)
        {
            _textView            = textView;
            _navigatorService    = navigatorService;
            _signatureHelpBroker = signatureHelpBroker;

            textView.TextBuffer.Properties.TryGetProperty(typeof(ITextDocument), out _document);
        }
コード例 #7
0
        public SignatureHelpCommand(IVsTextView textViewAdapter, ITextView textView, ITextStructureNavigator navigator, ISignatureHelpBroker broker)
        {
            this.textView  = textView;
            this.navigator = navigator;
            this.broker    = broker;

            textViewAdapter.AddCommandFilter(this, out nextCommand);
        }
コード例 #8
0
        public SparkSignatureHelpCommand(IVsTextView textViewAdapter, IWpfTextView textView, ITextStructureNavigator navigator, ISignatureHelpBroker broker)
        {
            _textView  = textView;
            _navigator = navigator;
            _broker    = broker;

            ChainTheNextCommand(textViewAdapter);
        }
コード例 #9
0
		internal KeyFilterFactory(
			ICompletionBroker completionBroker,
			ISignatureHelpBroker signatureHelpBroker,
			ISmartTagBroker smartTagBroker,
			IQuickInfoBroker quickInfoBroker)
		{
			_helperFactory = new DisplayWindowHelper(completionBroker, signatureHelpBroker, smartTagBroker, quickInfoBroker);
		}
コード例 #10
0
 public static void DismissSignatureSession(ITextView textView)
 {
     if (HasActiveSignatureSession(textView))
     {
         ISignatureHelpBroker broker = EditorShell.Current.ExportProvider.GetExportedValue <ISignatureHelpBroker>();
         broker.DismissAllSessions(textView);
     }
 }
コード例 #11
0
 internal KeyFilterFactory(
     ICompletionBroker completionBroker,
     ISignatureHelpBroker signatureHelpBroker,
     ILightBulbBroker smartTagBroker,
     IAsyncQuickInfoBroker quickInfoBroker)
 {
     _helperFactory = new DisplayWindowHelper(completionBroker, signatureHelpBroker, smartTagBroker, quickInfoBroker);
 }
コード例 #12
0
        public SignatureHelpSource(ITextBuffer textBuffer, SVsServiceProvider serviceProvider)
        {
            _textBuffer      = textBuffer;
            _serviceProvider = serviceProvider;

            _broker = _serviceProvider.GetService <ISignatureHelpBroker>();
            _dte    = _serviceProvider.GetService <DTE>();
        }
コード例 #13
0
 public SignatureHelpManager(ITextView textView, ISignatureHelpBroker signatureHelpBroker, SignatureHelpModelProviderService signatureHelpModelProviderService)
 {
     _textView = textView;
     _textView.Caret.PositionChanged += CaretOnPositionChanged;
     _textView.TextBuffer.PostChanged += TextBufferOnPostChanged;
     _signatureHelpBroker = signatureHelpBroker;
     _signatureHelpModelProviderService = signatureHelpModelProviderService;
 }
コード例 #14
0
 public static void DismissSignatureSession(ITextView textView, ICoreShell shell)
 {
     if (HasActiveSignatureSession(textView, shell))
     {
         ISignatureHelpBroker broker = shell.GetService <ISignatureHelpBroker>();
         broker.DismissAllSessions(textView);
     }
 }
コード例 #15
0
        internal AsmSignatureHelpCommandFilter(IVsTextView textViewAdapter, ITextView textView, ISignatureHelpBroker broker)
        {
            this._textView = textView ?? throw new ArgumentNullException(nameof(textView));
            this._broker   = broker ?? throw new ArgumentNullException(nameof(broker));

            //add this to the filter chain
            textViewAdapter.AddCommandFilter(this, out this._nextCommandHandler);
        }
コード例 #16
0
        public SparkSignatureHelpCommand(IVsTextView textViewAdapter, IWpfTextView textView, ITextStructureNavigator navigator, ISignatureHelpBroker broker)
        {
            _textView = textView;
            _navigator = navigator;
            _broker = broker;

            ChainTheNextCommand(textViewAdapter);
        }
コード例 #17
0
 public SignatureHelpManager(ITextView textView, ISignatureHelpBroker signatureHelpBroker, ISignatureHelpModelProviderService signatureHelpModelProviderService)
 {
     _textView = textView;
     _textView.Caret.PositionChanged   += CaretOnPositionChanged;
     _textView.TextBuffer.PostChanged  += TextBufferOnPostChanged;
     _signatureHelpBroker               = signatureHelpBroker;
     _signatureHelpModelProviderService = signatureHelpModelProviderService;
 }
コード例 #18
0
 public static void DismissSignatureSession(ITextView textView, ICoreShell shell)
 {
     if (HasActiveSignatureSession(textView, shell))
     {
         ISignatureHelpBroker broker = shell.ExportProvider.GetExportedValue <ISignatureHelpBroker>();
         broker.DismissAllSessions(textView);
     }
 }
コード例 #19
0
 internal ALanguageController(ITextView view, IQuickInfoBroker broker, ISignatureHelpBroker sh_broker)
 {
     m_view             = view;
     m_broker           = broker;
     m_sh_broker        = sh_broker;
     m_view.MouseHover += OnMouseHover;
     m_view.Closed     += OnViewClosed;
 }
コード例 #20
0
 internal DisplayWindowBrokerFactoryService(
     ICompletionBroker completionBroker,
     ISignatureHelpBroker signatureHelpBroker,
     IAsyncQuickInfoBroker quickInfoBroker)
 {
     _completionBroker    = completionBroker;
     _signatureHelpBroker = signatureHelpBroker;
     _quickInfoBroker     = quickInfoBroker;
 }
コード例 #21
0
 public SignatureHelpManager(ITextView textView, ISignatureHelpBroker signatureHelpBroker, SignatureHelpModelProviderService signatureHelpModelProviderService, VisualStudioSourceTextFactory sourceTextFactory)
 {
     _textView = textView;
     _textView.Caret.PositionChanged += CaretOnPositionChanged;
     _textView.TextBuffer.PostChanged += TextBufferOnPostChanged;
     _signatureHelpBroker = signatureHelpBroker;
     _signatureHelpModelProviderService = signatureHelpModelProviderService;
     _sourceTextFactory = sourceTextFactory;
 }
 public SignatureHelpPresenterSession(
     ISignatureHelpBroker sigHelpBroker,
     ITextView textView,
     ITextBuffer subjectBuffer)
 {
     _sigHelpBroker = sigHelpBroker;
     _textView      = textView;
     _subjectBuffer = subjectBuffer;
 }
コード例 #23
0
        internal StaDynSignatureHelpCommandHandler(IVsTextView textViewAdapter, ITextView textView, ITextStructureNavigator nav, ISignatureHelpBroker broker)
        {
            this.m_textView  = textView;
            this.m_broker    = broker;
            this.m_navigator = nav;

            //add this to the filter chain
            textViewAdapter.AddCommandFilter(this, out m_nextCommandHandler);
        }
コード例 #24
0
 public SignatureHelpPresenterSession(
     IThreadingContext threadingContext,
     ISignatureHelpBroker sigHelpBroker,
     ITextView textView
     ) : base(threadingContext)
 {
     _sigHelpBroker = sigHelpBroker;
     _textView      = textView;
 }
コード例 #25
0
        internal SignatureHelpCommandHandler(IVsTextView textViewAdapter, ITextView textView, ITextStructureNavigator nav, ISignatureHelpBroker broker)
        {
            _textView  = textView;
            _broker    = broker;
            _navigator = nav;

            // Add to the filter chain
            textViewAdapter.AddCommandFilter(this, out _nextCommandHandler);
        }
コード例 #26
0
ファイル: QuickInfoSource.cs プロジェクト: skrutsick/RTVS
        public QuickInfoSource(ITextBuffer subjectBuffer, IServiceContainer services)
        {
            _services            = services;
            _engine              = new RFunctionSignatureEngine(services);
            _signatureHelpBroker = services.GetService <ISignatureHelpBroker>();

            _subjectBuffer          = subjectBuffer;
            _subjectBuffer.Changed += OnTextBufferChanged;
        }
 public SignatureHelpPresenterSession(
     ISignatureHelpBroker sigHelpBroker,
     ITextView textView,
     ITextBuffer subjectBuffer)
 {
     _sigHelpBroker = sigHelpBroker;
     _textView = textView;
     _subjectBuffer = subjectBuffer;
 }
コード例 #28
0
 public TemplateCompletionController(
     PythonToolsService pyService,
     ITextView textView,
     IList<ITextBuffer> subjectBuffers,
     ICompletionBroker completionBroker,
     IQuickInfoBroker quickInfoBroker,
     ISignatureHelpBroker signatureBroker) :
     base(textView, subjectBuffers, completionBroker, quickInfoBroker, signatureBroker) {
     _pyService = pyService;
 }
コード例 #29
0
        private DisplayWindowHelper(
			ITextView view,
			ICompletionBroker completionBroker,
			ISignatureHelpBroker signatureHelpBroker,
			ISmartTagBroker smartTagBroker,
			IQuickInfoBroker quickInfoBroker)
            : this(completionBroker, signatureHelpBroker, smartTagBroker, quickInfoBroker)
        {
            this.TextView = view;
        }
コード例 #30
0
        internal EpochCompletionCommandHandler(IVsTextView textViewAdapter, ITextView textView, EpochCompletionHandlerProvider provider, ISignatureHelpBroker broker, ITextStructureNavigator nav)
        {
            this.m_textView  = textView;
            this.m_provider  = provider;
            this.m_navigator = nav;
            this.m_broker    = broker;

            //add the command to the command chain
            textViewAdapter.AddCommandFilter(this, out m_nextCommandHandler);
        }
コード例 #31
0
ファイル: QuickInfoController.cs プロジェクト: skrutsick/RTVS
        public QuickInfoController(ITextView textView, IList <ITextBuffer> subjectBuffers, IServiceContainer services)
        {
            _quickInfoBroker     = services.GetService <IQuickInfoBroker>();
            _signatureHelpBroker = services.GetService <ISignatureHelpBroker>();
            _textView            = textView;
            _subjectBuffers      = subjectBuffers;

            _textView.MouseHover          += OnViewMouseHover;
            _textView.TextBuffer.Changing += OnTextBufferChanging;
        }
コード例 #32
0
 private DisplayWindowHelper(
     ITextView view,
     ICompletionBroker completionBroker,
     ISignatureHelpBroker signatureHelpBroker,
     ISmartTagBroker smartTagBroker,
     IQuickInfoBroker quickInfoBroker)
     : this(completionBroker, signatureHelpBroker, smartTagBroker, quickInfoBroker)
 {
     TextView = view;
 }
コード例 #33
0
 public RSignatureHelpSource(ITextBuffer textBuffer, IServiceContainer services)
 {
     _disposeToken = DisposeToken.Create <RSignatureHelpSource>();
     _textBuffer   = textBuffer;
     _services     = services;
     _settings     = _services.GetService <IREditorSettings>();
     _broker       = _services.GetService <ISignatureHelpBroker>();
     _engine       = new RFunctionSignatureEngine(services);
     textBuffer.AddService(this);
 }
コード例 #34
0
 internal DisplayWindowHelper(
     ICompletionBroker completionBroker,
     ISignatureHelpBroker signatureHelpBroker,
     ISmartTagBroker smartTagBroker,
     IQuickInfoBroker quickInfoBroker)
 {
     _completionBroker    = completionBroker;
     _signatureHelpBroker = signatureHelpBroker;
     _smartTagBroker      = smartTagBroker;
     _quickInfoBroker     = quickInfoBroker;
 }
コード例 #35
0
 public TemplateCompletionController(
     PythonToolsService pyService,
     ITextView textView,
     IList <ITextBuffer> subjectBuffers,
     ICompletionBroker completionBroker,
     IAsyncQuickInfoBroker quickInfoBroker,
     ISignatureHelpBroker signatureBroker) :
     base(textView, subjectBuffers, completionBroker, quickInfoBroker, signatureBroker)
 {
     _pyService = pyService;
 }
コード例 #36
0
        public IntellisenseController(IPeekBroker peekBroker, ISignatureHelpBroker signatureHelpBroker, INavigationTokenService navigationService, ITextView textView)
        {
            _peekBroker          = peekBroker;
            _signatureHelpBroker = signatureHelpBroker;
            _textView            = textView;
            _navigationService   = navigationService;

            var asmType = _textView.TextSnapshot.GetAsmType();

            _signatureConfig = SignatureConfig.GetSignature(asmType);
        }
コード例 #37
0
        private RCompletionController(
            ITextView textView,
            IList<ITextBuffer> subjectBuffers,
            ICompletionBroker completionBroker,
            IQuickInfoBroker quickInfoBroker,
            ISignatureHelpBroker signatureBroker)
            : base(textView, subjectBuffers, completionBroker, quickInfoBroker, signatureBroker) {
            _textBuffer = subjectBuffers[0];

            ServiceManager.AddService<RCompletionController>(this, TextView);
        }
コード例 #38
0
 internal DisplayWindowBroker(
     ITextView textView,
     ICompletionBroker completionBroker,
     ISignatureHelpBroker signatureHelpBroker,
     IAsyncQuickInfoBroker quickInfoBroker)
 {
     _textView            = textView;
     _completionBroker    = completionBroker;
     _signatureHelpBroker = signatureHelpBroker;
     _quickInfoBroker     = quickInfoBroker;
 }
コード例 #39
0
        internal DisplayWindowHelper(
			ICompletionBroker completionBroker,
			ISignatureHelpBroker signatureHelpBroker,
			ISmartTagBroker smartTagBroker,
			IQuickInfoBroker quickInfoBroker)
        {
            _completionBroker = completionBroker;
            _signatureHelpBroker = signatureHelpBroker;
            _smartTagBroker = smartTagBroker;
            _quickInfoBroker = quickInfoBroker;
        }
コード例 #40
0
ファイル: DisplayWindowBroker.cs プロジェクト: rschatz/VsVim
 internal DisplayWindowBroker(
     ITextView textView,
     ICompletionBroker completionBroker,
     ISignatureHelpBroker signatureHelpBroker,
     ISmartTagBroker smartTagBroker,
     IQuickInfoBroker quickInfoBroker)
 {
     _textView = textView;
     _completionBroker = completionBroker;
     _signatureHelpBroker = signatureHelpBroker;
     _smartTagBroker = smartTagBroker;
     _quickInfoBroker = quickInfoBroker;
 }
コード例 #41
0
        protected CompletionController(
            ITextView textView,
            IList<ITextBuffer> subjectBuffers,
            ICompletionBroker completionBroker,
            IQuickInfoBroker quickInfoBroker,
            ISignatureHelpBroker signatureBroker) {
            TextView = textView;

            SubjectBuffers = subjectBuffers;
            CompletionBroker = completionBroker;
            QuickInfoBroker = quickInfoBroker;
            SignatureBroker = signatureBroker;
        }
コード例 #42
0
        public static RCompletionController Create(
            ITextView textView,
            IList<ITextBuffer> subjectBuffers,
            ICompletionBroker completionBroker,
            IQuickInfoBroker quickInfoBroker,
            ISignatureHelpBroker signatureBroker) {
            RCompletionController completionController = null;

            completionController = ServiceManager.GetService<RCompletionController>(textView);
            if (completionController == null) {
                completionController = new RCompletionController(textView, subjectBuffers, completionBroker, quickInfoBroker, signatureBroker);
            }

            return completionController;
        }
コード例 #43
0
        /// <summary>
        /// Determines if current caret position is in the same function
        /// argument list as before or is it a different one and signature 
        /// help session should be dismissed and re-triggered. This is helpful
        /// when user types nested function calls such as 'a(b(c(...), d(...)))'
        /// </summary>
        public static bool IsSameSignatureContext(ITextView textView, ITextBuffer subjectBuffer, ISignatureHelpBroker signatureBroker) {
            var sessions = signatureBroker.GetSessions(textView);
            Debug.Assert(sessions.Count < 2);
            if (sessions.Count == 1) {
                IFunctionInfo sessionFunctionInfo = null;
                sessions[0].Properties.TryGetProperty<IFunctionInfo>("functionInfo", out sessionFunctionInfo);

                if (sessionFunctionInfo != null) {
                    try {
                        IREditorDocument document = REditorDocument.FromTextBuffer(textView.TextBuffer);
                        document.EditorTree.EnsureTreeReady();

                        ParameterInfo parametersInfo = SignatureHelp.GetParametersInfoFromBuffer(
                            document.EditorTree.AstRoot, subjectBuffer.CurrentSnapshot,
                            textView.Caret.Position.BufferPosition);

                        return parametersInfo != null && parametersInfo.FunctionName == sessionFunctionInfo.Name;
                    } catch (Exception) { }
                }
            }

            return false;
        }
コード例 #44
0
 public TemplateCompletionControllerProvider([Import(typeof(SVsServiceProvider))]IServiceProvider serviceProvider, ICompletionBroker completionBroker, IQuickInfoBroker quickInfoBroker, ISignatureHelpBroker signatureHelpBroker) {
     _completionBroker = completionBroker;
     _quickInfoBroker = quickInfoBroker;
     _signatureHelpBroker = signatureHelpBroker;
     _pyService = (PythonToolsService)serviceProvider.GetService(typeof(PythonToolsService));
 }
コード例 #45
0
        public SignatureHelpCommand(IVsTextView textViewAdapter, ITextView textView, ITextStructureNavigator navigator, ISignatureHelpBroker broker)
        {
            this.textView = textView;
            this.navigator = navigator;
            this.broker = broker;

            textViewAdapter.AddCommandFilter(this, out nextCommand);
        }