Esempio n. 1
0
 public static Mock<IVsTextLineMarker> CreateVsTextLineMarker(
     TextSpan span,
     MARKERTYPE type,
     MockRepository factory = null)
 {
     return CreateVsTextLineMarker(span, (int)type, factory);
 }
 public static Mock <IVsTextLineMarker> CreateVsTextLineMarker(
     TextSpan span,
     MARKERTYPE type,
     MockRepository factory = null)
 {
     return(CreateVsTextLineMarker(span, (int)type, factory));
 }
        internal static ErrorTask CreateErrorTask(
            string document, string errorMessage, TextSpan textSpan, TaskErrorCategory taskErrorCategory, IVsHierarchy hierarchy,
            uint itemID, MARKERTYPE markerType)
        {
            ErrorTask errorTask = null;

            IOleServiceProvider oleSp = null;

            hierarchy.GetSite(out oleSp);
            IServiceProvider sp = new ServiceProvider(oleSp);

            // see if Document is open
            IVsTextLines buffer  = null;
            var          docData = VSHelpers.GetDocData(sp, document);

            if (docData != null)
            {
                buffer = VSHelpers.GetVsTextLinesFromDocData(docData);
            }

            if (buffer != null)
            {
                errorTask = new EFModelDocumentTask(sp, buffer, markerType, textSpan, document, itemID, errorMessage, hierarchy);
                errorTask.ErrorCategory = taskErrorCategory;
            }
            else
            {
                errorTask = new EFModelErrorTask(
                    document, errorMessage, textSpan.iStartLine, textSpan.iEndLine, taskErrorCategory, hierarchy, itemID);
            }

            return(errorTask);
        }
        internal static ErrorTask CreateErrorTask(
            string document, string errorMessage, TextSpan textSpan, TaskErrorCategory taskErrorCategory, IVsHierarchy hierarchy,
            uint itemID, MARKERTYPE markerType)
        {
            ErrorTask errorTask = null;

            IOleServiceProvider oleSp = null;
            hierarchy.GetSite(out oleSp);
            IServiceProvider sp = new ServiceProvider(oleSp);

            // see if Document is open
            IVsTextLines buffer = null;
            var docData = VSHelpers.GetDocData(sp, document);
            if (docData != null)
            {
                buffer = VSHelpers.GetVsTextLinesFromDocData(docData);
            }

            if (buffer != null)
            {
                errorTask = new EFModelDocumentTask(sp, buffer, markerType, textSpan, document, itemID, errorMessage, hierarchy);
                errorTask.ErrorCategory = taskErrorCategory;
            }
            else
            {
                errorTask = new EFModelErrorTask(
                    document, errorMessage, textSpan.iStartLine, textSpan.iEndLine, taskErrorCategory, hierarchy, itemID);
            }

            return errorTask;
        }
 protected XmlModelDocumentTask(
     IServiceProvider site, IVsTextLines buffer, MARKERTYPE markerType, TextSpan span, string document, uint itemID,
     string errorMessage, IVsHierarchy hierarchy)
     : base(site, buffer, markerType, span, document)
 {
     _serviceProvider = site;
     _itemID = itemID;
     Text = errorMessage;
     HierarchyItem = hierarchy;
 }
Esempio n. 6
0
 protected XmlModelDocumentTask(
     IServiceProvider site, IVsTextLines buffer, MARKERTYPE markerType, TextSpan span, string document, uint itemID,
     string errorMessage, IVsHierarchy hierarchy)
     : base(site, buffer, markerType, span, document)
 {
     _serviceProvider = site;
     _itemID          = itemID;
     Text             = errorMessage;
     HierarchyItem    = hierarchy;
 }
Esempio n. 7
0
 internal DocumentTask(IServiceProvider site, IVsTextLines buffer, MARKERTYPE markerType, TextSpan span, string fileName, string subcategory)
 {
     this.site        = site;
     this.fileName    = fileName;
     this.subcategory = subcategory;
     this.span        = span;
     this.Document    = this.fileName;
     this.Column      = span.iStartIndex;
     this.Line        = span.iStartLine;
     this.buffer      = buffer;
     this.markerType  = markerType;
 }
Esempio n. 8
0
        private long inner_IdentifiedWriteXml(XmlWriter writer)
        {
            MARKERTYPE type = m_Marker_ref.p_Type;

            switch (type)
            {
            case  MARKERTYPE.RECTANGLE:
                RectMarker rectMarker = (RectMarker)m_Marker_ref;
                rectMarker.WriteXml(writer);
                break;

            default:
                return(-2);
            }

            return(0);
        }
