Beispiel #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);
        }
Beispiel #2
0
 public override ViewFilter CreateViewFilter(CodeWindowManager mgr, IVsTextView newView)
 {
     // This call makes sure debugging events can be received
     // by our view filter.
     base.GetIVsDebugger();
     return(new PythonViewFilter(mgr, newView));
 }
Beispiel #3
0
 /// <include file='doc\LanguageService.uex' path='docs/doc[@for="LanguageService.OnCaretMoved"]/*' />
 /// Переопределяем этот метод, чтобы вызвать SynchronizeDropdowns у
 /// NemerleTypeAndMemberDropdownBars, а не CodeWindowManager, а так же обновить
 /// информацию в Engine о активном файле и позиции в нем. Это требуется для ускорения
 /// типизации методов с которыми в данный момент взаимодействует пользователь.
 public override void OnCaretMoved(CodeWindowManager mgr, IVsTextView textView, int line, int col)
 {
     if (mgr.DropDownHelper != null)
     {
         var dropDownHelper = (NemerleTypeAndMemberDropdownBars)mgr.DropDownHelper;
         dropDownHelper.SynchronizeDropdownsRsdn(textView, line, col);
         UpdateViewInfo(textView, line, col);
     }
 }
        public EpochTextViewFilter(IVsDebugger debugger, CodeWindowManager mgr, IVsTextView textView, IWpfTextView wpfTextView)
            : base(mgr, textView)
        {
            ThreadHelper.ThrowIfNotOnUIThread();

            Debugger    = debugger;
            WpfTextView = wpfTextView;

            textView.GetBuffer(out TextLines);
        }
        internal CodeWindowManager GetOrCreateCodeWindowManager(IVsCodeWindow window)
        {
            CodeWindowManager value;

            if (!_codeWindowManagers.TryGetValue(window, out value))
            {
                _codeWindowManagers[window] = value = new CodeWindowManager(window, this.AsVsServiceProvider());
            }
            return(value);
        }
Beispiel #6
0
        internal CodeWindowManager GetOrCreateCodeWindowManager(IVsCodeWindow window)
        {
            CodeWindowManager value;

            if (!_codeWindowManagers.TryGetValue(window, out value))
            {
                _codeWindowManagers[window] = value = new CodeWindowManager(_container, window);
            }
            return(value);
        }
Beispiel #7
0
 void NavigateTo(XmlNodeInfo info)
 {
     try
     {
         this.currentDocument.Show();
         TextSpan          span = info.CurrentSpan;
         CodeWindowManager mgr  = this.currentDocument.Source.LanguageService.GetCodeWindowManagerForSource(this.currentDocument.Source);
         IVsTextView       view;
         mgr.CodeWindow.GetLastActiveView(out view);
         view.SetSelection(span.iStartLine, span.iStartIndex, span.iEndLine, span.iEndIndex);
         view.EnsureSpanVisible(span);
     }
     catch { }
 }
Beispiel #8
0
        /// <summary>
        /// Creates DAX Document Properties object, stores in private member and returns the reference to it.
        /// </summary>
        /// <param name="mgr"></param>
        /// <returns>Reference to DAX Document Properties.</returns>
        public override DocumentProperties CreateDocumentProperties(CodeWindowManager mgr)
        {
            DaxDocumentProperties daxDocumentProperties = new DaxDocumentProperties(mgr);

            // Initialize BismProvider for given Document/Source/CodeWindowManager
            Babel.Source babelSource = mgr.Source as Babel.Source;
            if (babelSource != null)
            {
                BismProvider = new BismInfoProvider(daxDocumentProperties);
                babelSource.BismInfoProvider = BismProvider;
            }

            return(daxDocumentProperties);
        }
Beispiel #9
0
 public int OnUserPreferencesChanged2(VIEWPREFERENCES2[] pViewPrefs, FRAMEPREFERENCES2[] pFramePrefs, LANGPREFERENCES2[] pLangPrefs, FONTCOLORPREFERENCES2[] pColorPrefs)
 {
     if (pLangPrefs != null)
     {
         _preferences.IndentStyle      = pLangPrefs[0].IndentStyle;
         _preferences.fAutoListMembers = pLangPrefs[0].fAutoListMembers;
         _preferences.fAutoListParams  = pLangPrefs[0].fAutoListParams;
         if (_preferences.fDropdownBar != (_preferences.fDropdownBar = pLangPrefs[0].fDropdownBar))
         {
             CodeWindowManager.ToggleNavigationBar(_preferences.fDropdownBar != 0);
         }
     }
     return(VSConstants.S_OK);
 }
