public static FieldGenerator Field(AccessModifier scope, FieldModifier modifier, Type type, string name)
        {
            var field = new FieldGenerator();

            field.scope        = scope;
            field.modifier     = modifier;
            field.type         = type;
            field.name         = name;
            field.defaultValue = HUMValue.Create().New(type);
            return(field);
        }
        public override string Generate(int indent)
        {
            if (string.IsNullOrEmpty(name))
            {
                return(string.Empty);
            }

            var _attributes = string.Empty;
            var count       = 0;

            foreach (AttributeGenerator attr in attributes)
            {
                _attributes += attr.Generate(indent) + ((count < attributes.Count - 1) ? "\n" : string.Empty);
            }

            var modSpace   = (modifier == FieldModifier.None) ? string.Empty : " ";
            var definition = CodeBuilder.Indent(indent) + scope.AsString().ConstructHighlight() + " " + modifier.AsString().ConstructHighlight() + modSpace + type.As().CSharpName() + " " + name.LegalMemberName();
            var output     = !isString && (defaultValue == null || defaultValue.Equals(HUMValue.Create().New(type))) ? ";" : " = " + (isString ? stringDefault : defaultValue.As().Code(true) + ";");

            return(_attributes + definition + output);
        }
 public static string InitializeVariable(string name, Type type)
 {
     return(!type.Is().NullOrVoid() ? type.As().CSharpName() + " " + CodeBuilder.Assign(name, HUMValue.Create().New(type).As().Code(false)) + "\n" : string.Empty);
 }