Config doc gen fix & markdown instead of yaml

This commit is contained in:
Norbi Peti 2019-04-10 13:48:47 +02:00
parent c8067257f9
commit 87189eb1ad
2 changed files with 30 additions and 16 deletions

View file

@ -12,6 +12,7 @@
<orderEntry type="inheritedJdk" /> <orderEntry type="inheritedJdk" />
<orderEntry type="sourceFolder" forTests="false" /> <orderEntry type="sourceFolder" forTests="false" />
<orderEntry type="module" module-name="ButtonCore (1) (com.github.TBMCPlugins.ButtonCore)" /> <orderEntry type="module" module-name="ButtonCore (1) (com.github.TBMCPlugins.ButtonCore)" />
<orderEntry type="module" module-name="ButtonCore (1) (com.github.TBMCPlugins.ButtonCore)" />
<orderEntry type="library" name="Maven: org.reflections:reflections:0.9.10" level="project" /> <orderEntry type="library" name="Maven: org.reflections:reflections:0.9.10" level="project" />
<orderEntry type="library" name="Maven: com.google.code.findbugs:annotations:2.0.1" level="project" /> <orderEntry type="library" name="Maven: com.google.code.findbugs:annotations:2.0.1" level="project" />
<orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" /> <orderEntry type="library" name="Maven: org.javassist:javassist:3.20.0-GA" level="project" />

View file

@ -1,7 +1,5 @@
package buttondevteam.buttonproc; package buttondevteam.buttonproc;
import org.bukkit.configuration.file.YamlConfiguration;
import javax.annotation.processing.ProcessingEnvironment; import javax.annotation.processing.ProcessingEnvironment;
import javax.lang.model.element.Element; import javax.lang.model.element.Element;
import javax.lang.model.element.ExecutableElement; import javax.lang.model.element.ExecutableElement;
@ -12,23 +10,24 @@ import javax.lang.model.type.TypeMirror;
import javax.tools.FileObject; import javax.tools.FileObject;
import javax.tools.StandardLocation; import javax.tools.StandardLocation;
import java.io.File; import java.io.File;
import java.io.FileWriter;
import java.io.IOException; import java.io.IOException;
public class ConfigProcessor { public class ConfigProcessor {
private final ProcessingEnvironment procEnv; private final ProcessingEnvironment procEnv;
private final YamlConfiguration yaml; private final FileWriter sw;
private final File file;
public ConfigProcessor(ProcessingEnvironment procEnv) { public ConfigProcessor(ProcessingEnvironment procEnv) {
this.procEnv = procEnv; this.procEnv = procEnv;
FileObject file = null; FileWriter sw = null;
try { try {
file = procEnv.getFiler().createResource(StandardLocation.CLASS_OUTPUT, "", "config.yml"); FileObject file = procEnv.getFiler().createResource(StandardLocation.CLASS_OUTPUT, "", "configHelp.md");
sw = new FileWriter(new File(file.toUri()));
System.out.println(file.toUri());
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
yaml = new YamlConfiguration(); this.sw = sw;
this.file = new File(file.toUri());
} }
public void process(Element targetcl) { public void process(Element targetcl) {
@ -43,23 +42,37 @@ public class ConfigProcessor {
TypeMirror tm = ((ExecutableElement) e).getReturnType(); TypeMirror tm = ((ExecutableElement) e).getReturnType();
if (tm.getKind() != TypeKind.DECLARED) continue; if (tm.getKind() != TypeKind.DECLARED) continue;
DeclaredType dt = (DeclaredType) tm; DeclaredType dt = (DeclaredType) tm;
if (!dt.asElement().getSimpleName().contentEquals("ConfigData")) return; if (!dt.asElement().getSimpleName().contentEquals("ConfigData"))
continue; //Ahhha! There was a return here! (MinecraftChatModule getListener())
System.out.println("Config: " + e.getSimpleName()); System.out.println("Config: " + e.getSimpleName());
System.out.println("Value: " + ((ExecutableElement) e).getDefaultValue());
String doc = procEnv.getElementUtils().getDocComment(e); String doc = procEnv.getElementUtils().getDocComment(e);
if (doc == null) continue; if (doc == null) continue;
System.out.println("DOC: " + doc); System.out.println("DOC: " + doc);
yaml.set(path + "." + e.getSimpleName() + "_doc", doc); //methodName_doc try {
sw.append(path).append(".").append(String.valueOf(e.getSimpleName())).append(System.lineSeparator()).append(System.lineSeparator());
sw.append(doc.trim()).append(System.lineSeparator()).append(System.lineSeparator());
} catch (IOException e1) {
e1.printStackTrace();
}
} }
String javadoc = procEnv.getElementUtils().getDocComment(targetcl); String javadoc = procEnv.getElementUtils().getDocComment(targetcl);
if (javadoc == null) return;
System.out.println("JAVADOC");
System.out.println(javadoc);
yaml.set(path + "._doc", javadoc);
try { try {
yaml.save(file); if (javadoc != null) {
System.out.println("JAVADOC");
System.out.println(javadoc.trim());
sw.append(path).append(System.lineSeparator()).append(System.lineSeparator());
sw.append(javadoc).append(System.lineSeparator()).append(System.lineSeparator());
}
sw.flush();
} catch (IOException e) { } catch (IOException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
@Override
protected void finalize() throws Throwable {
sw.close();
super.finalize();
}
} }