Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

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?

like image 503
SventoryMang Avatar asked Jan 13 '12 21:01

SventoryMang


People also ask

Can you have more than one template file?

You can create a multi-file item template in the same manner as you would a single-file item template.

What is macro template?

A macro is a recording of formatting changes and other steps that can be replayed quickly. A template is a pre-formatted spreadsheet with headers and formulas – awaiting your data.

How do I create a new template file?

To start a new document based on your template, on the File menu, click New from Template, and then select the template you want to use.

How do I import a template into Pycharm?

Import live template configuration Choose File | Manage IDE Settings | Import Settings from the menu. Specify the path to the archive with the exported live template configuration. In the Import Settings dialog, select the Live templates checkbox and click OK.


2 Answers

  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.
like image 187
Jura Gorohovsky Avatar answered Nov 02 '22 14:11

Jura Gorohovsky


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.
like image 26
Rasmus Avatar answered Nov 02 '22 14:11

Rasmus