// add latest include static S addStdClass() { loading { ret addStdClass(findLatestInclude().id, true); } } static S addStdClass(bool realEdit) { ret addStdClass(findLatestInclude().id, realEdit); } static S addStdClass(S snippetID, bool realEdit) { loading { snippetID = fsI(snippetID); LS tok = javaTokSnippet(snippetID); L names = map getClassDeclarationName(allClasses(tok)); addAll(names, keys(tok_findRewrites(tok))); printStructure("Classes defined in " + snippetID + ": ", names); if (empty(names)) ret "No classes found in " + snippetID; S name = first(names); S text = loadSnippet(#1003674); SS map = standardClassesMap_uncached(); S def = map.get(name); S result = ""; if (def == null) { print(result = "Defining " + name + "."); S newText = addToStdClassesList(text, name, snippetID); print(); print(unidiff(text, newText)); if (!realEdit) print(result += " Not editing (test mode)."); else { editSnippet(#1003674, newText); triggerTranspilerDirty(); print(result += " Edited #1003674. Now " + countLines(newText) + " lines - " + n2(l(map)+1, "total class", "total classes") + "!"); } } else { print(result = "Class " + name + " already defined as " + def); if (sameSnippetID(def, snippetID)) print("Exiting."); else print("Will not redefine as " + snippetID + "."); } ret result; } }