Release Notes v3.6.0

9th of October 2018

Introduction

This is a summary of the changes introduced in v3.6.0 of MFractor for Visual Studio Mac.

This release focuses on making MFractors XAML IntelliSense engine more awesome and adds several tools to make it easier to work with the linker.

Features

  • Our new product tip window will now show up once a week and show you something new about MFractor!
  • Debugging:
    • New Add Watch shortcut adds the variable under the cursor to the debug watch pad. This appears above the expression evaluator in the right click context menu.
  • Search:
    • All AutomationIDs that are declared in XAML now appear in the global search bar.
    • All static resources declared in XAML now appear in the global search bar.
  • XAML Analysis:
    • Unused ResourceDictionary resources are greyed out to let you know they aren't in use.
  • Linker:
    • IntelliSense support for linker configuration files.
    • New code action to add symbols to the linker.xml file for your ios and Android projects.

Enhancements

  • Visual Studio Mac 7.6 Support.
  • XAML IntelliSense:
    • View and layout auto-completion when inside a ControlTemplate
    • ViewCell suggestion when inside a DataTemplate
    • Suggest ControlTemplate and DataTemplate when editing resource dictionaries.
    • Suggest compatible StaticResources for property values.
    • Support for code completion inside XAML expressions.
    • When editing an xmlns, MFractor suggests all available assemblies and namespaces and generates the clr-namespace import.
    • When inside a style, trigger, or visual state, you can type the property name of the outer TargetType and MFractor will generate the full setter element.
    • When inside a {Binding ...} expression MFractor will suggest available properties for data-binding.
    • When inside a {StaticResource ...} expression MFractor will suggest available static resources.
    • Support for Visual State Management.
    • Support for x:Static expressions.
    • Support for the OnIdiom and OnPlatform markup extensions.
    • When editing an attribute that accepts an ImageSource, you can use the Select an image asset IntelliSense action to browse available images and choose the image you wish to use.
    • Support for FlexLayouts.
    • IntelliSense action for importing controls. Simply type out the full name of the control (with the optional namespace name) and choose Import MyControl from MyNamespace.Namespace.
    • Completion support for XAML element values such as Colors, images, booleans etc.
    • When creating an event callback, you can now type the fullname of the new event handler and generate it.
    • When create a XAML node such as a color or boolean, MFractor now suggests available values inline as the XAML node value.
    • Support for the CompressedLayout.IsHeadless attached property.
  • Static resource tooltips.
  • The image wizard now has an option to skip generating the MSBuild into the projects the new images are placed into. This option can be used for SDK style projects or image assets that are included with wildcards.
  • We've separated out long code snippets into their own pages to make our documentation easier to browse.
  • New Third Party Software Licenses attribution window under Help -> MFractor -> Third Party Software Licenses.
  • When editing an MFractor configuration file, we've introduced shortcuts to insert the configuration id and property values so that the files are easier to edit.
  • When you hover over a Xamarin.Forms.Thickness symbol in XAML, we've included some hints to help you remember the correct syntax.
  • We no longer use Xamarin.Forms for our user interfaces. This reduces the size of our package and makes MFractor faster and less buggy in general. We've rebuilt the following UIs:
    • Select image window.
    • Onboarding window.
    • Generate interface window.
  • When we can't resolve the binding context for a binding expression, we now nudge you towards our documentation so that you can learn how MFractor infers binding contexts.

Bug Fixes

  • Fixed: Syntax reduction does not work on new statements.
  • Fixed: .mfc.xml files aren't picked up when using nuget package references in SDK style projects.
  • Fixed: For manually issued trial licenses, MFractor failed to activate the Professional feature-set.
  • Fixed: Using OnPlatform or OnIdiom property setters inside a <ContentView.Content> does not suggest available controls.
  • Fixed: In Visual Studio Mac 7.5, generating C# code from would cause the C# file to reload and the changes to be lost.
  • Fixed: In Visual Studio Mac 7.5, MFractors C# code actions and analysers were no longer available.
  • Fixed: In Visual Studio Mac 7.5, image asset tooltips were broken and did not render.
  • Fixed: Remove the x:Class does not exist on root element code analyser as it added no value.
  • Fixed: Occasionally MFractor would start suggesting properties for an unclosed type in XAML.
  • Fixed: When declaring resources inside Application.Resources MFractor failed to index them into the resources database, resulting in many static resource analysis and completion errors. MFractor now correctly indexes these elements.
  • Fixed: MFractor failed to deduce the relationship to another resource dictionary when using the ResourceDictionary.Source attribute.
  • Fixed: MFractors XAML intellisense would sometimes fail when forcing the completion window to show for XAML nodes and attributes.
  • Fixed: MFractors XAML IntelliSense would sometimes clash with the in-built XAML editor.
  • Fixed: MFractors XAML IntelliSense would sometimes fail when the XAML file was within a shared project.
  • Fixed: When a XAML node has a BindingContext="{Binding MyProperty}" to specify the binding context, MFractor now correctly evaluates the binding expression when possible. This fixes several analysis and code completion bugs.
  • Fixed: When using the dark theme, our weekly tooltip window is now readable.
  • Fixed: Missing static resource analysis would occosionally fail.
  • Fixed: Binding context tooltips woudl occosional fail.
  • Fixed: Go to declaration for symbols resolve from a binding context would occasionally fail.
  • Fixed: MFractor failed to detect missing images when the XAMLs project was a shared project.
  • Fixed: When detecting a static field accesor assignment, EG: HorizontalOptions=Fill, MFractor wouldn't detect mispelling on the value when it included any non-alphanumerical characters.