Exemplo n.º 1
0
        public async void VsTextViewCreated(IVsTextView textViewAdapter)
        {
            IWpfTextView view = AdaptersFactory.GetWpfTextView(textViewAdapter);

            if (!DocumentService.TryGetTextDocument(view.TextBuffer, out ITextDocument doc))
            {
                return;
            }

            string ext = Path.GetExtension(doc.FilePath);

            if (!FileExtensions.Contains(ext, StringComparer.OrdinalIgnoreCase))
            {
                return;
            }

            ITextBufferUndoManager undoManager = UndoProvider.GetTextBufferUndoManager(view.TextBuffer);
            NodeProcess            node        = view.Properties.GetOrCreateSingletonProperty(() => new NodeProcess());

            AddCommandFilter(textViewAdapter, new SortCommand(view, undoManager, node));
            AddCommandFilter(textViewAdapter, new ModeCommand());

            if (!node.IsReadyToExecute())
            {
                await Install(node);
            }
        }
Exemplo n.º 2
0
        public void VsTextViewCreated(IVsTextView textViewAdapter)
        {
            Telemetry.TrackOperation("FileOpened");
            IWpfTextView view = AdaptersFactory.GetWpfTextView(textViewAdapter);

            _buffer = view.TextBuffer;

            _buffer.Properties.GetOrCreateSingletonProperty(() => view);

            ITextBufferUndoManager undoManager = UndoProvider.GetTextBufferUndoManager(view.TextBuffer);

            AddCommandFilter(textViewAdapter, new FormatterCommand(view, undoManager));
            AddCommandFilter(textViewAdapter, new CompletionController(view, CompletionBroker, QuickInfoBroker));
            AddCommandFilter(textViewAdapter, new F1Help());
            AddCommandFilter(textViewAdapter, new NavigateToParent(_buffer));
            AddCommandFilter(textViewAdapter, new SignatureHelpCommand(view, SignatureHelpBroker, QuickInfoBroker));
            AddCommandFilter(textViewAdapter, new HideDefaultCommands());
            AddCommandFilter(textViewAdapter, new EnableSnippetsCommand(textViewAdapter, view, NavigatorService));

            if (textViewAdapter is IVsTextViewEx viewEx)
            {
                ErrorHandler.ThrowOnFailure(viewEx.PersistOutliningState());
            }

            if (DocumentService.TryGetTextDocument(_buffer, out ITextDocument document))
            {
                document.FileActionOccurred += DocumentSavedAsync;
            }

            view.Closed += OnViewClosed;
        }
Exemplo n.º 3
0
        public void VsTextViewCreated(IVsTextView textViewAdapter)
        {
            System.Diagnostics.Debug.Print("document create");

            var view = AdaptersFactory.GetWpfTextView(textViewAdapter);

            Debug.Assert(view != null);

            view.GotAggregateFocus  += view_GotAggregateFocus;
            view.Closed             += view_Closed;
            view.TextBuffer.Changed += TextBuffer_Changed;

            CompletionFilter = new Intellisense.CompletionCommandFilter(view, CompletionBroker);

            IOleCommandTarget next;

            textViewAdapter.AddCommandFilter(CompletionFilter, out next);
            CompletionFilter.Next = next;

            var filter = new EditorCommandFilter(view);

            textViewAdapter.AddCommandFilter(filter, out next);
            filter.Next = next;

            EditorReport.TextViewCreated(view);
        }
        // we need this because VS won't give us certain keyboard events as they're handled before our key processor.  These
        // include enter and tab both of which we want to complete.

        private void AttachKeyboardFilter()
        {
            if (_oldTarget == null)
            {
                ErrorHandler.ThrowOnFailure(AdaptersFactory.GetViewAdapter(_textView).AddCommandFilter(this, out _oldTarget));
            }
        }
Exemplo n.º 5
0
 private void DetachKeyboardFilter()
 {
     if (_oldTarget != null)
     {
         ErrorHandler.ThrowOnFailure(AdaptersFactory.GetViewAdapter(_textView).RemoveCommandFilter(this));
         _oldTarget = null;
     }
 }
 private void DetachKeyboardFilter()
 {
     if (_intelliSenseManager.NextCommandHandler != null)
     {
         ErrorHandler.ThrowOnFailure(AdaptersFactory.GetViewAdapter(_textView).RemoveCommandFilter(this));
         _intelliSenseManager.NextCommandHandler = null;
     }
 }
