sevaxx
sevaxx

Reputation: 681

Visual Studio add-on to tag code segments?

I wonder if there exists any add-on for VS that can substitute/tag some lines of code with a descriptive text of my choice ?

Ideally a function like the one below :

bool CreateReportFiles(LPCTSTR fn_neighbours, ULONG nItems, ULONG* items)

{

// Read from file

CFile cf_neighbours;

if (!cf_neighbours.Open(fn_neighbours, CFile::modeRead))

  return false;

cf.Read(items, sizeof(ULONG) * nItems);

cf.Close();




// Create reports

DoReport_1(items, nItems);

DoReport_2(items, nItems);

DoReport_3(items, nItems);

FinalizeReports();

}

...would look similar to this :

bool CreateReportFiles(LPCTSTR fn_neighbours, ULONG nItems, ULONG* items)

{

± Read from file

± Do the reports

}

The ± signs would expand / collapse the substituted lines.
Other workarounds also considered !
Thanks for your help !

Upvotes: 2

Views: 469

Answers (3)

The simplest solution, and the one I would advice you to use is creating functions ReadFile and CreateReports. This would be a better design, as well, and has the additional benefit of working in all possible IDEs and languages.

Upvotes: 1

avakar
avakar

Reputation: 32635

In addition to Ryan's answer, I should probably point out that this is possible in the language itself.

bool CreateReportFiles(LPCTSTR fn_neighbours, ULONG nItems, ULONG* items)
{
    ReadFromFile(fn_neighbours, nItems, items);
    CreateReports(items, nItems);
}

I personally prefer this to regions. It is also more straightforward to see that you're not returning any value from the function.

In Visual Studio, you can use F12 to jump to the function's definition.

Upvotes: 4

Ryan Brunner
Ryan Brunner

Reputation: 14851

The region functionality does pretty much precisely what you describe, and is built into Visual Studio.

The following will compress as you described:

bool CreateReportFiles(LPCTSTR fn_neighbours, ULONG nItems, ULONG* items)

{

#pragma region ReadFile
// Read from file

CFile cf_neighbours;

if (!cf_neighbours.Open(fn_neighbours, CFile::modeRead))

  return false;

cf.Read(items, sizeof(ULONG) * nItems);

cf.Close();

#pragma endregion ReadFile

#pragma region CreateReports

// Create reports

DoReport_1(items, nItems);

DoReport_2(items, nItems);

DoReport_3(items, nItems);

FinalizeReports();

#pragma endregion CreateReports
}

Upvotes: 5

Related Questions