From: Robert M. <rob...@us...> - 2005-10-29 19:07:27
|
Update of /cvsroot/jedit/plugins/RubyPlugin/src/org/jedit/ruby/ri In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv22196/org/jedit/ruby/ri Modified Files: RDocSeacher.java RDocStyleSheet.java RDocViewer.java RDocViewerKeyHandler.java RiParser.java Log Message: changed code to use new jruby parser; fixed various parsing problems Index: RDocViewerKeyHandler.java =================================================================== RCS file: /cvsroot/jedit/plugins/RubyPlugin/src/org/jedit/ruby/ri/RDocViewerKeyHandler.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -d -r1.2 -r1.3 --- RDocViewerKeyHandler.java 12 Oct 2005 07:31:06 -0000 1.2 +++ RDocViewerKeyHandler.java 29 Oct 2005 19:07:18 -0000 1.3 @@ -103,13 +103,13 @@ event.consume(); } - private void handleOtherKeys(KeyEvent event) { + private static void handleOtherKeys(KeyEvent event) { if (event.isAltDown() || event.isMetaDown()) { - char keyChar = event.getKeyChar(); - boolean handled = false; - if (handled) { - event.consume(); - } +// char keyChar = event.getKeyChar(); +// boolean handled = false; +// if (handled) { +// event.consume(); +// } } } Index: RiParser.java =================================================================== RCS file: /cvsroot/jedit/plugins/RubyPlugin/src/org/jedit/ruby/ri/RiParser.java,v retrieving revision 1.9 retrieving revision 1.10 diff -u -d -r1.9 -r1.10 --- RiParser.java 12 Oct 2005 07:31:06 -0000 1.9 +++ RiParser.java 29 Oct 2005 19:07:18 -0000 1.10 @@ -25,7 +25,6 @@ import org.jedit.ruby.cache.RubyCache; import org.gjt.sp.jedit.jEdit; -import java.beans.XMLDecoder; import java.io.*; import java.util.ArrayList; import java.util.List; @@ -38,6 +37,7 @@ public final class RiParser { public static void parseRdoc() { + RubyCache.resetCache(); copyOverRubyCode(); log("parsing RDoc from jar"); List<JarEntry> entries = getEntries(); @@ -80,7 +80,8 @@ try { input = new ObjectInputStream(inputStream); ClassDescription result = (ClassDescription)input.readObject(); - cache(result); + String path = name.substring(name.lastIndexOf("/") + 1); + cache(result, path); } catch (Exception e) { RubyPlugin.error(e, RiParser.class); } finally { @@ -127,8 +128,8 @@ return new File(dir, "RubyPlugin.jar"); } - private static void cache(ClassDescription description) { - ClassMember parent = new ClassMember(description.getName(), 0, 0); + private static void cache(ClassDescription description, String path) { + ClassMember parent = new ClassMember(description.getName()); parent.setParentMemberName(description.getSuperclass()); parent.setEndOffset(0); String namespace = description.getNamespace(); @@ -143,14 +144,14 @@ Member[] members = new Member[1]; members[0] = parent; RubyMembers rubyMembers = new RubyMembers(members, new ArrayList<Problem>()); - RubyCache.instance().add(rubyMembers, "1.8/system"); + RubyCache.instance().addMembers(rubyMembers, path); } private static void addMethods(List<MethodDescription> methods, ClassMember parent) { for (MethodDescription methodDescription : methods) { String name = methodDescription.getName(); name = name.startsWith(".") ? name.substring(1) : name; - Method method = new Method(name, null, "", "", 0, 0, methodDescription.isClassMethod()); + Method method = new Method(name, null, "", "", methodDescription.isClassMethod()); method.setNamespace(methodDescription.getNamespace()); method.setDocumentationBlockParams(methodDescription.getBlockParameters()); method.setDocumentationParams(methodDescription.getParameters()); @@ -166,81 +167,7 @@ RubyPlugin.log(message, RiParser.class); } - private void convertXmlToBinary() { - File directory = new File("/home/a/apps/versions/jedit/plugins/RubyPlugin/ri/java-xml"); - List<File> classDescriptions = findClassDescriptions(directory); - for (File file : classDescriptions) { - loadClassDescription(file); - } - } - - private void loadClassDescription(File file) { - try { - XMLDecoder d = new XMLDecoder(new BufferedInputStream(new FileInputStream(file))); - ClassDescription result = (ClassDescription)d.readObject(); - d.close(); - encode(result, file); - } catch (FileNotFoundException e) { - e.printStackTrace(); - } - } - - private static void encode(ClassDescription result, File file) { - String name = file.getName(); - int end = name.indexOf(".xml"); - name = name.substring(0, end) + ".dat"; - System.out.println(name); - file = new File("/home/b/apps/versions/jedit/4.2/plugins/RubyPlugin/ri/java", name); - - try { - ObjectOutputStream output = new ObjectOutputStream(new FileOutputStream(file)); - output.writeObject(result); - output.close(); - } catch (IOException e) { - e.printStackTrace(); - } - } - -// private void toXml(ClassDescription description) { -// try { -// XMLEncoder e = new XMLEncoder(new BufferedOutputStream(new FileOutputStream("/home/a/tmp/Test.xml"))); -// e.writeObject(description); -// e.close(); -// FileOutputStream fos = new FileOutputStream("/home/a/tmp/Test.txt"); -// ObjectOutputStream oos = new ObjectOutputStream(fos); -// oos.writeObject(description); -// oos.close(); -// } catch (IOException e) { -// e.printStackTrace(); -// } -// } - - private List<File> findClassDescriptions(File directory) { - List<File> list = new ArrayList<File>(); - File[] entries = directory.listFiles(); - - for (File entry : entries) { - if(entry.isDirectory()) { - list.addAll(findClassDescriptions(entry)); - } else if(entry.getName().endsWith("xml")) { - list.add(entry); - } - } - - return list; - } - -// private static final String classes = "RI, RI::AliasName, RI::AnsiFormatter, RI::Attribute,\n" + -// " RI::AttributeFormatter, RI::AttributeFormatter::AttrChar,\n" + -// " RI::AttributeFormatter::AttributeString, RI::ClassDescription,\n" + -// " RI::ClassEntry, RI::Constant, RI::Description, RI::HtmlFormatter,\n" + -// " RI::IncludedModule, RI::MethodDescription, RI::MethodEntry,\n" + -// " RI::MethodDescription, RI::ModuleDescription, RI::NamedThing,\n" + -// " RI::Options, RI::Options::OptionList, RI::OverstrikeFormatter,\n" + -// " RI::Paths, RI::RiCache, RI::RiReader, RI::RiWriter,\n" + -// " RI::SimpleFormatter, RI::TextFormatter, RI::TopLevelEntry,"; - - public static RubyMembers parse() { + public static void parse() { ClassDescription description = new ClassDescription(); description.setAttributes(new ArrayList<Attribute>()); List<MethodDescription> methods = new ArrayList<MethodDescription>(); @@ -290,130 +217,6 @@ instanceMethods.add(method); description.setInstanceMethods(instanceMethods); -// toXml(description); - return null; - } - -// private static final String objectClass = "--- !ruby/object:RI::ClassDescription \n" + -// "attributes: []\n" + -// "class_methods: \n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: new\n" + -// "comment: \n" + -// " - !ruby/struct:SM::Flow::P \n" + -// " body: \"<tt>Object</tt> is the parent class of all classes in Ruby. Its methods are\n" + -// " therefore available to all objects unless explicitly overridden.\"\n" + -// " - !ruby/struct:SM::Flow::P \n" + -// " body: \"<tt>Object</tt> mixes in the <tt>Kernel</tt> module, making the built-in kernel\n" + -// " functions globally accessible. Although the instance methods of <tt>Object</tt>\n" + -// " are defined by the <tt>Kernel</tt> module, we have chosen to document them here\n" + -// " for clarity.\"\n" + -// " - !ruby/struct:SM::Flow::P \n" + -// " body: \"In the descriptions of Object's methods, the parameter <em>symbol</em> refers to\n" + -// " a symbol, which is either a quoted string or a <tt>Symbol</tt> (such as\n" + -// " <tt>:name</tt>).\"\n" + -// "constants: []\n" + -// "full_name: Object\n" + -// "includes: \n" + -// " - !ruby/object:RI::IncludedModule \n" + -// " name: Kernel\n" + -// "instance_methods: \n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: \"==\"\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: \"===\"\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: \"=~\"\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: \"__id__\"\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: \"__send__\"\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: class\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: clone\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: display\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: dup\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: \"eql?\"\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: \"equal?\"\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: extend\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: freeze\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: \"frozen?\"\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: hash\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: id\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: initialize_copy\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: inspect\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: instance_eval\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: \"instance_of?\"\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: instance_variable_get\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: instance_variable_set\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: instance_variables\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: \"is_a?\"\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: \"kind_of?\"\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: method\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: methods\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: \"nil?\"\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: object_id\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: private_methods\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: protected_methods\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: public_methods\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: remove_instance_variable\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: \"respond_to?\"\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: send\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: singleton_method_added\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: singleton_method_removed\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: singleton_method_undefined\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: singleton_methods\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: taint\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: \"tainted?\"\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: to_a\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: to_s\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: type\n" + -// " - !ruby/object:RI::MethodDescription \n" + -// " name: untaint\n" + -// "name: Object\n" + -// "superclass: "; - - public static void main(String[] args) { - RiParser parser = new RiParser(); - parser.convertXmlToBinary(); } } Index: RDocViewer.java =================================================================== RCS file: /cvsroot/jedit/plugins/RubyPlugin/src/org/jedit/ruby/ri/RDocViewer.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -d -r1.7 -r1.8 --- RDocViewer.java 12 Oct 2005 07:31:06 -0000 1.7 +++ RDocViewer.java 29 Oct 2005 19:07:18 -0000 1.8 @@ -195,7 +195,7 @@ return members; } - private void populateMatches(String text, boolean matchLength, List<Member> members) { + private static void populateMatches(String text, boolean matchLength, List<Member> members) { for (Member member : RubyCache.instance().getAllImmediateMembers()) { if (isMatch(member.getFullName(), text, matchLength)) { members.add(member); Index: RDocStyleSheet.java =================================================================== RCS file: /cvsroot/jedit/plugins/RubyPlugin/src/org/jedit/ruby/ri/RDocStyleSheet.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- RDocStyleSheet.java 12 Oct 2005 07:31:06 -0000 1.3 +++ RDocStyleSheet.java 29 Oct 2005 19:07:18 -0000 1.4 @@ -86,7 +86,7 @@ private Rule em() { Rule r = new Rule("em"); -// r.add("font-style", "italic"); +// r.addMembers("font-style", "italic"); r.add("color", getColor(Token.KEYWORD1)); return r; } @@ -105,7 +105,7 @@ return getHexColor(color); } - private String getHexColor(Color color) { + private static String getHexColor(Color color) { StringBuffer buffer = new StringBuffer("#"); buffer.append(getHex(color.getRed())); buffer.append(getHex(color.getGreen())); Index: RDocSeacher.java =================================================================== RCS file: /cvsroot/jedit/plugins/RubyPlugin/src/org/jedit/ruby/ri/RDocSeacher.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -d -r1.3 -r1.4 --- RDocSeacher.java 12 Oct 2005 07:31:06 -0000 1.3 +++ RDocSeacher.java 29 Oct 2005 19:07:18 -0000 1.4 @@ -24,7 +24,6 @@ import org.gjt.sp.jedit.Macros; import org.jedit.ruby.ast.Member; import org.jedit.ruby.ast.Method; -import org.jedit.ruby.structure.*; import org.jedit.ruby.structure.TypeAheadPopup; import org.jedit.ruby.RubyPlugin; import org.jedit.ruby.utils.CommandUtils; @@ -118,7 +117,7 @@ methodName = methodName.substring(index + adj); } - Method method = new Method(methodName, null, "none", "none", 0, 0, isClassMethod); + Method method = new Method(methodName, null, "none", "none", isClassMethod); method.setNamespace(namespace); methods.add(method); } @@ -162,7 +161,7 @@ } } - private String rri(String searchTerm) throws IOException, InterruptedException { + private static String rri(String searchTerm) throws IOException, InterruptedException { File resultFile = CommandUtils.getStoragePath("ri_result.txt"); String command = getRriCommand(resultFile, searchTerm); CommandUtils.getOutput(command, false); |