MFractor 3.3: Introducing Code Snippets
Today Tom and I are excited to announce the release of MFractor v3.3 for Visual Studio for Mac!
This release is jammed packed with features; you can now customise the code MFractor creates using code snippets, generate interface implementations, create effects and easily localise C# and XAML.
Let's go through code snippets first.
Code snippets allow you to define templated code and then tell MFractor to use it for features like view model property or command generation.
Using code snippets, it's now possible to make MFractor generate code that is specific to your project.
So, how do you use your own code snippets in MFractor? Let's learn by customising the code generated when we generate a new view model property!
Firstly, add a file named
app.mfc.xml to the top level of your project; this is a project level MFractor configuration file.
Next, create a directory in your project named
Snippets, this is where we will place our customised snippets so they can be reused between developers.
Snippets folder, create a file named
ViewModelProperty.txt with the following content:
private $type$ _$name$ = $value$;
public $type$ $name$
SetProperty(ref _$name$, value);
We will use this snippet to change the behaviour of the
Snippet property of the
View Model Property code generator.
app.mfc.xml file, add the following xml code to apply your code snippet to the
View Model Property generator:
<?xml version="1.0" encoding="UTF-8" ?>
<property name="Snippet" source="file" value="Snippets/ViewModelProperty.txt"/>
Now when you generate a new property from a missing property binding, it'll create the new property using the code snippet you provided:
MFractor can also use code snippets defined within Visual Studio Macs code snippets editor. To learn more, check out the code snippets tutorial on our documentation.
So what else have we added?
The Extract XAML Control refactoring can take a chunk of XAML and refactor it into a standalone control that you can reuse throughout your app:
Do you need to create an implementation for an interface? Use the Generate Interface Implementation code action to quickly implement any interface:
With the localisation wizard you can now easily move C# string literals into a .resx file to quickly localise your app:
Lastly, use the Generate Effect code action to create a new platform-specific effect, right from your XAML:
In addition to all these shiny new features, you can expect a tonne of bug fixes, performance enhancements and better product stability. You can check out the full release notes here.
Interested in upgrading to MFractor Professional? Feel free to email email@example.com at any time to have a chat about how MFractor can make your Xamarin development easier.
Matt - Founder of MFractor