示例#1
0
        public static string GetText(this CodeFunction ele, vsCMPart part = vsCMPart.vsCMPartWholeWithAttributes)
        {
            var p = ele.GetStartPoint(part);

            if (p == null)
            {
                return("");
            }
            return(p.CreateEditPoint().GetText(ele.GetEndPoint(part)));
        }
示例#2
0
 /// <summary>
 /// GetStartPoint can throw NotImplementedException. This will retry the start point without explicit attribute
 /// </summary>
 /// <param name="ce"></param>
 /// <param name="part"></param>
 /// <returns></returns>
 public static EnvDTE.TextPoint GetSafeStartPoint(this CodeElement ce, vsCMPart part = vsCMPart.vsCMPartWholeWithAttributes)
 {
     try {
         return(ce.GetStartPoint(part));
     }
     catch (NotImplementedException) {
         //Catch random notimplementedException
         return(ce.GetStartPoint());
     }
 }
        private static string getText(CodeElement el, vsCMPart part)
        {
            if (!el.ProjectItem.IsOpen)
            {
                el.ProjectItem.Open();
            }

            var editPoint = el.GetStartPoint(part).CreateEditPoint();

            return(editPoint.GetText(el.EndPoint).Replace("\r", ""));
        }
示例#4
0
        /// <summary>
        /// Get EndPoint of specified element of parent object.
        /// </summary>
        public TextPoint GetEndPoint(vsCMPart part)
        {
            if (parentClass != null)
            {
                return(parentClass.GetEndPoint(part));
            }
            else
            if (parentStruct != null)
            {
                return(parentStruct.GetEndPoint(part));
            }

            return(null);
        }
示例#5
0
        public string GetMethodText(vsCMPart part)
        {
            TextPoint startPoint = m_method.GetStartPoint();
            int       endLine    = m_method.GetEndPoint().Line;

            m_textSelection.MoveToPoint(startPoint);
            StringBuilder sb    = new StringBuilder();
            int           count = 99999;

            while (count-- != 0 && m_textSelection.CurrentLine != endLine)
            {
                m_textSelection.SelectLine();
                sb.Append(m_textSelection.Text);
            }
            return(sb.ToString());
        }
示例#6
0
 public static string GetText(this CodeProperty2 prop, vsCMPart part = vsCMPart.vsCMPartWholeWithAttributes)
 {
     try {
         var p = prop.GetStartPoint(part);
         if (p == null)
         {
             return("");
         }
         return(p.CreateEditPoint().GetText(prop.GetEndPoint(part)));
     }
     catch (Exception ex) {
         if (ex is COMException || ex is NotImplementedException)
         {
             return("");
         }
         throw;
     }
 }
示例#7
0
        public static string GetText(this CodeClass2 cls, vsCMPart part = vsCMPart.vsCMPartWholeWithAttributes)
        {
            try {
                var startPoint = cls.GetStartPoint(part);
                if (startPoint == null)
                {
                    return("");
                }

                var endPoint = cls.GetEndPoint(part);

                return(endPoint == null ? "" : startPoint.CreateEditPoint().GetText(endPoint));
            }
            catch (NotImplementedException e) {
                //catch random errors when trying to get start / end point
                Console.WriteLine(e.ToString());
                return("");
            }
        }
示例#8
0
        public override TextPoint GetStartPoint(vsCMPart part)
        {
            TextPoint point  = null;
            var       member = CodeObject.UserData["Member"] as Nemerle.Compiler.Parsetree.MemberBase;

            if (member != null)
            {
                if (part == vsCMPart.vsCMPartBody && member.BodyLocation != null)
                {
                    point = new CodeDomTextPoint(GetTextDocument(), member.BodyLocation.Column, member.BodyLocation.Line);
                }
                else if (part == vsCMPart.vsCMPartNavigate && member.BodyLocation != null)
                {
                    point = GetNavigationPoint(member.BodyLocation);
                }
                else if (member.Location != null)
                {
                    point = new CodeDomTextPoint(GetTextDocument(), member.Location.Column, member.Location.Line);
                }
            }

            return((point != null) ? point : new NullTextPoint());
        }
 public abstract TextPoint GetStartPoint(vsCMPart Part);
 public abstract TextPoint GetStartPoint(vsCMPart Part);
示例#11
0
 public TextPoint GetEndPoint(vsCMPart Part)
 {
     return(_element.GetEndPoint(Part));
 }
 public override TextPoint GetStartPoint(vsCMPart Part)
 {
     return(StartPoint);
 }
 public override TextPoint GetEndPoint(vsCMPart Part)
 {
     return(EndPoint);
 }
 public override TextPoint GetStartPoint(vsCMPart Part)
 {
     throw new NotImplementedException();
 }
示例#15
0
 public TextPoint GetStartPoint(vsCMPart Part = vsCMPart.vsCMPartWholeWithAttributes)
 {
     return(this._codeElement.GetStartPoint(Part));
 }
示例#16
0
 /// <summary>
 /// Returns a <see cref="T:EnvDTE.TextPoint" /> object that marks the beginning 
 /// of the code element definition.
 /// </summary>
 /// <param name="part">Optional. A <see cref="T:EnvDTE.vsCMPart" /> constant specifying 
 /// the portion of the code to retrieve.</param>
 /// <returns>A <see cref="T:EnvDTE.TextPoint" /> object.</returns>
 public abstract TextPoint GetEndPoint(vsCMPart part);
示例#17
0
 public TextPoint GetStartPoint(vsCMPart Part)
 {
     throw new Exception("The method or operation is not implemented.");
 }
示例#18
0
 public TextPoint GetEndPoint(vsCMPart Part)
 {
     return _element.GetEndPoint(Part);
 }
示例#19
0
 /// <summary>
 /// Returns a <see cref="T:EnvDTE.TextPoint" /> object that marks the beginning 
 /// of the code element definition.
 /// </summary>
 /// <param name="part">Optional. A <see cref="T:EnvDTE.vsCMPart" /> constant specifying 
 /// the portion of the code to retrieve.</param>
 /// <returns>A <see cref="T:EnvDTE.TextPoint" /> object.</returns>
 public override TextPoint GetEndPoint(vsCMPart part)
 {
     return EndPoint;
 }
示例#20
0
 /// <summary>
 /// Returns a <see cref="T:EnvDTE.TextPoint" /> object that marks the end 
 /// of the code element definition.
 /// </summary>
 /// <param name="part">Optional. A <see cref="T:EnvDTE.vsCMPart" /> constant specifying 
 /// the portion of the code to retrieve.</param>
 /// <returns>A <see cref="T:EnvDTE.TextPoint" /> object.</returns>
 public override TextPoint GetStartPoint(vsCMPart part)
 {
     return StartPoint;
 }
 public TextPoint GetEndPoint(vsCMPart Part)
 {
     return null;
 }
 public override TextPoint GetStartPoint(vsCMPart Part)
 {
     throw new NotImplementedException();
 }
示例#23
0
 public TextPoint GetEndPoint(vsCMPart Part)
 {
     return(null);
 }
示例#24
0
 /// <summary>
 /// Returns a <see cref="T:EnvDTE.TextPoint" /> object that marks the beginning
 /// of the code element definition.
 /// </summary>
 /// <param name="part">Optional. A <see cref="T:EnvDTE.vsCMPart" /> constant specifying
 /// the portion of the code to retrieve.</param>
 /// <returns>A <see cref="T:EnvDTE.TextPoint" /> object.</returns>
 public abstract TextPoint GetEndPoint(vsCMPart part);