3232import com .intellij .openapi .fileEditor .FileDocumentManager ;
3333import com .intellij .openapi .module .Module ;
3434import com .intellij .openapi .module .ModuleUtil ;
35+ import com .intellij .openapi .options .Configurable ;
36+ import com .intellij .openapi .options .ConfigurationException ;
3537import com .intellij .openapi .project .Project ;
3638import com .intellij .openapi .roots .CompilerModuleExtension ;
3739import com .intellij .openapi .util .Computable ;
40+ import com .intellij .openapi .util .IconLoader ;
3841import com .intellij .openapi .vfs .VirtualFile ;
3942import com .intellij .openapi .wm .ToolWindowManager ;
4043import com .intellij .psi .*;
4144import com .intellij .psi .codeStyle .CodeStyleManager ;
45+ import org .jetbrains .annotations .Nls ;
4246import org .objectweb .asm .Attribute ;
4347import org .objectweb .asm .ClassReader ;
4448import org .objectweb .asm .ClassVisitor ;
49+ import org .objectweb .asm .idea .config .ASMPluginComponent ;
50+ import org .objectweb .asm .idea .config .ASMPluginConfiguration ;
4551import org .objectweb .asm .util .ASMifierClassVisitor ;
4652import org .objectweb .asm .util .TraceClassVisitor ;
4753
54+ import javax .swing .*;
4855import java .io .IOException ;
4956import java .io .PrintWriter ;
5057import java .io .StringWriter ;
@@ -200,15 +207,22 @@ public void run() {
200207 } catch (IOException e ) {
201208 return ;
202209 }
203- reader .accept (visitor , new Attribute [0 ], 0 );
210+ int flags = 0 ;
211+ final ASMPluginComponent config = project .getComponent (ASMPluginComponent .class );
212+ if (config .isSkipDebug ()) flags = flags | ClassReader .SKIP_DEBUG ;
213+ if (config .isSkipFrames ()) flags = flags | ClassReader .SKIP_FRAMES ;
214+ if (config .isSkipCode ()) flags = flags | ClassReader .EXPAND_FRAMES ;
215+ if (config .isSkipCode ()) flags = flags | ClassReader .SKIP_CODE ;
216+
217+ reader .accept (visitor , flags );
204218 BytecodeOutline .getInstance (project ).setCode (file ,stringWriter .toString ());
205219 stringWriter .getBuffer ().setLength (0 );
206220 visitor = new GroovifiedTraceVisitor (new PrintWriter (stringWriter ));
207- reader .accept (visitor , 0 );
221+ reader .accept (visitor , ClassReader . SKIP_FRAMES | ClassReader . SKIP_DEBUG );
208222 GroovifiedView .getInstance (project ).setCode (file ,stringWriter .toString ());
209223 stringWriter .getBuffer ().setLength (0 );
210224 visitor = new ASMifierClassVisitor (new PrintWriter (stringWriter ));
211- reader .accept (visitor , ClassReader . SKIP_FRAMES | ClassReader . SKIP_DEBUG | ClassReader . SKIP_CODE );
225+ reader .accept (visitor , flags );
212226 final BytecodeASMified asmified = BytecodeASMified .getInstance (project );
213227 PsiFile psiFile = PsiFileFactory .getInstance (project ).createFileFromText ("asm.java" , stringWriter .toString ());
214228 CodeStyleManager .getInstance (project ).reformat (psiFile );
@@ -217,5 +231,4 @@ public void run() {
217231 }
218232 });
219233 }
220-
221234}
0 commit comments