Beispiel #10
0
 public int OnUserPreferencesChanged2(VIEWPREFERENCES2[] viewPrefs, FRAMEPREFERENCES2[] framePrefs, LANGPREFERENCES2[] langPrefs, FONTCOLORPREFERENCES2[] colorPrefs)
 {
     if (langPrefs != null && langPrefs.Length > 0 && langPrefs[0].guidLang == this._preferences.guidLang)
     {
         _preferences.IndentStyle                  = langPrefs[0].IndentStyle;
         _preferences.fAutoListMembers             = langPrefs[0].fAutoListMembers;
         _preferences.fAutoListParams              = langPrefs[0].fAutoListParams;
         _preferences.fHideAdvancedAutoListMembers = langPrefs[0].fHideAdvancedAutoListMembers;
         if (_preferences.fDropdownBar != (_preferences.fDropdownBar = langPrefs[0].fDropdownBar))
         {
             CodeWindowManager.ToggleNavigationBar(_preferences.fDropdownBar != 0);
         }
     }
     return(VSConstants.S_OK);
 }
 // После закрытия aspx файла исключим автосгенерированный исходник из списка компиляции проекта
 void OnDocumentClosing(EnvDTE.Document document)
 {
     if (Location.GetFileIndex(document.FullName) == Location.GetFileIndex(_filePath))
     {
         try
         {
             if (_windowManager != null)
             {
                 // RemoveAdornments вызывает уничтожение (close и dispose) view filter и source, связанных с _windowManager
                 _windowManager.RemoveAdornments();
             }
         }
         finally
         {
             _windowManager = null;
             _documentEvents.DocumentClosing -= _documentClosingEventHandler;
         }
     }
 }
Beispiel #12
0
        public int GetCodeWindowManager(IVsCodeWindow pCodeWin, out IVsCodeWindowManager ppCodeWinMgr)
        {
            ppCodeWinMgr = null;
            return(VSConstants.E_NOTIMPL);

            var model   = _serviceProvider.GetService(typeof(SComponentModel)) as IComponentModel;
            var service = model.GetService <IVsEditorAdaptersFactoryService>();

            IVsTextView textView;

            if (ErrorHandler.Succeeded(pCodeWin.GetPrimaryView(out textView)))
            {
                ppCodeWinMgr = new CodeWindowManager(_serviceProvider, pCodeWin, service.GetWpfTextView(textView));

                return(VSConstants.S_OK);
            }

            ppCodeWinMgr = null;
            return(VSConstants.E_FAIL);
        }
Beispiel #13
0
        }         // func CreateSource

        public override ViewFilter CreateViewFilter(CodeWindowManager mgr, IVsTextView newView)
        {
            return(new NeoLuaViewFilter(mgr, newView));
        }         // func CreateViewFilter
Beispiel #14
0
 public FoxProViewFilter(CodeWindowManager mgr, IVsTextView view)
     : base(mgr, view)
 {
 }
 public PythonViewFilter(CodeWindowManager mgr, IVsTextView view)
     : base(mgr, view)
 {
 }
Beispiel #16
0
 public override ViewFilter CreateViewFilter(CodeWindowManager mgr, IVsTextView newView)
 {
     return(new EpochTextViewFilter(base.GetIVsDebugger(), mgr, newView, AdapterService.GetWpfTextView(newView)));
 }
Beispiel #17
0
 public void RemoveCodeWindowManager(CodeWindowManager m);
