1. jEdit Ruby Editor Plugin

    Rob McKinnon

    http://jedit.org/ruby/

  2. The Web says ...

  3. Why a new editor?

  4. What's jEdit?

  5. Why a jEdit Ruby Editor Plugin?

  6. Why not the Eclipse Plugin?

  7. Plugin Features

  8. Implementation

  9. Parsing with JRuby

      DefaultRubyParser parser = new DefaultRubyParser();
      parser.init(new RubyParserConfiguration());
    
      LexerSource source = LexerSource.getSource(filePath, content);
    
      RubyParserResult result = parser.parse(source);
    
      Node node = result.getAST();
            
  10. Walking Abstract Syntax Tree

      Node node = result.getAST();
    
      RubyNodeVisitor visitor = new RubyNodeVisitor(lineCounter, moduleMembers, classMembers, methodMembers, listeners);
    
      if (node != null) {
          node.accept(visitor);
      }
    
      List members = visitor.getMembers();
            
  11. NodeVisitor Implementation

    class RubyNodeVisitor extends AbstractVisitor { ...
    
        protected void visitNode(Node node) { ...
    
        public void visitBlockNode(BlockNode node) { ...
    
        public void visitNewlineNode(NewlineNode node) { ...
    
        public void visitModuleNode(ModuleNode node) { ...
    
        public void visitClassNode(ClassNode node) { ...
    
        public void visitDefnNode(DefnNode node) { ...
    
        public void visitDefsNode(DefsNode node) { ...
    
        public void visitScopeNode(ScopeNode node) { ...
            
  12. Parsing problems

  13. Getting RDocs into Java

  14. Popularity

  15. Download page by country

  16. Download page by continent

  17. Future features

  18. Final words