blob: 003bf3ed1a15eda463fdea2ef18f085f4a23f2e4 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
|
## javadoc
Either just let people run lombokc and javadoc that, -or-, use a doclet and presumptively cast our way into javadoc's AST.
## lombokc
To keep comments, try:
com.sun.tools.javac.main.JavaCompiler.instance(context).keepComments = true;
## netbeans agent plugin
module: java.source
class: org.netbeans.modules.java.source.parsing.JavacParser
to instrument:
class: JavacTaskImpl
method1: public JCBlock reparseMethodBody(CompilationUnitTree topLevel, MethodTree methodBody, String newText, int annonIndex) {}
method2: public Iterable<? extends CompilationUnitTree> parse();
in either case, returned value could be null/empty. CompilationUnitTree are MethodTree are superinterfaces of JCCU and JCMD.
problem: the agent stops receiving requests to transform classes early in the netbeans load process.
Possible work-around: Rewrite the entire JavacTaskImpl.class file on disk. It's in:
/NetBeans 6.7 RC3.app/Contents/Resources/NetBeans/java2/modules/ext/javac-impl-nb-7.0-b07.jar
Some work has been done in the addNetbeans branch.
## website
## javadoc
## screencasts
## installers
## hook into class file writing
on javac: com.sun.tools.javac.jvm.ClassWriter.writeClassFile(OutputStream out, ClassSymbol c) - hack the one line where out.write() is called.
|