protected PropertySyntax CreateToolTipProperty(SyntaxNode node, string caption = null) { SyntaxTriviaList leadingTriviaList = node.CreateChildNodeIdentTrivia(); SyntaxTriviaList trailingTriviaList = SyntaxFactory.ParseTrailingTrivia("\r\n", 0); //get caption from control PropertyValueSyntax captionProperty = node.GetPropertyValue("Caption"); if (captionProperty != null) { string value = ALSyntaxHelper.DecodeString(captionProperty.ToString()); if (!String.IsNullOrWhiteSpace(value)) { caption = value; } } else if (String.IsNullOrWhiteSpace(caption)) { caption = node.GetNameStringValue(); } string toolTipValue = ""; switch (node.Kind.ConvertToLocalType()) { case ConvertedSyntaxKind.PageField: toolTipValue = PageFieldTooltip; break; case ConvertedSyntaxKind.PageAction: toolTipValue = PageActionTooltip; break; } if (toolTipValue.Contains("%1")) { toolTipValue = toolTipValue.Replace("%1", caption); } //try to convert from string to avoid issues with enum ids changed between AL compiler versions PropertyKind propertyKind; try { propertyKind = (PropertyKind)Enum.Parse(typeof(PropertyKind), "ToolTip", true); } catch (Exception) { propertyKind = PropertyKind.ToolTip; } return(SyntaxFactory.PropertyLiteral(propertyKind, toolTipValue) .WithLeadingTrivia(leadingTriviaList) .WithTrailingTrivia(trailingTriviaList)); }
public TableFieldTypeInformation(FieldSyntax fieldSyntax) : this(fieldSyntax.GetNameStringValue()) { PropertyValueSyntax propValue = fieldSyntax.GetPropertyValue("Caption"); if (propValue != null) { this.Caption = ALSyntaxHelper.DecodeString(propValue.ToString()); } this.DataType = fieldSyntax.Type.ToString(); }