void menuCommand_BeforeQueryStatus(object sender, EventArgs e)
        {
            OleMenuCommand menu   = (OleMenuCommand)sender;
            var            buffer = ProjectHelpers.GetCurentTextBuffer();

            menu.Visible = buffer != null && _supported.Contains(buffer.ContentType.DisplayName.ToUpperInvariant());
        }
        protected override bool Execute(uint commandId, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)
        {
            ITextBuffer       buffer = ProjectHelpers.GetCurentTextBuffer();
            CssEditorDocument doc    = new CssEditorDocument(buffer);

            StringBuilder sb = new StringBuilder(buffer.CurrentSnapshot.Length);

            sb.Append(buffer.CurrentSnapshot.GetText());

            EditorExtensionsPackage.DTE.UndoContext.Open("Remove Duplicate Properties");

            string result = RemoveDuplicateProperties(sb, doc);
            Span   span   = new Span(0, buffer.CurrentSnapshot.Length);

            buffer.Replace(span, result);

            var selection = EditorExtensionsPackage.DTE.ActiveDocument.Selection as TextSelection;

            selection.GotoLine(1);

            EditorExtensionsPackage.DTE.ExecuteCommand("Edit.FormatDocument");
            EditorExtensionsPackage.DTE.UndoContext.Close();

            return(true);
        }
예제 #3
0
        protected override bool Execute(uint commandId, uint nCmdexecopt, IntPtr pvaIn, IntPtr pvaOut)
        {
            ITextBuffer        buffer     = ProjectHelpers.GetCurentTextBuffer();
            CssEditorDocument  doc        = new CssEditorDocument(buffer);
            ICssSchemaInstance rootSchema = CssSchemaManager.SchemaManager.GetSchemaRoot(null);

            StringBuilder sb = new StringBuilder(buffer.CurrentSnapshot.Length);

            sb.Append(buffer.CurrentSnapshot.GetText());

            EditorExtensionsPackage.DTE.UndoContext.Open("Add Missing Vendor Specifics");

            string result = AddMissingVendorDeclarations(sb, doc, rootSchema);
            Span   span   = new Span(0, buffer.CurrentSnapshot.Length);

            buffer.Replace(span, result);

            var selection = EditorExtensionsPackage.DTE.ActiveDocument.Selection as TextSelection;

            selection.GotoLine(1);

            EditorExtensionsPackage.DTE.ExecuteCommand("Edit.FormatDocument");
            EditorExtensionsPackage.DTE.UndoContext.Close();

            return(true);
        }
        protected override bool IsEnabled()
        {
            var buffer = ProjectHelpers.GetCurentTextBuffer();

            if (buffer != null && _supported.Contains(buffer.ContentType.DisplayName.ToUpperInvariant()))
            {
                return(true);
            }

            return(false);
        }
        public void NavigateTo()
        {
            EditorExtensionsPackage.DTE.ItemOperations.OpenFile(_file);

            Dispatcher.CurrentDispatcher.BeginInvoke(new Action(() =>
            {
                var view       = ProjectHelpers.GetCurentTextView();
                var textBuffer = ProjectHelpers.GetCurentTextBuffer();
                var span       = new SnapshotSpan(textBuffer.CurrentSnapshot, _selector.Start, _selector.Length);
                var point      = new SnapshotPoint(textBuffer.CurrentSnapshot, _selector.Start + _selector.Length);

                view.ViewScroller.EnsureSpanVisible(span);
                view.Caret.MoveTo(point);
                view.Selection.Select(span, false);
            }), DispatcherPriority.ApplicationIdle, null);
        }