Dotnet logo

.NET Tools

Essential productivity kit for .NET and game developers

How-To's

Smart Paste in Rider

Today, I’d like to introduce you to Smart Paste, a "little big feature" in Rider (as well as in ReSharper). It ensures the right escaping in string literals that are copy/pasted. For example, consider pasting The "Name" field is required into var error = "". We would paste the string, then move to both " characters and escape them with \", making sure there are no syntax errors. Rider helps us out here with a quick-fix that can escape illegal characters for us!

Using Smart Paste to escape a string

Smart paste works in C#, VB.NET, JavaScript, XML, XAML and HTML files, and suggests escaping values upon paste.

Imagine how much time smart paste can save us in some cases! E.g. when copy/pasting a large snippet of XML or JSON that has quotes all over the place… Let’s try pasting some JSON data into a (verbatim) string:

Smart paste JSON verbatim string

Rider also detects other characters that may need escaping, for example newline characters. If we paste into a regular string, smart paste will escape quotes and also add \n characters:

Smart paste JSON string

Want to paste a file path? Rider has us covered there as well – it will make sure we are escaping the \ character:

Escape file path with smart paste

Smart paste really comes in handy when writing XML documentation. Rider will escape any characters that need special treatment in an XML context, for example generics, lambda syntax, logical operators, …

Smart paste code in XML doc comments

One more. Combine with the To LINQ to XML / To LINQ to JSON quick-fixes, we can paste XML or JSON string inside a string literal and then easily convert it into C# code. XML will be transformed to an XML object (using XElement, XAttribute, …). And when Newtonsoft.Json is referenced, we can transform our string into a JSON.NET object:

Convert string to JObject using Rider

Download the latest Rider EAP build and try it out! We’d love to hear your thoughts and feedback!

image description