Quantcast
Channel: Visual Studio Integrate forum
Viewing all articles
Browse latest Browse all 4410

Iterating functions with VCCodeFunction does not work.

$
0
0

I have the following class.

class Foo
{
public:
   Foo();
   ~Foo();
   void init();
};

I want to change the name of the class to "Bar". The below code does the job but it does not change the constructors and destructors because when I loop through the functions they will not be accessible in the cpp file only in the header file. How should one be able to change "Foo::Foo()" to "Bar::Bar()"?

codeModel = (VCCodeModel)project.CodeModel;
foreach (VCCodeNamespace ns in codeModel.Namespaces)
{
   if (ns.DisplayName == "X")
   {
      foreach (VCCodeClass c in ns.Classes)
      {
         string className = c.Name;
         c.Name = "Bar";
         foreach (VCCodeFunction function in c.Functions)
         {
            string file = function.File;
            EditPoint endPoint = function.EndPoint.CreateEditPoint();
            EditPoint startPoint = function.StartPoint.CreateEditPoint();
            string text = startPoint.GetText(endPoint);
            text = text.Replace(className , "Bar");             

              startPoint.ReplaceText((object)endPoint, text, (int)vsEPReplaceTextOptions.vsEPReplaceTextAutoformat);                                      
          } 
    }
}

The below code does the job of changing the name of the class but in my cpp file the functions


Viewing all articles
Browse latest Browse all 4410

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>