Esempio n. 9
0
        /// <include file='doc\DocumentTask.uex' path='docs/doc[@for="DocumentTask.DocumentTask"]/*' />
        public DocumentTask(IServiceProvider site, IVsTextLines buffer, MARKERTYPE markerType, TextSpan span, string fileName)
        {
            this.site     = site;
            this.fileName = fileName;
            this.span     = span;
            this.Document = this.fileName;
            this.Column   = span.iStartIndex;
            this.Line     = span.iStartLine;

            if (markerType != MARKERTYPE.MARKER_OTHER_ERROR)
            {
                // create marker so task item navigation works even after file is edited.
                IVsTextLineMarker[] marker = new IVsTextLineMarker[1];
                NativeMethods.ThrowOnFailure(buffer.CreateLineMarker((int)markerType, span.iStartLine, span.iStartIndex, span.iEndLine, span.iEndIndex, this, marker));
                this.textLineMarker = marker[0];
                this.markerValid    = true;
            }
        }
Esempio n. 10
0
        private void OnOpenFile(IVsTextLines textLines, bool refresh)
        {
            if (!isDeleted && marker == null && textLines != null)
            {
                Common.Trace("Task.OnOpenFile: " + location);
                const MARKERTYPE MARKER_COMPILE_WARNING = (MARKERTYPE)11;
                MARKERTYPE       mtype;
                switch (markerType)
                {
                case TaskMarker.CodeSense: mtype = MARKERTYPE.MARKER_CODESENSE_ERROR; break;

                case TaskMarker.Error: mtype = MARKERTYPE.MARKER_COMPILE_ERROR; break;

                case TaskMarker.Warning: mtype = MARKER_COMPILE_WARNING; break;

                case TaskMarker.Other: mtype = MARKERTYPE.MARKER_OTHER_ERROR; break;

                case TaskMarker.Invisible: mtype = MARKERTYPE.MARKER_INVISIBLE; break;

                default:
                    if ((int)markerType < (int)MARKERTYPE.DEF_MARKER_COUNT)
                    {
                        mtype = (MARKERTYPE)markerType;
                    }
                    else
                    {
                        mtype = MARKERTYPE.MARKER_INVISIBLE;
                    } break;                                            // still create a marker to track position changes
                }
                IVsTextLineMarker[] markers = new IVsTextLineMarker[1];
                TextSpan            ts      = location.TextSpan;
                IVsTextMarkerClient client  = (taskManager.TrackMarkerEvents ? this : null);

                textLines.CreateLineMarker((int)mtype
                                           , ts.iStartLine, ts.iStartIndex, ts.iEndLine, ts.iEndIndex
                                           , client, markers);
                marker = markers[0];
                if (marker == null)
                {
                    Common.Trace("Task: failed to create marker at " + location);
                }
            }
        }
Esempio n. 11
0
        // <summary>
        //     This method will log errors to the "Wizard" Multi-doc error list.
        // </summary>
        private static void LogWizardErrors(IEnumerable <EdmSchemaError> errors, ProjectItem projectItem, MARKERTYPE markerType)
        {
            if (null == errors)
            {
                throw new ArgumentNullException("errors");
            }

            if (null == projectItem)
            {
                throw new ArgumentNullException("projectItem");
            }

            if (PackageManager.Package != null)
            {
                var hierarchy = VsUtils.GetVsHierarchy(projectItem.ContainingProject, Services.ServiceProvider);
                var itemId    = VsUtils.GetProjectItemId(hierarchy, projectItem);
                var errorList = WizardErrorList;

                var errorCount = 0;

                foreach (var error in errors)
                {
                    // only display the first 100 errors.  VS gets really slow if you try to display more
                    if (errorCount++ > 99)
                    {
                        break;
                    }

                    var category = TaskErrorCategory.Message;
                    if (error.Severity == EdmSchemaErrorSeverity.Error)
                    {
                        category = TaskErrorCategory.Error;
                    }
                    else if (error.Severity == EdmSchemaErrorSeverity.Warning)
                    {
                        category = TaskErrorCategory.Message;
                    }

                    string filePath         = null;
                    var    fullPathProperty = projectItem.Properties.Item("FullPath");
                    if (fullPathProperty != null)
                    {
                        filePath = fullPathProperty.Value as String;
                    }
                    if (filePath == null)
                    {
                        filePath = projectItem.Name;
                    }

                    var textSpan = new TextSpan();
                    textSpan.iStartLine  = error.Line;
                    textSpan.iStartIndex = error.Column;
                    textSpan.iEndLine    = error.Line + 1;
                    textSpan.iEndIndex   = error.Column + 1;
                    errorList.AddItem(
                        EFModelErrorTaskFactory.CreateErrorTask(filePath, error.Message, textSpan, category, hierarchy, itemId, markerType));
                }
            }
        }
Esempio n. 12
0
 ErrorTask CreateErrorTask(BuildEventArgs errorEvent, TextSpan span, string file, MARKERTYPE marker, TaskErrorCategory category, IVsTextLines buffer)
 {
     if (buffer != null)
     {
         return(new DocumentTask(serviceProvider, buffer, marker, span, file));
     }
     else
     {
         return(new ErrorTask());
     }
 }
