public static string GetTree(ICommand com) { var strb = new TextModBuilder(); GetTree(com, strb, 0); return(strb.ToString()); }
private static void GetTree(ICommand com, TextModBuilder strb, int indent) { switch (com) { case CommandGroup group: strb.AppendFormat("<group>\n".Mod().Color(Color.Red)); foreach (var subCom in group.Commands) { strb.Append(new string(' ', (indent + 1) * 2)).Append(subCom.Key); GetTree(subCom.Value, strb, indent + 1); } break; case FunctionCommand _: strb.AppendFormat("<func>\n".Mod().Color(Color.Green)); break; case OverloadedFunctionCommand ofunc: strb.AppendFormat($"<overload({ofunc.Functions.Count})>\n".Mod().Color(Color.Blue)); break; case AliasCommand _: strb.AppendFormat($"<alias>\n".Mod().Color(Color.Yellow)); break; default: strb.AppendFormat("\n"); break; } }
public JsonArray <AudioResource> PropagiateSearch(UserSession session, CallerInfo callerInfo, string keyword) { var result = factory.Search(keyword); var list = result.UnwrapThrow(); session.Set(SessionConst.SearchResult, list); return(new JsonArray <AudioResource>(list, searchResults => { if (searchResults.Count == 0) { return strings.cmd_search_no_result; } var tmb = new TextModBuilder(callerInfo.IsColor); tmb.AppendFormat( strings.cmd_search_header.Mod().Bold(), ("!search play " + strings.info_number).Mod().Italic(), ("!search add " + strings.info_number).Mod().Italic()).Append("\n"); for (int i = 0; i < searchResults.Count; i++) { tmb.AppendFormat("{0}: {1}\n", i.ToString().Mod().Bold(), searchResults[i].ResourceTitle); } return tmb.ToString(); })); }