コード例 #1
0
        public int GetTextViewFilter(IVsIntellisenseHost pISenseHost, IOleCommandTarget pNextCmdTarget, out IVsTextViewFilter pTextViewFilter)
        {
            IVsTextLines buffer;

            ErrorHandler.ThrowOnFailure(bufferCoordinator.GetSecondaryBuffer(out buffer));
            bool doOutlining = LanguageService.Preferences.AutoOutlining;

            LanguageService.Preferences.AutoOutlining = false;
            PythonSource source = LanguageService.CreateSource(buffer) as PythonSource;

            LanguageService.Preferences.AutoOutlining = doOutlining;
            CodeWindowManager windowMgr = LanguageService.CreateCodeWindowManager(null, source);

            language.AddCodeWindowManager(windowMgr);
            TextViewWrapper view = new TextViewWrapper(languageHost, pISenseHost, bufferCoordinator, pNextCmdTarget);

            windowMgr.OnNewView(view);
            language.AddSpecialSource(source, view);
            pTextViewFilter = view.InstalledFilter;
            PythonViewFilter pythonFilter = pTextViewFilter as PythonViewFilter;

            if (null != pythonFilter)
            {
                pythonFilter.BufferCoordinator = this.bufferCoordinator;
            }
            return(VSConstants.S_OK);
        }
コード例 #2
0
        public override AuthoringScope ParseSource(ParseRequest req)
        {
            if (null == req)
            {
                throw new ArgumentNullException("req");
            }
            Debug.Print("ParseSource at ({0}:{1}), reason {2}", req.Line, req.Col, req.Reason);
            PythonSource source = null;

            if (specialSources.TryGetValue(req.View, out source) && (null != source.ScopeCreator))
            {
                return(source.ScopeCreator(req));
            }
            PythonSink sink = new PythonSink(req.Sink);

            return(new PythonScope(modules.AnalyzeModule(sink, req.FileName, req.Text), this));
        }
コード例 #3
0
 public void AddSpecialSource(PythonSource source, IVsTextView view)
 {
     specialSources.Add(view, source);
 }
コード例 #4
0
 public void AddSpecialSource(PythonSource source, IVsTextView view)
 {
     specialSources.Add(view, source);
 }