Won't your looking backward for package have the same problem if I've got
either no package definition or a package definition in a string?  How about
starting at the top of the file and looking for a class definition, then
looking backward for import like usual?

> -----Original Message-----
> From: Sandip Chitale [mailto:[EMAIL PROTECTED]]
> Sent: Tuesday, May 08, 2001 2:39 PM
> To: 'Schewe, Jon (MN65)'; 'Jde List (E-mail)'
> Subject: RE: jde-import-find-and-import puts imports in wrong place
> 
> 
> Yup... The problem seems to be here -
> 
> (defun jde-import-get-import-insertion-point ()
>   (let ((ip-re
>        (list (cons "import[ ]+\\(.*\\)[ ]*;" 'backward)
> ;************************* 'backward is the problem
>              (cons "package[ \t]+\\(.*\\)[ \t]*;" 'backward)
>              (cons "^$" 'forward)))
> :
> :-------------------8<---------- snipped ---------8<---
> :
> :
>     insertion-point))
> 
> In one of my programs I had to write "import" as "imp" + "ort" to beat
> the wrong insertion.
> 
> 
> 
> 
> Sandip V. Chitale                             150, Almaden Blvd
> work:  (408) 535 1791 ext: 791                San Jose, CA, USA
> email: [EMAIL PROTECTED]              8th floor, Cube 831
> web:   http://L064-5440.blazesoft.com
> 
> 
> > -----Original Message-----
> > From: Schewe, Jon (MN65) [mailto:[EMAIL PROTECTED]]
> > Sent: Tuesday, May 08, 2001 12:24 PM
> > To: Jde List (E-mail)
> > Subject: jde-import-find-and-import puts imports in wrong place
> >
> >
> > This isn't a real big deal since it shouldn't come up much,
> > but if you've
> > got a java class which contains a string with an import
> > statement inside it
> > jde-import-find-and-import inserts the new import after this
> > line rather
> > than after the real import lines.
> >
> > So I've got a class with this in it:
> > import javax.swing.JPanel;
> > //more imports
> > //new import should go here
> >
> > public class foo {
> > //....
> >   /**
> >    * Get a panel that allows debugging through DynamicJava.
> > The variable
> >    * plant is mapped to the current plant.
> >    */
> >   final public JPanel createDynamicJavaPanel() {
> >     final Interpreter interpreter = new TreeInterpreter(new
> > JavaCCParserFactory());
> >     final JPanel panel = new JPanel(new BorderLayout());
> >
> >     final StringBuffer message = new StringBuffer();
> >     message.append("The domain package is already imported
> > and the following
> > variables have been defined: ");
> >     message.append(System.getProperty("line.separator"));
> >     message.append("plant");
> >     message.append(System.getProperty("line.separator"));
> >     message.append("scheduler");
> >     message.append(System.getProperty("line.separator"));
> >
> >     final JTextArea code = new JTextArea("/*" +
> > message.toString() + "*/\n",
> > 24, 80);
> >     panel.add(new JScrollPane(code), BorderLayout.CENTER);
> >     final JButton button = new JButton("Evaluate");
> >     button.addActionListener(new ActionListener() {
> >       public void actionPerformed(final ActionEvent ae) {
> >         try {
> >           interpreter.interpret(new StringReader(code.getText()),
> > "topLevel");
> >         } catch (final InterpreterException e) {
> >           System.err.println(e.getMessage());
> >           e.printStackTrace();
> >         }
> >       }
> >     });
> >     panel.add(button, BorderLayout.SOUTH);
> >
> >     interpreter.defineVariable("plant", getPlant());
> >     interpreter.defineVariable("scheduler", getScheduler());
> >
> >     try {
> >       interpreter.interpret(new StringReader("import
> > com.honeywell.sydneypoc.domain.*;"), "topLevel");
> > //new import shows up here
> >     } catch (final InterpreterException e) {
> >       System.err.println(e.getMessage());
> >       e.printStackTrace();
> >     }
> >
> >     return panel;
> >   }
> > //...
> > }
> >
> > ---
> > Jon Schewe | [EMAIL PROTECTED]
> > *My views may not represent those of my employers
> >
> >
> 

Reply via email to