Esempio n. 13
0
        // helper methods.
        public DocumentTask CreateErrorTaskItem(TextSpan span, string filename, string subcategory, string message, TaskPriority priority, TaskCategory category, MARKERTYPE markerType, TaskErrorCategory errorCategory)
        {
            // create task item

            //TODO this src obj may not be the one matching filename.
            //find the src for the filename only then call ValidSpan.
            //Debug.Assert(TextSpanHelper.ValidSpan(this, span)); 

            DocumentTask taskItem = new DocumentTask(this.service.Site, this.textLines, markerType, span, filename, subcategory);
            taskItem.Priority = priority;
            taskItem.Category = category;
            taskItem.ErrorCategory = errorCategory;
            message = NewlineifyErrorString(message);
            taskItem.Text = message;
            taskItem.IsTextEditable = false;
            taskItem.IsCheckedEditable = false;
            return taskItem;
        }
Esempio n. 14
0
    public static IVsTextLineMarker CreateMarker( IVsTextLines textLines, TextSpan span, MARKERTYPE mt, string tipText) {

      IVsTextLineMarker marker = null;    
      TextMarkerClient textMarkerClient = new TextMarkerClient( tipText );
      textLines.CreateLineMarker((int)mt, span.iStartLine, span.iStartIndex, 
        span.iEndLine, span.iEndIndex, textMarkerClient, out marker);
      return marker;
    }
Esempio n. 15
0
        public static IVsTextLineMarker CreateMarker(IVsTextLines textLines, TextSpan span, MARKERTYPE mt, string tipText)
        {
            IVsTextLineMarker marker           = null;
            TextMarkerClient  textMarkerClient = new TextMarkerClient(tipText);

            textLines.CreateLineMarker((int)mt, span.iStartLine, span.iStartIndex,
                                       span.iEndLine, span.iEndIndex, textMarkerClient, out marker);
            return(marker);
        }
Esempio n. 16
0
        // helper methods.
        /// <include file='doc\Source.uex' path='docs/doc[@for="Source.CreateErrorTaskItem"]/*' />
        public virtual DocumentTask CreateErrorTaskItem(TextSpan span, string filename, string message, TaskPriority priority, TaskCategory category, MARKERTYPE markerType, TaskErrorCategory errorCategory)
        {
            // create task item

            //TODO this src obj may not be the one matching filename.
            //find the src for the filename only then call ValidSpan.
            //Debug.Assert(TextSpanHelper.ValidSpan(this, span));

            DocumentTask taskItem = CreateErrorTaskItem(span, markerType, filename);
            taskItem.Priority = priority;
            taskItem.Category = category;
            taskItem.ErrorCategory = errorCategory;
            taskItem.Text = message;
            taskItem.IsTextEditable = false;
            taskItem.IsCheckedEditable = false;
            return taskItem;
        }
Esempio n. 17
0
 ErrorTask CreateErrorTask(BuildEventArgs errorEvent, TextSpan span, string file, MARKERTYPE marker, TaskErrorCategory category, IVsTextLines buffer)
 {
     if(buffer != null)
         return new DocumentTask(serviceProvider, buffer, marker, span, file);
     else
         return new ErrorTask();
 }
Esempio n. 18
0
 internal EFModelDocumentTask(
     IServiceProvider site, IVsTextLines buffer, MARKERTYPE markerType, TextSpan span, string document, uint itemID,
     string errorMessage, IVsHierarchy hierarchy)
     : base(site, buffer, markerType, span, document, itemID, errorMessage, hierarchy)
 {
 }
Esempio n. 19
0
        public static IVsTextLineMarker CreateMarker(IVsTextLines textLines, TextSpan span, MARKERTYPE mt, string tipText)
        {
            IVsTextLineMarker[] marker           = new IVsTextLineMarker[1];
            TextMarkerClient    textMarkerClient = new TextMarkerClient(tipText);

            // bugbug: the following comment in the method CEnumMarkers::Initialize() of
            // ~\env\msenv\textmgr\markers.cpp means that tool tips on empty spans
            // don't work:
            //      "VS7 #23719/#15312 [CFlaat]: exclude adjacent markers when the target span is non-empty"
            // So I wonder if we should debug assert on that or try and modify the span
            // in some way to make it non-empty...
            NativeMethods.ThrowOnFailure(textLines.CreateLineMarker((int)mt, span.iStartLine, span.iStartIndex, span.iEndLine, span.iEndIndex, textMarkerClient, marker));
            return(marker[0]);
        }
Esempio n. 20
0
 /// <include file='doc\Source.uex' path='docs/doc[@for="Source.CreateErrorTaskItem2"]/*' />
 public virtual DocumentTask CreateErrorTaskItem(TextSpan span, MARKERTYPE markerType, string filename)
 {
     return new DocumentTask(this.service.Site, this.textLines, markerType, span, filename);
 }