private void GetDocumentation() { category = (string)Context.Items["commandcategory"]; name = (string)Context.Items["commandname"]; if (category != null && name != null) { KeyValuePair<ICommandProperties, CommandDocumentation> pair = Commands.Instance.GetCommandDocumentation(category, name); metadata = pair.Key; doc = pair.Value; } }
protected BaseCommand(MethodBase method, ICommandProperties properties) { this.Method = method; this.Properties = properties; }
public void DrawParameter(ICommandProperties command, IReadOnlyList <IParameterProperties> parameters) { this._sb.AppendLine("Usage:"); this._sb.Append(' ', IndentCell * 1).AppendLine($"Parameters of Commands <{command.Names[0]}>:"); foreach (var parameter in parameters) { if (parameter.IsResolveByEngine) { continue; } // content this._sb.Append(' ', IndentCell * 2); this._sb.Append(parameter.IsOptional ? "(optional)" : "(required)"); this._sb.Append(' '); this._sb.Append(parameter.Names[0]); this._sb.Append(" : "); if (parameter.IsArray) { this._sb.Append('['); // ReSharper disable once PossibleNullReferenceException this._sb.Append(parameter.ArrayElementType.Name); this._sb.Append(", ...]"); } else { this._sb.Append(parameter.ParameterInfo.ParameterType.Name); if (parameter.ParameterInfo.HasDefaultValue) { this._sb.Append(" = "); this._sb.Append(parameter.ParameterInfo.DefaultValue?.ToString() ?? "null"); } if (parameter.ParameterInfo.ParameterType.GetTypeInfo().IsEnum) { this._sb.Append(" ("); this._sb.Append(string.Join("|", Enum.GetNames(parameter.ParameterInfo.ParameterType))); this._sb.Append(")"); } } if (parameter.Names.Count > 1) { this._sb.Append(" "); this._sb.Append($"(Alias: {string.Join(" / ", parameter.Names.Skip(1))})"); } var cond = parameter.Conditions; if (cond.Count > 0) { this._sb.AppendLine().Append(' ', IndentCell * 3); this._sb.Append($" require( {string.Join(" , ", cond)} )"); } // desc this.AppendDescription(parameter); // end this._sb.AppendLine(); } this._outputer.WriteLine(OutputLevel.Usage, this._sb.ToString()); }