Surround template for string interpolation in Jetbrains Rider

I dig string interpolation in C#. It is concise and easy to use. And even though JetBrains Rider is known for making developers super productive with all kinds of templates and shortcuts, there was one thing I've missed - the ability to surround a variable with string interpolation.

Live templates

Why not create such a template by yourself?
My problem was that I wanted to pass a stream name to the function but add some prefix to the stream beforehand.
My code looked like this:

eventStore.SaveEvents(streamName, events, eventMaxAge)

After the change, it should look like this:

eventStore.SaveEvents($"rev-{streamName}", events, eventMaxAge)

I've found string interpolation a perfect solution for this issue. But after doing it time and time again, I've got tired of doing it manually. I wanted an easy way to surround stream name with string interpolation.

Using surround template

Then I've recalled that Rider has an option to surround a variable with brackets, for example.
Let's create such a template for string interpolation!
Try this sequence: double press shift, type live template, press enter, and voila!
From this place, you can create a new template. The one I've created looks like this:


How to use it? Mark a variable you want to surround and press the shortcut set up for the "Surround with" command. In my case, it's ctrl+alt+j, but I've found my keyboard shortcuts relatively uncommon.


After applying it using enter or pressing one, it will wrap the variable in a string interpolation like so:


And that's what I need!

Templates are great for automating tedious typing. Who doesn't like IntelliSense tailored to their needs?