Exemplo n.º 7
0
        // we need this because VS won't give us certain keyboard events as they're handled before our key processor.  These
        // include enter and tab both of which we want to complete.

        internal void AttachKeyboardFilter()
        {
            if (_oldTarget == null)
            {
                var viewAdapter = AdaptersFactory.GetViewAdapter(_textView);
                if (viewAdapter != null)
                {
                    ErrorHandler.ThrowOnFailure(viewAdapter.AddCommandFilter(this, out _oldTarget));
                }
            }
        }
        // we need this because VS won't give us certain keyboard events as they're handled before our key processor.  These
        // include enter and tab both of which we want to complete.

        internal void AttachKeyboardFilter()
        {
            if (_intelliSenseManager.NextCommandHandler == null)
            {
                var viewAdapter = AdaptersFactory.GetViewAdapter(_textView);
                if (viewAdapter != null)
                {
                    IOleCommandTarget oldTarget;
                    ErrorHandler.ThrowOnFailure(viewAdapter.AddCommandFilter(this, out oldTarget));
                    _intelliSenseManager.NextCommandHandler = oldTarget;
                }
            }
        }
Exemplo n.º 9
0
        public IMouseProcessor GetAssociatedProcessor(IWpfTextView wpfTextView)
        {
            System.Windows.Threading.Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() =>
            {
                var view = AdaptersFactory.GetViewAdapter(wpfTextView);
                if (view != null)
                {
                    StandardCommandDispatcher.Register(view, wpfTextView, GetServices());
                }
            }));

            return(null);
        }
Exemplo n.º 10
0
        public void VsTextViewCreated(IVsTextView textViewAdapter)
        {
            IWpfTextView view = AdaptersFactory.GetWpfTextView(textViewAdapter);

            if (!DocumentService.TryGetTextDocument(view.TextBuffer, out ITextDocument doc))
            {
                return;
            }

            doc.FileActionOccurred += DocumentSaved;

            _node = view.Properties.GetOrCreateSingletonProperty(() => new NodeProcess());
        }
Exemplo n.º 11
0
        public void VsTextViewCreated(IVsTextView textViewAdapter)
        {
            IWpfTextView view = AdaptersFactory.GetWpfTextView(textViewAdapter);

            if (!DocumentService.TryGetTextDocument(view.TextBuffer, out ITextDocument doc))
            {
                return;
            }

            ITextBufferUndoManager undoManager = UndoProvider.GetTextBufferUndoManager(view.TextBuffer);

            var cmd = new PrettierCommand(view, undoManager, doc.Encoding, doc.FilePath);

            view.Properties.AddProperty("prettierCommand", cmd);

            AddCommandFilter(textViewAdapter, cmd);
        }
Exemplo n.º 12
0
        public async void VsTextViewCreated(IVsTextView textViewAdapter)
        {
            IWpfTextView view = AdaptersFactory.GetWpfTextView(textViewAdapter);

            if (!DocumentService.TryGetTextDocument(view.TextBuffer, out ITextDocument doc))
            {
                return;
            }

            ITextBufferUndoManager undoManager = UndoProvider.GetTextBufferUndoManager(view.TextBuffer);
            NodeProcess            node        = view.Properties.GetOrCreateSingletonProperty(() => new NodeProcess());

            AddCommandFilter(textViewAdapter, new PrettierCommand(view, undoManager, node, doc.Encoding, doc.FilePath));

            if (!node.IsReadyToExecute())
            {
                await Install(node);
            }
        }
