public static SourceCodeEditor showInCodeEditor(this SourceCodeEditor codeEditor, Java_Class _class, Java_Method method) { //var _class = classes_bySignature[classSignature]; var file = _class.file(); codeEditor.open(file); var lineNumber = 0; if (method.isNull() || method.LineNumbers.isNull()) { return(codeEditor); } foreach (var item in method.LineNumbers) { if (item.Line_Number > 1) { if (lineNumber == 0 || item.Line_Number < lineNumber) { lineNumber = item.Line_Number; } } } //this to match the method name to the location (vs the first method) var sourceCodeLines = codeEditor.getSourceCode().lines(false); if (method.Name.regEx("<.*init*.>").isFalse()) { for (int i = 0; i < 10; i++) { if (lineNumber > i && sourceCodeLines.size() > lineNumber - i) { var line = sourceCodeLines[lineNumber - i]; if (sourceCodeLines[lineNumber - i].contains(method.Name) && line.regEx("public|private|internal|protected")) { lineNumber = lineNumber - i + 1; break; } } } } codeEditor.gotoLine(lineNumber, 4); return(codeEditor); }
public static List <MethodCall> methodRefs(this Java_Method method, Java_Class methodClass) { var file = methodClass.file(); var constants_byType = method.constantsPool_byType(methodClass); if (constants_byType.hasKey("Methodref") || constants_byType.hasKey("InterfaceMethodref")) { var methodRefs_AtLines = method.getConstantsPoolUsage_byIndex_WithLineNumbers(); var methodRefs = new List <MethodCall>(); if (constants_byType.hasKey("Methodref")) { methodRefs.AddRange(constants_byType["Methodref"].get_MethodsRef_FromContantsPool(file, false, methodRefs_AtLines)); } if (constants_byType.hasKey("InterfaceMethodref")) { methodRefs.AddRange(constants_byType["InterfaceMethodref"].get_MethodsRef_FromContantsPool(file, true, methodRefs_AtLines)); } return(methodRefs); } return(new List <MethodCall>()); }
public static List<MethodCall> methodRefs(this Java_Method method, Java_Class methodClass) { var file = methodClass.file(); var constants_byType = method.constantsPool_byType(methodClass); if (constants_byType.hasKey("Methodref") || constants_byType.hasKey("InterfaceMethodref")) { var methodRefs_AtLines = method.getConstantsPoolUsage_byIndex_WithLineNumbers(); var methodRefs = new List<MethodCall>(); if (constants_byType.hasKey("Methodref")) methodRefs.AddRange(constants_byType["Methodref"].get_MethodsRef_FromContantsPool(file, false, methodRefs_AtLines)); if (constants_byType.hasKey("InterfaceMethodref")) methodRefs.AddRange(constants_byType["InterfaceMethodref"].get_MethodsRef_FromContantsPool(file, true, methodRefs_AtLines)); return methodRefs; } return new List<MethodCall>(); }
public static MethodCall_Location methodCall_Location(this Java_Class _class, int line, int pc) { return(new MethodCall_Location { File = _class.file(), Line = line, Pc = pc }); }
public static SourceCodeEditor showInCodeEditor(this SourceCodeEditor codeEditor ,Java_Class _class, Java_Method method) { //var _class = classes_bySignature[classSignature]; var file = _class.file(); codeEditor.open(file); var lineNumber = 0; if (method.isNull() ||method.LineNumbers.isNull()) return codeEditor; foreach(var item in method.LineNumbers) if (item.Line_Number > 1) if (lineNumber == 0 || item.Line_Number < lineNumber) lineNumber = item.Line_Number; //this to match the method name to the location (vs the first method) var sourceCodeLines = codeEditor.getSourceCode().lines(false); if (method.Name.regEx("<.*init*.>").isFalse()) { for(int i=0 ; i < 10 ; i++) { if (lineNumber > i && sourceCodeLines.size() > lineNumber-i) { var line = sourceCodeLines[lineNumber-i]; if (sourceCodeLines[lineNumber-i].contains(method.Name) && line.regEx("public|private|internal|protected")) { lineNumber = lineNumber -i + 1; break; } } } } codeEditor.gotoLine(lineNumber,4); return codeEditor; }