Beispiel #18
0
 public SoalLanguageViewFilter(CodeWindowManager mgr, IVsTextView view)
     : base(mgr, view)
 {
 }
        public int GetTextViewFilter(IVsIntellisenseHost pISenseHost, IOleCommandTarget pNextCmdTarget, out IVsTextViewFilter pTextViewFilter)
        {
            pTextViewFilter = null;

            IVsTextLines buffer;

            ErrorHandler.ThrowOnFailure(bufferCoordinator.GetSecondaryBuffer(out buffer));

            var secondaryFilePath = FilePathUtilities.GetFilePath(buffer);

            if (secondaryFilePath == null)
            {
                secondaryFilePath = NemerleSource.GetStubFileForSecondaryBuffer(buffer);
            }

            var secondaryFileIndex = Location.GetFileIndex(secondaryFilePath);
            var primaryFileindex   = Location.GetFileIndex(_filePath);

            bool doOutlining = LanguageService.Preferences.AutoOutlining;

            LanguageService.Preferences.AutoOutlining = false;

            if (_projectInfo != null && LanguageService.GetSource(buffer) == null)
            {
                // создаем и регистрируем в проекте временный source, чтобы не сломалась логика
                // конструктора NemerleSource (см вызов LanguageService.AddEditableSource)
                //_projectInfo.ReplaseOrAddSource(new FileNemerleSource(secondaryFileIndex));
                _projectInfo.AddEditableSource((NemerleSource)LanguageService.CreateSource(buffer));
            }

            NemerleSource source = LanguageService.GetOrCreateSource(buffer) as NemerleSource;

            source.SetBufferCoordinator(bufferCoordinator);

            if (_projectInfo != null)
            {
                _projectInfo.Engine.RequestOnBuildTypesTree();
            }

            LanguageService.Preferences.AutoOutlining = doOutlining;

            _windowManager = LanguageService.CreateCodeWindowManager(null, source);

            language.AddCodeWindowManager(_windowManager);

            // увеличиваем внутренний счетчик openCount, для того чтобы впоследствии корректно отработала логика закрытия соурса
            source.Open();

            TextViewWrapper view = new TextViewWrapper(languageHost, pISenseHost, bufferCoordinator, pNextCmdTarget, source);

            _windowManager.OnNewView(view);

            pTextViewFilter = view.InstalledFilter;
            NemerleViewFilter nemerleFilter = pTextViewFilter as NemerleViewFilter;

            if (null != nemerleFilter)
            {
                nemerleFilter.BufferCoordinator = this.bufferCoordinator;
            }

            // сохраним значение DocumentEvents в переменной класса, чтобы исключить преждевременное уничтожение
            // объекта и автоматическоей отписывание от событий.
            //
            // Источник решения:
            // PRB: Visual Studio .NET events being disconnected from add-in (http://www.mztools.com/articles/2005/mz2005012.aspx)
            _documentEvents = _projectItem.DTE.Events.get_DocumentEvents(_projectItem.Document);

            _documentEvents.DocumentClosing += _documentClosingEventHandler;

            return(VSConstants.S_OK);
        }
Beispiel #20
0
 internal XSharpViewFilter(CodeWindowManager mgr, IVsTextView view) : base(mgr, view)
 {
 }
Beispiel #21
0
 public NemerleViewFilter(CodeWindowManager mgr, IVsTextView view)
     : base(mgr, view)
 {
 }
Beispiel #22
0
 public override ViewFilter CreateViewFilter(CodeWindowManager mgr, IVsTextView newView)
 {
     return(new NShaderViewFilter(this, mgr, newView));
 }
Beispiel #23
0
        public override CodeWindowManager CreateCodeWindowManager(IVsCodeWindow codeWindow, Source source)
        {
            CodeWindowManager m = base.CreateCodeWindowManager(codeWindow, source);

            return(m);
        }
 public DaxDocumentProperties(CodeWindowManager mgr)
     : base(mgr)
 {
 }
Beispiel #25
0
 public virtual void OnCaretMoved(CodeWindowManager mgr, IVsTextView textView, int line, int col);
Beispiel #26
0
 public MockFilter(CodeWindowManager windowManager, IVsTextView view)
     : base(windowManager, view)
 {
 }
Beispiel #27
0
 public IronyViewFilter(CodeWindowManager mgr, IVsTextView view)
     : base(mgr, view)
 {
 }
Beispiel #28
0
 public override ViewFilter CreateViewFilter(CodeWindowManager mgr,
                                             IVsTextView newView)
 {
     return(new CMakeViewFilter(mgr, newView));
 }
Beispiel #29
0
 public NeoLuaViewFilter(CodeWindowManager mgr, IVsTextView view)
     : base(mgr, view)
 {
 }         // ctor
Beispiel #30
0
 public NShaderViewFilter(NShaderLanguageService langService, CodeWindowManager mgr, IVsTextView view)
     : base(mgr, view)
 {
     this.langService = langService;
 }
Beispiel #31
0
 public void AddCodeWindowManager(CodeWindowManager m);
 public override ViewFilter CreateViewFilter(CodeWindowManager mgr, IVsTextView newView)
 {
     // still needed for snippets. Once that is moved to MEF then this can disappear
     return(new XSharpViewFilter(mgr, newView));
 }
Beispiel #33
0
 public virtual DocumentProperties CreateDocumentProperties(CodeWindowManager mgr);
Beispiel #34
0
 public virtual ViewFilter CreateViewFilter(CodeWindowManager mgr, IVsTextView newView);
Beispiel #35
0
 public void RemoveCodeWindowManager(CodeWindowManager m);