private static void RecurseElements(CodeElements codeElements, List <Position> found, string name)
 {
     if (codeElements == null)
     {
         return;
     }
     foreach (var item in codeElements)
     {
         var element = item as CodeElement;
         if (element == null)
         {
             continue;
         }
         if (element.Kind == vsCMElement.vsCMElementFunction || element.Kind == vsCMElement.vsCMElementProperty)
         {
             var mname    = MethodNameReader.GetMethodStringFromElement(element);
             var fullname = element.FullName;
             found.Add(new Position(mname, fullname, name, element.StartPoint.Line));
         }
         if (element.Children != null)
         {
             RecurseElements(element.Children, found, name);
         }
     }
 }
Exemple #2
0
        private void analyzeElement(CodeElement elem)
        {
            _project = elem.ProjectItem.ContainingProject.FullName;
            if (elem.Kind == vsCMElement.vsCMElementNamespace)
            {
                _namespace = new[] { elem.FullName }
            }
            ;

            if (elem.Kind == vsCMElement.vsCMElementClass)
            {
                var cls = MethodNameReader.GetMethodStringFromElement(elem);
                _member = new[] { cls.Replace("/", "+") };
            }

            if (elem.Kind == vsCMElement.vsCMElementFunction)
            {
                var test = MethodNameReader.GetMethodStringFromElement(elem);
                test = test
                       .Replace("::", ".")
                       .Replace("/", "+");
                var parenthesis = test.IndexOf("(");
                if (parenthesis != -1)
                {
                    test = test.Substring(0, parenthesis);
                }
                var space = test.IndexOf(" ");
                if (space != -1)
                {
                    test = test.Substring(space + 1, test.Length - (space + 1));
                }
                _test = new[] { test };
            }
        }
Exemple #3
0
 public string Get()
 {
     try
     {
         var sel   = (TextSelection)_application.ActiveDocument.Selection;
         var point = (TextPoint)sel.ActivePoint;
         var fcm   = _application.ActiveDocument.ProjectItem.FileCodeModel;
         var elem  = fcm.CodeElementFromPoint(point, vsCMElement.vsCMElementFunction);
         return(MethodNameReader.GetMethodStringFromElement(elem));
     }
     catch (Exception ex)
     {
         Logger.Write(ex);
         return(null);
     }
 }
Exemple #4
0
 private string getFromCodeModel()
 {
     try
     {
         var sel   = (TextSelection)_application.ActiveDocument.Selection;
         var point = (TextPoint)sel.ActivePoint;
         var fcm   = _application.ActiveDocument.ProjectItem.FileCodeModel;
         var elem  = CodeElementFromPoint(fcm, point, vsCMElement.vsCMElementFunction);
         if (elem != null)
         {
             return(MethodNameReader.GetMethodStringFromElement(elem));
         }
         var elem1 = CodeElementFromPoint(fcm, point, vsCMElement.vsCMElementProperty);
         if (elem1 != null)
         {
             var property       = (CodeProperty)elem1;
             var setterContains = property.Setter != null && property.Setter.StartPoint != null &&
                                  property.Setter.StartPoint.LessThan(point) && property.Setter.EndPoint.GreaterThan(point);
             if (setterContains)
             {
                 return(MethodNameReader.GetMethodStringFromElement((CodeElement)property.Setter));
             }
             return(MethodNameReader.GetMethodStringFromElement((CodeElement)property.Getter));
         }
         var elem2 = CodeElementFromPoint(fcm, point, vsCMElement.vsCMElementVariable);
         if (elem2 != null)
         {
             return(MethodNameReader.GetMethodStringFromElement(elem2));
         }
         return(null);
     }
     catch (Exception ex)
     {
         AutoTest.Core.DebugLog.Debug.WriteException(ex);
         return(null);
     }
 }