Exemplo n.º 13
0
        public void VsTextViewCreated(IVsTextView textViewAdapter)
        {
            ITextView textView = AdaptersFactory.GetWpfTextView(textViewAdapter);

            _textBuffer = textView.TextBuffer;
            //NPLProjectNode project = ServiceProvider.GetService(typeof(CommonProjectNode)) as NPLProjectNode;
            //IServiceProvider serviceProvider = ServiceProvider as IServiceProvider;
            //IVsSolution sln = serviceProvider.GetService(typeof(SVsSolution)) as IVsSolution;
            //NPLProjectNode project = sln.GetLoadedProject().GetNPLProject();
            //if (!project.GetAnalyzer().HasMonitoredTextBuffer(textView.TextBuffer))
            //    project.GetAnalyzer().MonitorTextBuffer(textView.TextBuffer);

            //_analysisEntry = textView.TextBuffer.GetAnalysisAtCaret(ServiceProvider);
            //textView.Closed += TextView_Closed;
            IOleCommandTarget      next;
            NPLEditorCommandFilter commandFilter = new NPLEditorCommandFilter(textView, textViewAdapter, ServiceProvider);

            textViewAdapter.AddCommandFilter(commandFilter, out next);
            commandFilter.Next = next;
        }
Exemplo n.º 14
0
        // This will be triggered when a xml document is opened
        public void VsTextViewCreated(IVsTextView textViewAdapter)
        {
            // Set up the Completion handler for xml documents
            var view = AdaptersFactory.GetWpfTextView(textViewAdapter);

            var xmlLanguageService = (XmlLanguageService)ServiceProvider.GetService(typeof(XmlLanguageService));
            var quoteChar          = xmlLanguageService.XmlPrefs.AutoInsertAttributeQuotes;

            if (XmlFileIsRibbon(view))
            {
                PreLoadData();
            }

            var filter = new CommandFilter(view, CompletionBroker, quoteChar);

            IOleCommandTarget next;

            ErrorHandler.ThrowOnFailure(textViewAdapter.AddCommandFilter(filter, out next));
            filter.Next = next;
        }
Exemplo n.º 15
0
        public void VsTextViewCreated(IVsTextView textViewAdapter)
        {
            IWpfTextView view = AdaptersFactory.GetWpfTextView(textViewAdapter);

            _view = view;

            if (!DocumentService.TryGetTextDocument(view.TextBuffer, out ITextDocument doc))
            {
                return;
            }

            _project = VsHelpers.DTE.Solution.FindProjectItem(doc.FilePath)?.ContainingProject;

            if (!_project.SupportsCompilation())
            {
                return;
            }

            Settings.Changed += OnSettingsChanged;
            view.Closed      += OnViewClosed;

            Microsoft.VisualStudio.Shell.ThreadHelper.Generic.BeginInvoke(DispatcherPriority.ApplicationIdle, async() =>
            {
                bool isEnabled = _project.IsLessCompilationEnabled();

                LessAdornment adornment = view.Properties.GetOrCreateSingletonProperty(() => new LessAdornment(view, _project));

                if (isEnabled && await LessCatalog.EnsureCatalog(_project))
                {
                    CompilerOptions options = LessCatalog.Catalog[_project.UniqueName].LessFiles.Keys.FirstOrDefault(l => l.InputFilePath == doc.FilePath);

                    if (options != null)
                    {
                        await adornment.Update(options);
                    }
                }
            });

            doc.FileActionOccurred += DocumentSaved;
        }
Exemplo n.º 16
0
        public void VsTextViewCreated(IVsTextView textViewAdapter)
        {
            IWpfTextView view = AdaptersFactory.GetWpfTextView(textViewAdapter);

            if (!DocumentService.TryGetTextDocument(view.TextBuffer, out ITextDocument doc))
            {
                return;
            }

            ITextBufferUndoManager undoManager = UndoProvider.GetTextBufferUndoManager(view.TextBuffer);
            NodeProcess            node        = view.Properties.GetOrCreateSingletonProperty(() => new NodeProcess());

            var cmd = new PrettierCommand(view, undoManager, node, doc.Encoding, doc.FilePath);

            view.Properties.AddProperty("prettierCommand", cmd);

            AddCommandFilter(textViewAdapter, cmd);

            if (!node.IsReadyToExecute())
            {
                node.EnsurePackageInstalledAsync().ConfigureAwait(false);
            }
        }
 private void DetachKeyboardFilter()
 {
     ErrorHandler.ThrowOnFailure(AdaptersFactory.GetViewAdapter(_textView).RemoveCommandFilter(this));
 }