diff options
Diffstat (limited to 'Xamarin.Forms.Build.Tasks')
-rw-r--r-- | Xamarin.Forms.Build.Tasks/CreateObjectVisitor.cs | 17 | ||||
-rw-r--r-- | Xamarin.Forms.Build.Tasks/ExpandMarkupsVisitor.cs | 18 | ||||
-rw-r--r-- | Xamarin.Forms.Build.Tasks/SetFieldVisitor.cs | 18 | ||||
-rw-r--r-- | Xamarin.Forms.Build.Tasks/SetNamescopesAndRegisterNamesVisitor.cs | 18 | ||||
-rw-r--r-- | Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs | 17 | ||||
-rw-r--r-- | Xamarin.Forms.Build.Tasks/SetResourcesVisitor.cs | 22 |
6 files changed, 31 insertions, 79 deletions
diff --git a/Xamarin.Forms.Build.Tasks/CreateObjectVisitor.cs b/Xamarin.Forms.Build.Tasks/CreateObjectVisitor.cs index c684e512..b73926fd 100644 --- a/Xamarin.Forms.Build.Tasks/CreateObjectVisitor.cs +++ b/Xamarin.Forms.Build.Tasks/CreateObjectVisitor.cs @@ -21,20 +21,11 @@ namespace Xamarin.Forms.Build.Tasks ModuleDefinition Module { get; } - public bool VisitChildrenFirst - { - get { return true; } - } + public TreeVisitingMode VisitingMode => TreeVisitingMode.BottomUp; + public bool StopOnDataTemplate => true; + public bool StopOnResourceDictionary => false; + public bool VisitNodeOnDataTemplate => false; - public bool StopOnDataTemplate - { - get { return true; } - } - - public bool StopOnResourceDictionary - { - get { return false; } - } public void Visit(ValueNode node, INode parentNode) { diff --git a/Xamarin.Forms.Build.Tasks/ExpandMarkupsVisitor.cs b/Xamarin.Forms.Build.Tasks/ExpandMarkupsVisitor.cs index e647f6c2..ff83de7a 100644 --- a/Xamarin.Forms.Build.Tasks/ExpandMarkupsVisitor.cs +++ b/Xamarin.Forms.Build.Tasks/ExpandMarkupsVisitor.cs @@ -24,20 +24,10 @@ namespace Xamarin.Forms.Build.Tasks ILContext Context { get; } - public bool VisitChildrenFirst - { - get { return true; } - } - - public bool StopOnDataTemplate - { - get { return false; } - } - - public bool StopOnResourceDictionary - { - get { return false; } - } + public TreeVisitingMode VisitingMode => TreeVisitingMode.BottomUp; + public bool StopOnDataTemplate => false; + public bool StopOnResourceDictionary => false; + public bool VisitNodeOnDataTemplate => true; public void Visit(ValueNode node, INode parentNode) { diff --git a/Xamarin.Forms.Build.Tasks/SetFieldVisitor.cs b/Xamarin.Forms.Build.Tasks/SetFieldVisitor.cs index 1839cf7b..9a5b7444 100644 --- a/Xamarin.Forms.Build.Tasks/SetFieldVisitor.cs +++ b/Xamarin.Forms.Build.Tasks/SetFieldVisitor.cs @@ -13,20 +13,10 @@ namespace Xamarin.Forms.Build.Tasks public ILContext Context { get; } - public bool VisitChildrenFirst - { - get { return false; } - } - - public bool StopOnDataTemplate - { - get { return true; } - } - - public bool StopOnResourceDictionary - { - get { return false; } - } + public TreeVisitingMode VisitingMode => TreeVisitingMode.TopDown; + public bool StopOnDataTemplate => true; + public bool StopOnResourceDictionary => false; + public bool VisitNodeOnDataTemplate => false; public void Visit(ValueNode node, INode parentNode) { diff --git a/Xamarin.Forms.Build.Tasks/SetNamescopesAndRegisterNamesVisitor.cs b/Xamarin.Forms.Build.Tasks/SetNamescopesAndRegisterNamesVisitor.cs index d810bd80..1c776ab8 100644 --- a/Xamarin.Forms.Build.Tasks/SetNamescopesAndRegisterNamesVisitor.cs +++ b/Xamarin.Forms.Build.Tasks/SetNamescopesAndRegisterNamesVisitor.cs @@ -16,20 +16,10 @@ namespace Xamarin.Forms.Build.Tasks ILContext Context { get; } - public bool VisitChildrenFirst - { - get { return false; } - } - - public bool StopOnDataTemplate - { - get { return true; } - } - - public bool StopOnResourceDictionary - { - get { return false; } - } + public TreeVisitingMode VisitingMode => TreeVisitingMode.TopDown; + public bool StopOnDataTemplate => true; + public bool StopOnResourceDictionary => false; + public bool VisitNodeOnDataTemplate => false; public void Visit(ValueNode node, INode parentNode) { diff --git a/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs b/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs index c93c14f2..2c4ddbd6 100644 --- a/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs +++ b/Xamarin.Forms.Build.Tasks/SetPropertiesVisitor.cs @@ -37,8 +37,9 @@ namespace Xamarin.Forms.Build.Tasks public ILContext Context { get; } public bool StopOnResourceDictionary { get; } - public bool VisitChildrenFirst { get; } = true; - public bool StopOnDataTemplate { get; } = true; + public TreeVisitingMode VisitingMode => TreeVisitingMode.BottomUp; + public bool StopOnDataTemplate => true; + public bool VisitNodeOnDataTemplate => true; ModuleDefinition Module { get; } @@ -88,6 +89,11 @@ namespace Xamarin.Forms.Build.Tasks if ((propertyName != XmlName.Empty || TryGetPropertyName(node, parentNode, out propertyName)) && skips.Contains(propertyName)) return; + if (propertyName == XmlName._CreateContent) { + SetDataTemplate((IElementNode)parentNode, node, Context, node); + return; + } + //if this node is an IMarkupExtension, invoke ProvideValue() and replace the variable var vardef = Context.Variables[node]; var vardefref = new VariableDefinitionReference(vardef); @@ -114,11 +120,8 @@ namespace Xamarin.Forms.Build.Tasks return; if (parentNode is IElementNode && ((IElementNode)parentNode).SkipProperties.Contains (propertyName)) return; - - if (propertyName == XmlName._CreateContent) - SetDataTemplate((IElementNode)parentNode, node, Context, node); - else - Context.IL.Append(SetPropertyValue(Context.Variables[(IElementNode)parentNode], propertyName, node, Context, node)); + + Context.IL.Append(SetPropertyValue(Context.Variables[(IElementNode)parentNode], propertyName, node, Context, node)); } else if (IsCollectionItem(node, parentNode) && parentNode is IElementNode) { diff --git a/Xamarin.Forms.Build.Tasks/SetResourcesVisitor.cs b/Xamarin.Forms.Build.Tasks/SetResourcesVisitor.cs index f046efcb..c5be1fbd 100644 --- a/Xamarin.Forms.Build.Tasks/SetResourcesVisitor.cs +++ b/Xamarin.Forms.Build.Tasks/SetResourcesVisitor.cs @@ -1,6 +1,5 @@ using System; using System.Collections; -using System.Collections.Generic; using System.Linq; using Mono.Cecil; using Mono.Cecil.Cil; @@ -20,26 +19,15 @@ namespace Xamarin.Forms.Build.Tasks ModuleDefinition Module { get; } - public bool VisitChildrenFirst - { - get { return false; } - } - - public bool StopOnDataTemplate - { - get { return true; } - } - - public bool StopOnResourceDictionary - { - get { return false; } - } + public TreeVisitingMode VisitingMode => TreeVisitingMode.TopDown; + public bool StopOnDataTemplate => true; + public bool StopOnResourceDictionary => false; + public bool VisitNodeOnDataTemplate => false; public void Visit(ValueNode node, INode parentNode) { XmlName propertyName; - if (!SetPropertiesVisitor.TryGetPropertyName(node, parentNode, out propertyName)) - { + if (!SetPropertiesVisitor.TryGetPropertyName(node, parentNode, out propertyName)) { if (!IsCollectionItem(node, parentNode)) return; string contentProperty; |