SventoryMang
SventoryMang

Reputation: 10479

Is there a way to generate multiple files through one template/macro with Resharper?

When I write my APIs for applications I always follow a set pattern (who doesnt!?) that looks like this:

User (Folder/Namespace)
    User.cs
    UserDao.cs
    UserDaoFactory.cs
    UserService.cs
    UserServiceFactory.cs

I know Resharper has file templates which I already utilize, but it would be great if I didn't have to individually add each file which can get extremely tedious when you are working with upwards of 30 entities in an app. If you can't do this with resharper is there anyway to make some kind of macro with Visual Studio that will execute your resharper file templates?

Upvotes: 6

Views: 2192

Answers (3)

Rasmus
Rasmus

Reputation: 554

Looks like R# 8 added this feature

From the Resharper Help Page

Starting from ReSharper 8.0, each file template can add more than one file when it is applied. This > may be helpful for WPF, Web and other projects where related data can be saved in different files.

Here are a few things you need to know about multi-file templates:

  • A file template always include one main file, and, optionally, any number of secondary files. So as soon as you add a secondary file to any file template you get a multi-file template.
  • When adding a secondary file, you can reference any existing file template (Add file from existing template option). Note that if the referenced template has multiple files too, then only the main file of the referenced template will be added when you apply the template.
  • The set of parameters spans all files of a multi-file template. I.e., if you use the same parameter $PARAM$ in several files of a multi-file template, it will have the same value in all related files when the template is applied.
  • If a multi-file templates has editable parameters, the Hot Spot Session, which deploys when you apply this template, will guide you through all created files where the user input is required.

Upvotes: 2

skalinkin
skalinkin

Reputation: 1064

I would consider using .tt templates with ReSharper.

  1. create master file with ReSharper.
  2. using one or many tt files to auto generate dependent (.partial.cs) files with partial keyword in it.
  3. extend generated classes if needed.

Upvotes: 0

Jura Gorohovsky
Jura Gorohovsky

Reputation: 10148

  1. Create all these classes in a single file (create a file template containing the set of standard classes if you want to)
  2. Write your logic
  3. Press Shift+Alt+L to put focus on the file in Solution Explorer
  4. Press Ctrl+Shift+R to display Refactor this menu with a list of applicable refactorings.
  5. Select Move Types into Matching Files, complete the refactoring wizard, and watch the classes separating into individual files.
  6. To put all the newly created classes into a folder, select them in Solution Explorer, and again invoke Refactor this.
  7. This time, select Move to Folder.
  8. Specify the name of the new folder in the refactoring wizard, press Create this folder, and complete the wizard.

Upvotes: 6

Related Questions