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; FoxProSource source = LanguageService.CreateSource(buffer) as FoxProSource; 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; FoxProViewFilter FoxProFilter = pTextViewFilter as FoxProViewFilter; if (null != FoxProFilter) { FoxProFilter.BufferCoordinator = this.bufferCoordinator; } return(VSConstants.S_OK); }
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); FoxProSource source = null; if (specialSources.TryGetValue(req.View, out source) && (null != source.ScopeCreator)) { return(source.ScopeCreator(req)); } FoxProSink sink = new FoxProSink(req.Sink); return(new FoxProScope(modules.AnalyzeModule(sink, req.FileName, req.Text), this)); }
public void AddSpecialSource(FoxProSource source, IVsTextView view) { specialSources.Add(view, source); }