RE: Introspection based Java class browser....also demonstrates alittle bit of java and lisp integration...

2003-02-19 Thread Sprenger, Karel
Sandip,
 
Just tried it out and ran into unexpected behaviour.  Essentially the situation is as 
follows.  I have in my current buffer a class, say B, which extends a class A.  In A I 
have a protected object logger which is an instance of a Logger class.  In class B I 
have the code fragment 
 
  logger.debug(...);
 
When I then press C-c C-v / with point inside the word logger, I do not get 
information on the Logger class as I expected from your explanation, but on the class 
B and its superclass A.
 
Sources are in the attached zipfile.
 
Cheers,
Karel

-Original Message-
From: Sandip Chitale [mailto:[EMAIL PROTECTED]]
Sent: Wednesday, February 19, 2003 07:32
To: [EMAIL PROTECTED]
Subject: Introspection based Java class browseralso demonstrates alittle bit of 
java and lisp integration...



To use :

1. unzip the attached zip at in the jde directory
2. Just put the following in your .emacs

(require 'jde-introspect)

Now put the point anywhere in Java buffer where you would
normally invoke jde-complete functions. Then type
(control c) (control v) (/) to see the java typeinfo
buffer.

For example:

With point in the 'System' below :
public class Foo {
 public static void main(String[] args) {
  System.out.println(args.length);
 }
}
here is what you get in a temp buffer. All the java class names are
hyperlinks (activated by
mouse or RET key).
class java.lang.System
/**
 * Constructors of class System
 **/
private   System()
/**
 * Methods of class System
 **/
public static native  void arraycopy(Object, int, Object, int,
int)
public static native  int identityHashCode(Object)
public static void exit(int)
public static void runFinalizersOnExit(boolean)
private staticvoid initializeSystemClass()
public static String setProperty(String, String)
private static native void registerNatives()
public static SecurityManager getSecurityManager()
staticClass getCallerClass()
public static void loadLibrary(String)
public static String getProperty(String)
public static String getProperty(String, String)
public static native  String mapLibraryName(String)
public static void load(String)
public static void setIn(InputStream)
public static void setOut(PrintStream)
public static void setErr(PrintStream)
private staticvoid checkIO()
private static native void setIn0(InputStream)
private static native void setOut0(PrintStream)
private static native void setErr0(PrintStream)
public static void setSecurityManager(SecurityManager)
private static synchronized   void setSecurityManager0(SecurityManager)
public static native  long currentTimeMillis()
private static native Properties initProperties(Properties)
public static Properties getProperties()
public static void setProperties(Properties)
public static String getenv(String)
public static void gc()
public static void runFinalization()
private staticInputStream nullInputStream() throws
NullPointerException
private staticPrintStream nullPrintStream() throws
NullPointerException
/**
 * Fields of class System
 **/
public final static   InputStream in
public final static   PrintStream out
public final static   PrintStream err
private staticSecurityManager security
private staticProperties props






problem.zip
Description: problem.zip


RE: Introspection based Java class browser....also demonstrates alittle bit of java and lisp integration...

2003-02-19 Thread Berndl, Klaus
Hello,

attached is a small library ecb-jde.el which enables you to display
the contents of class at point in the method-window of ECB:

(defun ecb-jde-display-class-at-point ()
  Displays in the ECB-methods-buffer the contents \(methods, attributes
etc...) of the class which contains the definition of the \thing\ under
point \(this can be a variablename, classname, methodname, attributename).
This function needs the same requirements to work as the method-completion
feature of JDE \(see `jde-complete-at-point')!. The source-file is searched
first in `jde-sourcepath', then in `jde-global-classpath', then in $CLASSPATH,
then in current-directory.
  (interactive)
  ...
)

Just do:

1. Save ecb-jde.el somewhere in your load-path - probably best in the
   ecb-directory ;-)
2. Activate ECB
3. Open a java-source 
4. Load ecb-jde.el, e.g. with M-x load-library RET ecb RET
5. Try it.

Differences to Sandips code:

- uses ECB method-window to display the class-contents
- uses semantic for getting the contents of a class
- needs the source-file of the class to work

The first point can be seen as advantage or disadvantage ;-)

Especially the latter point is a disadvantage because it prevents
from working for classes which are only available as *.class-file or
within a jar-file...

But it demonstrates another elegant way of displaying things of a class
under point without needing java-introspection.

Klaus

-Original Message-
From: Sandip Chitale [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, February 19, 2003 7:32 AM
To: [EMAIL PROTECTED]
Subject: Introspection based Java class browseralso demonstrates alittle bit of 
java and lisp integration...


To use :
 
1. unzip the attached zip at in the jde directory
2. Just put the following in your .emacs

(require 'jde-introspect)

Now put the point anywhere in Java buffer where you would
normally invoke jde-complete functions. Then type
(control c) (control v) (/) to see the java typeinfo
buffer.
 
For example:
 
With point in the 'System' below :
public class Foo {
 public static void main(String[] args) {
  System.out.println(args.length);
 }
}
here is what you get in a temp buffer. All the java class names are
hyperlinks (activated by
mouse or RET key).
class java.lang.System




ecb-jde.el
Description: Binary data


Re: JDEE plugins (was JUCI)

2003-02-19 Thread Phillip Lord
 Paul == Paul Kinnucan [EMAIL PROTECTED] writes:

  Paul Hi Nick,

  Paul I am posting my response to your idea of JUCI-based plugins
  Paul  to the JDEE list because I am interested in getting other
  Paul  people's
  Paul input on this idea.



This sounds like a thoroughly good idea to me. I've contributed lisp
to JDE in the past, which is very easy to do, but I've never added
Java, because I never got the build working on a unix box. 

I was looking at jrefactory the other day, and thought that would be
nice to integrate in, but it needs some Java code in the way. And then
the whole thing needs to be made available to JDE, so that it can be
run from bsh. 

A simple plugin architecture would make this all easier. 

So, yeah, sounds sensible to me.

Phil



auto-delete compile buffer

2003-02-19 Thread Diez B. Roggisch
Hi,

I really love the new feature that the frame-split into source and 
compilation buffer disappears magically when there was no compilation error.

I would love to see this to be taken a step further: Is it somehow 
possible to actually remove the compilation buffer? Or to place it 
somewhere else in the buffer-history? I'm usually using the

C-Meta-l (XEmacs)

keys to switch fast between the last two buffers visited. Now when a 
compilation has been done, pressing this keys will show the compilation 
buffer to me.

Thanks for your help,

Diez B. Roggisch



RE: JDEE plugins (was JUCI)

2003-02-19 Thread Petter Måhlén
I second those sentiments and that motion.

/ Petter

 -Original Message-
 From: Mark Pollack [mailto:[EMAIL PROTECTED]] 
 Sent: den 19 februari 2003 02:01
 To: Paul Kinnucan; Nascif Abousalh-Neto
 Cc: [EMAIL PROTECTED]
 Subject: RE: JDEE plugins (was JUCI)
 
 
 Hi,
 
 Just my two cents, I'm a lisp-wimp as I am sure are many of 
 the users of
 JDEE, but a good Java programmer.  If there was some way that I could
 write JDEE extensions in Java for at least some subset of plug-in
 functionality that would be great since I never seem to find 
 the time to
 really learn lisp.  I realize it might be too much to accommodate us
 lisp-wimps, but just keep it in mind if it turns out to be not such a
 big deal to go in this direction.
 
 Cheers,
 Mark
 
 
 
 -Original Message-
 From: Paul Kinnucan [mailto:[EMAIL PROTECTED]] 
 Sent: Tuesday, February 18, 2003 5:25 PM
 To: Nascif Abousalh-Neto
 Cc: Paul Kinnucan; [EMAIL PROTECTED]
 Subject: RE: JDEE plugins (was JUCI)
 
 
 Nascif Abousalh-Neto writes:
   Sounds like a great idea!
   
   I would volunteer to re-write the Jalopy
 (http://jalopy.sourceforge.net/)   integration package I put 
 together.
 I could also take a stab at a re-write   for the integration package
 for PMD (http://pmd.sourceforge.net/).   
   Those Elisp-Java packages have an awful lot of code in common, and
 it would   be really nice to create a standard way to create them -
 specially the bit   about a standard way to integrate with the
 BeanShell.   
 
 Great. I assume that you will conform to the directory 
 structure that I
 proposed and provide the package as a jar or lisp file. Please let me
 know if you intend to implement any other suggestions, e.g., 
 Ole's idea
 of a standard entry point: lisp/plugin.el
 
   I would like to suggest also a standard way for those packages to
 present   their output. A lot of them generate warnings or 
 errors that
 go very well in   a compilation mode buffer. I think this behavior
 can be abstracted as   well.   
 
 beanshell.el previously contained an unfinished eieio class that
 provides a compilation-style buffer for BeanShell-based 
 applications. My
 idea is that the compile server and the ant package and any other
 Beanshell based applications that needed compilation-like 
 buffers could
 specialize and instantiate this class. I deleted it in my last update
 but I think I'll revive it.
 
 - Paul
 
   Regards,
 Nascif
   
   
   
-Original Message-
From: Paul Kinnucan [mailto:[EMAIL PROTECTED]] 
Sent: Tuesday, February 18, 2003 3:27 PM
To: [EMAIL PROTECTED]
Subject: JDEE plugins (was JUCI)



Hi Nick,

I am posting my response to your idea of JUCI-based plugins   
 to the JDEE list because I am interestedin getting 
 other people's
 input on this idea.
- Paul


Nick Sieger writes:

[snip]

  Do you have a long-term vision for any standard interface 
or API for   integrating user-developed components?  Right 
now, most of the   user-submitted code seems to be little 
snippets here and there.  It   would be cool if people could 
share pieces of code in a manner that   they could just drop 
a file or a jar archive in a well-known place in   the JDEE 
installation filesystem and the JDEE would auto-detect the   
new component, load it up and make the code available.   

I haven't really thought about it. One thing that occurs to 
me is that I could add a subdirectory called plugins to the 
JDEE tree where users could put an entire hybrid Java/Lisp 
plugin, i.e., the JDEE tree would look like this:

JDEEroot
  lisp
  java
  doc
  plugins
plugin1
  lisp
  java
 scripts
 classes
src
lib
doc
  javadoc
  design
  help
info
html
src
plugin2
  ...

The JDEE would load/eval the files in the lisp directory
and add the classes directory and the jar files in the 
lib directory to the BeanShell's classpath. I could also
add a Plugins submenu to the JDEE menu and define a JDEE 
Lisp function that plugins could call to
add a command or submenu of commands to the Plugins 
 directory.   
 
This solution is not as convenient as your idea of a single 
jar file. But remember that one of the principles of freeware 
is to include the source. Perhaps the first time the JDEE 
detects a jar or zip file at the top level of the Plugins 
directory it could unpack it, assuming that its contents are 
structured as I proposed. This would provide the ease of 
distribution and installation that you have in mind with my 
objective of ensuring that plugins are complete packages with 
Lisp, Java, design and API doc, and user doc (i.e., html 
and/or info help files).

How does this 

Re: Introspection based Java class browser....also demonstrates alittle bit of java and lisp integration...

2003-02-19 Thread Klaus Berndl

In principal you do the following:

1. Getting the class of current point
2. Introspection with java-code of this class

Here is your code

,
| (defun jde-introspect-javatype-at-point ()
|   (interactive)
|   (if (jde-open-functions-exist)
|   (let* ((thing-of-interest (thing-at-point 'symbol))
|  (pair (save-excursion (end-of-thing 'symbol)
|(jde-parse-java-variable-at-point)))
|  (class-to-open (jde-open-get-class-to-open  ;;  step 1.
|  pair thing-of-interest))
|)
| (if (and class-to-open (stringp class-to-open))
| (jde-introspect-javatype class-to-open)  ;;  step 2.
|   (error Can not parse the thing at point!)))
| (message You need JDE = 2.2.6 and Senator for using this feature!)))
`

IMHO step 1. is enough and step 2 can be done much smarter with semantic
because this tool already offers all what we need for getting the contents of
a class!

I would do the following:

1. Getting the class C of current point like in your code.
2. Opening the file F which contains class C with find-file-noselect in a
   hidden buffer

   (save-excursion
  (set-buffer (find-file-noselect file of class c))
  
  )

3. In this buffer just call `senator-parse' or `semantic-bovinate-toplevel'
   which return all tokens in this file. The library semantic-util.el offers a
   lot to display and bucketize these tokens in several manners (e.g. like in
   UML-notation).

   (save-excursion
  (set-buffer (find-file-noselect file of class c))
  (let ((tokens (senator-parse)))
;; do something with the tokens, e.g. display it in a special buffer
)
  )
   
4. If you use ECB you can use its methods buffer to display the contents of
   class under point with the following short code:

   (save-excursion
  (set-buffer (find-file-noselect file of class c))
  (ecb-update-methods-buffer--internal 'scroll-to-begin)
  )

   You do not need more code to display the methods and variables of class C
   under point in the methods-buffer of ECB!


IMHO this is much easier than using this somehow clumsy beanshell to
communicate between java and elisp. IMHO java/Beanshell is good to find out in
which file a class/method is defined, but the rest of the job can be done
very easy with semantic (and ECB if you like).

But do not misunderstand me: Your code is good and a really stringent
mechanism for code-completion/introspection/browsing etc.  is really needed in
JDEE. IMHO currently there are too many different mechanisms in JDEE to do
this things.

Ciao,
Klaus

On Tue, 18 Feb 2003, Sandip Chitale wrote:

  To use :
   
  1. unzip the attached zip at in the jde directory
  2. Just put the following in your .emacs
  
  (require 'jde-introspect)
  
  Now put the point anywhere in Java buffer where you would
  normally invoke jde-complete functions. Then type
  (control c) (control v) (/) to see the java typeinfo
  buffer.
   
  For example:
   
  With point in the 'System' below :
  public class Foo {
   public static void main(String[] args) {
System.out.println(args.length);
   }
 }
  here is what you get in a temp buffer. All the java class names are
  hyperlinks (activated by
  mouse or RET key).
  class java.lang.System
  /**
   * Constructors of class System
   **/
  private   System()
  /**
   * Methods of class System
   **/
  public static native  void arraycopy(Object, int, Object, int,
  int)
  public static native  int identityHashCode(Object)
  public static void exit(int)
  public static void runFinalizersOnExit(boolean)
  private staticvoid initializeSystemClass()
  public static String setProperty(String, String)
  private static native void registerNatives()
  public static SecurityManager getSecurityManager()
  staticClass getCallerClass()
  public static void loadLibrary(String)
  public static String getProperty(String)
  public static String getProperty(String, String)
  public static native  String mapLibraryName(String)
  public static void load(String)
  public static void setIn(InputStream)
  public static void setOut(PrintStream)
  public static void setErr(PrintStream)
  private staticvoid checkIO()
  private static native void setIn0(InputStream)
  private static native void setOut0(PrintStream)
  private static native void setErr0(PrintStream)
  public static void setSecurityManager(SecurityManager)
  private static synchronized  

Re: Introspection based Java class browser....also demonstrates alittle bit of java and lisp integration...

2003-02-19 Thread Klaus Berndl


On Wed, 19 Feb 2003, Karel Sprenger wrote:

  Hello,
  
  Ironically enough, the method ecb-jde-display-class-at-point shows the same
  behaviour as Sandip's code when I invoke it with point in the variable
  logger in class B.

Of course, this must be because Sandips and my code use the same JDE code to
get the class for the thing under point. Or with other words: Both uses the
JDE mechanism used for method/field-completion.

The following code is responsible for getting the class:

,
|   (let* (
|  (thing-of-interest (thing-at-point 'symbol))
|  (pair (save-excursion (end-of-thing 'symbol)
|(jde-parse-java-variable-at-point)))
|  (class-to-open (jde-open-get-class-to-open
|  pair thing-of-interest))
|  (source-path-prefix-list (jde-open-get-path-prefix-list)) 
|  (java-file-name nil)
|  )
| (if (and class-to-open (stringp class-to-open))
| (progn
|   (setq java-file-name (jde-open-find-java-file-name
| class-to-open source-path-prefix-list))
|   (if (not java-file-name)
|   ;; here comes the code which displays contents of
|   ;; java-file-name 
`

Exactly the same mechanism is used by jde-open-class-at-point and also
also jde-complete.

See jde-open-source.el!

Sandips and my code are equal in getting the correct class and different in
getting and displaying the contents of this class.

Ciao,
Klaus

  
  public class A {
 protected Logger logger = new Logger();
 public A() {
 }
  
 public String toString() {
logger.debug(A.toString() invoked.);
return A;
 }
 }
  
  public class B extends A {
 public B() {
 }
  
 public String toString() {
logger.debug(B.toString() invoked.);
  //  ^-- invoke ecb-jde-display-class-at-point here
return B;
 }
 }
  
  If I invoke ecb-jde-display-class-at-point with point inside logger in the
  toString method of class A, all is well and I get:
  
  Logger [-]
Varia... [+]
Logger()
Logger(String)
void debug(String)
void debug(String,Throwable)
void error(String)
void error(String,Throwable)
void info(String)
void info(String,Throwable)
void warn(String)
void warn(String,Throwable)
  
  Invoking ecb-jde-display-class-at-point with point inside logger in B's
  toString method will show
  
  B [-]
Parents [+]
+ B()
+ String toString()
  
  Is this a semantic problem?
  
  Cheers, Karel -Original Message- From: Berndl, Klaus
  [mailto:[EMAIL PROTECTED]] Sent: Wednesday, February 19, 2003 11:07 To:
  'Sandip Chitale'; [EMAIL PROTECTED] Subject: RE: Introspection based Java
  class browseralso demonstrates alittle bit of java and lisp
  integration...
  
  
  Hello,
  
  attached is a small library ecb-jde.el which enables you to display
  the contents of class at point in the method-window of ECB:
  
  (defun ecb-jde-display-class-at-point ()
Displays in the ECB-methods-buffer the contents \(methods, attributes
  etc...) of the class which contains the definition of the \thing\ under
  point \(this can be a variablename, classname, methodname, attributename).
  This function needs the same requirements to work as the method-completion
  feature of JDE \(see `jde-complete-at-point')!. The source-file is searched
  first in `jde-sourcepath', then in `jde-global-classpath', then in
  $CLASSPATH, then in current-directory.
(interactive)
...
  )
  
  Just do:
  
  1. Save ecb-jde.el somewhere in your load-path - probably best in the
 ecb-directory ;-)
  2. Activate ECB
  3. Open a java-source
  4. Load ecb-jde.el, e.g. with M-x load-library RET ecb RET
  5. Try it.
  
  Differences to Sandips code:
  
  - uses ECB method-window to display the class-contents
  - uses semantic for getting the contents of a class
  - needs the source-file of the class to work
  
  The first point can be seen as advantage or disadvantage ;-)
  
  Especially the latter point is a disadvantage because it prevents
  from working for classes which are only available as *.class-file or
  within a jar-file...
  
  But it demonstrates another elegant way of displaying things of a class
  under point without needing java-introspection.
  
  Klaus
  
  -Original Message- From: Sandip Chitale
  [mailto:[EMAIL PROTECTED]] Sent: Wednesday, February 19, 2003 7:32 AM
  To: [EMAIL PROTECTED] Subject: Introspection based Java class browseralso
  demonstrates alittle bit of java and lisp integration...
  
  
 To use :
  
 1. unzip the attached zip at in the jde directory
 2. Just put the following in your .emacs
  
 (require 'jde-introspect)
  
 Now put the point anywhere in Java buffer where you would
 normally invoke jde-complete functions. Then type
 (control c) (control v) (/) to see the java typeinfo
 buffer.
  
 For example:
  
 With point in the 'System' below :
 

Re: Introspection based Java class browser....also demonstrates alittle bit of java and lisp integration...

2003-02-19 Thread Paul Kinnucan
Klaus Berndl writes:
  
  IMHO this is much easier than using this somehow clumsy beanshell to
  communicate between java and elisp. 

Easier for whom? The easiest way to implement a feature does not necessarily
result in the implementation that is easiest to use. For example, your proposal
for implementing completion works only for classes for which source code
is available and requires opening and parsing the source file of each class to 
be completed during a session. Ever tried opening and parsing a large
Java source file? Think of how long it would take to complete a method
of JFrame class. People already complain about how long the existing
JDEE feature takes. Your proposal would decrease the response time
exponentially.

semantic includes a database feature whereby it can save parsed versions
of source files so that they don't need to be opened and parsed every
time parse data is needed. The parsed info for all the source files in
a directory are saved in a separate file in that directory named
semantic.db. In principal, semantic.db could be used as a basis for
completion. But a pure semantic.db-based implementation has some 
significant drawbacks compared to the present Java introspection-based
completion:

* No support for class files for which there is no source code
* Requires prior creation of the semantic.db. For example, a semantic.db
  would have to be created for the entire JDK source files. It would
  be possible to provide semantic.db's for the JDK.
* Requires loading and saving the semantic.db for each source directory
  that is visited in a session. This slows down opening Emacs (if you
  use Emacs' desktop feature, which I do) and closing Emacs substantially.
  In fact, the slow down is so annoying that I have turned off the semantic.db
  feature.
* Requires improving the current interface to semantic.db. The current
  semantic.db implementation does not support Java's package-based
  scheme for quickly locating source and class files on a user's
  system. This support is essential to ensure reasonable response
  time for any feature based on semantic.db files.

Put another way, the current Java introspection-based implementation
of completion is faster, does not require a separate parse database,
and works for all classes for which a class file exists on
jde-global-classpath. The only advantage of a semantic.db-based
approach that I can see at this point is that it would work for 
uncompiled classes.

For this reason, it does not make sense to me to dump the current JDEE
approach (let's call it the classpath-based approach) for the
semantic.db approach (let's call it the sourcepath-based
approach). You gain one minor advantage in return for several major
disadvantages.

My plan has been to merge the classpath and source path approaches
so as to have a completion/browser facility that works whether only
class files are available, only source files, or both. Under this
approach, the JDEE would search the sourcepath first for
parse data (i.e., use semantic.db) for a class and if nothing turned up, 
it would search the classpath (i.e., use Java instrospection via
the Beanshell).

To do this efficiently requires abstracting the semantic.db search
mechanism so that the sourcepath and the classpath appear the same
to clients of the search mechanism. I started work on this last
spring with Eric Ludlum, semantic's author, but dropped it because
of other JDEE work that was more pressing and also because semantic
was currently in a great deal of flux.


- Paul




  IMHO java/Beanshell is good to find out in
  which file a class/method is defined, but the rest of the job can be done
  very easy with semantic (and ECB if you like).
  
  But do not misunderstand me: Your code is good and a really stringent
  mechanism for code-completion/introspection/browsing etc.  is really needed in
  JDEE. IMHO currently there are too many different mechanisms in JDEE to do
  this things.
  





Re: Introspection based Java class browser....also demonstrates alittle bit of java and lisp integration...

2003-02-19 Thread Javier S. Lopez
Sprenger, Karel [EMAIL PROTECTED] writes:

 Hello,
 
[...]
 
 Is this a semantic problem?

No.

Completion looks for the logger class type by parsing the current java file.
(jde-parse-declared-type-of) The method is not smart enough to look for it in
the super class or classes within the same package.

I will take a look at it later, it should be straightforward to use semantic
to add the functionality to look for the variable in the super class.

Javier




Re[2]: Introspection based Java class browser....also demonstrates alittle bit of java and lisp integration...

2003-02-19 Thread Eric M. Ludlam
 Berndl, Klaus [EMAIL PROTECTED] seems to think that:
  [ ... ]
Differences to Sandips code:

- uses ECB method-window to display the class-contents
- uses semantic for getting the contents of a class
- needs the source-file of the class to work

The first point can be seen as advantage or disadvantage ;-)

Especially the latter point is a disadvantage because it prevents
from working for classes which are only available as *.class-file or
within a jar-file...
  [ ... ]

Hi Klaus,

  Your last point here about semantic not being able to look into a
.class file is valid, however the CVS version semantic 2.0 semanticdb
subsystem was recently enhanced to be extensible beyond just typical
language parsers.  The idea was Paul's originally, and I expanded on
that.

  The basic premise is to sub-class a semanticdb class, and implement
all the search methods.  Your search methods can then call external
programs, or whatever you like before returning a results table.
There is an example that will search all Emacs Lisp symbols inside
Emacs, regardless of having the sources available.  The only part
that needs to be done to make your new program support .class files
is to extend the database.

  I can provide you with more details and perhaps start the process if
you would like to try extending semanticdb.

Have fun
Eric

-- 
  Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
   Home: http://www.ludlam.netSiege: www.siege-engine.com
Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org



Re: auto-delete compile buffer

2003-02-19 Thread Diez B. Roggisch
Hi,

Javier S. Lopez wrote:

The method jde-compile-finish-kill-buffer takes care of removing the
compilation window from the screen.
if you add this lines:

(run-at-time
3 sec nil 'kill-buffer
(get-buffer-create *compilation*))

to your jde-compile-finish-kill-buffer method 
after the lines:
(get-buffer-create *compilation*) 

I created this function:


(defun jde-compile-finish-kill-buffer (buf msg)
  Removes the jde-compile window after a few seconds if no errors.
  (save-excursion
(set-buffer buf)
(if (null (or (string-match .*exited abnormally.* msg)
  (string-match .*BUILD FAILED.* (buffer-string
;;no errors, make the compilation window go away in a few seconds
(progn
  (run-at-time
   2 sec nil 'delete-windows-on
   (get-buffer-create *compilation*)
	   (run-at-time
	2 sec nil 'kill-buffer
	(get-buffer-create *compilation*)))
  (message No compilation errors))
  ;;there were errors, so jump to the first error
  (next-error


However, its not working the way I wanted it to: it kills the buffer, 
but now the frame split persits :(

Any suggestions?

Regards,

Diez



RE: auto-delete compile buffer

2003-02-19 Thread Berndl, Klaus
I created this function:

I think it has to be:

(defun jde-compile-finish-kill-buffer (buf msg)
  Removes the jde-compile window after a few seconds if no errors.
  (save-excursion
(set-buffer buf)
(if (null (or (string-match .*exited abnormally.* msg)
  (string-match .*BUILD FAILED.* (buffer-string
;;no errors, make the compilation window go away in a few seconds
(progn
  (run-at-time
   2 sec nil 'delete-windows-on
   (get-buffer-create *compilation*))
  (run-at-time
   2 sec nil 'kill-buffer
   (get-buffer-create *compilation*))
  (message No compilation errors))
  ;;there were errors, so jump to the first error
  (next-error

Klaus



Re: auto-delete compile buffer

2003-02-19 Thread Klaus Berndl
On Wed, 19 Feb 2003, Diez B. Roggisch wrote:

  Hi,
  
  Javier S. Lopez wrote:
  The method jde-compile-finish-kill-buffer takes care of removing the
  compilation window from the screen.
  if you add this lines:
  (run-at-time
  3 sec nil 'kill-buffer
  (get-buffer-create *compilation*))
  to your jde-compile-finish-kill-buffer method after the lines:
  (get-buffer-create *compilation*)
  
  I created this function:
  
  
  (defun jde-compile-finish-kill-buffer (buf msg)
 Removes the jde-compile window after a few seconds if no errors.
 (save-excursion
   (set-buffer buf)
   (if (null (or (string-match .*exited abnormally.* msg)
 (string-match .*BUILD FAILED.* (buffer-string
   ;;no errors, make the compilation window go away in a few seconds
   (progn
 (run-at-time
  2 sec nil 'delete-windows-on
  (get-buffer-create *compilation*)
  (run-at-time
   2 sec nil 'kill-buffer
   (get-buffer-create *compilation*)))
 (message No compilation errors))
 ;;there were errors, so jump to the first error
 (next-error

I think it has to be:

(defun jde-compile-finish-kill-buffer (buf msg)
  Removes the jde-compile window after a few seconds if no errors.
  (save-excursion
(set-buffer buf)
(if (null (or (string-match .*exited abnormally.* msg)
  (string-match .*BUILD FAILED.* (buffer-string
;;no errors, make the compilation window go away in a few seconds
(progn
  (run-at-time
   2 sec nil 'delete-windows-on
   (get-buffer-create *compilation*))
  (run-at-time
   2 sec nil 'kill-buffer
   (get-buffer-create *compilation*))
  (message No compilation errors))
  ;;there were errors, so jump to the first error
  (next-error


Klaus
  
  
  However, its not working the way I wanted it to: it kills the buffer,
  but now the frame split persits :(
  
  Any suggestions?
  
  Regards,
  
  Diez

-- 
Klaus Berndlmailto: [EMAIL PROTECTED]
sdm AG http://www.sdm.de
software design  management
Thomas-Dehler-Str. 27, 81737 München, Germany
Tel +49 89 63812-392, Fax -220




RE: Introspection based Java class browser....also demonstrates alittle bit of java and lisp integration...

2003-02-19 Thread Sandip Chitale
A few more feature people might have missed are -

1. The output of the tool is hyperlinked. In other words by
putting the point on any java type in the output and hitting RET key
Invokes the tool on that type.

2. It attempts to display values of static final variables (including
Private ones).

3. Additional bindings :

[(return)] 'jde-introspect-javatype-by-xref-at-point  ; run tool
on the class at point in the output buffer
[(control return)] 'jde-open-source-javatype-by-xref-at-point ; show
source of class at point in the output buffer
[(control shift return)] 'jde-help-javatype-by-xref-at-point  ; show
java doc of class at point in the output buffer
[(down-mouse-1)] 'jde-introspect-javatype-by-xref-at-point; mouse
based interface to above
[(C-down-mouse-1)] 'jde-open-source-javatype-by-xref-at-point ;
[(tab)] 'jde-introspect-next-ref  ; goto
next hyperlink 
[(shift tab)] 'jde-introspect-previous-ref; goto
previous hyperlink

Sandip

-Original Message-
From: Berndl, Klaus [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, February 19, 2003 2:07 AM
To: 'Sandip Chitale'; [EMAIL PROTECTED]
Subject: RE: Introspection based Java class browseralso demonstrates
alittle bit of java and lisp integration...


Hello,

attached is a small library ecb-jde.el which enables you to display the
contents of class at point in the method-window of ECB:

(defun ecb-jde-display-class-at-point ()
  Displays in the ECB-methods-buffer the contents \(methods, attributes
etc...) of the class which contains the definition of the \thing\
under point \(this can be a variablename, classname, methodname,
attributename). This function needs the same requirements to work as the
method-completion feature of JDE \(see `jde-complete-at-point')!. The
source-file is searched first in `jde-sourcepath', then in
`jde-global-classpath', then in $CLASSPATH, then in current-directory.
  (interactive)
  ...
)

Just do:

1. Save ecb-jde.el somewhere in your load-path - probably best in the
   ecb-directory ;-)
2. Activate ECB
3. Open a java-source 
4. Load ecb-jde.el, e.g. with M-x load-library RET ecb RET
5. Try it.

Differences to Sandips code:

- uses ECB method-window to display the class-contents
- uses semantic for getting the contents of a class
- needs the source-file of the class to work

The first point can be seen as advantage or disadvantage ;-)

Especially the latter point is a disadvantage because it prevents from
working for classes which are only available as *.class-file or within a
jar-file...

But it demonstrates another elegant way of displaying things of a class
under point without needing java-introspection.

Klaus

-Original Message-
From: Sandip Chitale [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, February 19, 2003 7:32 AM
To: [EMAIL PROTECTED]
Subject: Introspection based Java class browseralso demonstrates
alittle bit of java and lisp integration...


To use :
 
1. unzip the attached zip at in the jde directory
2. Just put the following in your .emacs

(require 'jde-introspect)

Now put the point anywhere in Java buffer where you would normally 
invoke jde-complete functions. Then type (control c) (control v) (/) to

see the java typeinfo buffer.
 
For example:
 
With point in the 'System' below :
public class Foo {
 public static void main(String[] args) {
  System.out.println(args.length);
 }
}
here is what you get in a temp buffer. All the java class names are 
hyperlinks (activated by mouse or RET key).
class java.lang.System





RE: JDEE plugins (was JUCI)

2003-02-19 Thread Nic Pottier


As a long time Emacs and JDE user (I think I first started using JDE in 1997) I have 
to throw in my 2cents and say that I'd be hugely excited with any work made towards 
making plugins written in Java easy to integrate with JDE.  Until recently I think 
Emacs has been unsurpassed as the editor to use for Java, but I think some of the 
IDE's are catching up, specifically IntelliJ which most people I work with use.  There 
are a few features there which I think would be easy to implement as JDE plugins 
(especially using reflection) but as Nascif says, I have neither the time or desire to 
brush up my lisp skills to do so.  If it were possible to create some basic interfaces 
that pure Java plugins could write to I think that would go a long way towards keeping 
us able to taunt other users with our editor. :)

From the top of my head, these type of operations bound to a JDE plugin would allow 
for some neat development:

  Input into the plugin:
 - class at point
 - object name at point
 - point context (what method, what class)
 - (user input data from minibuffer)

  Output from plugin:
 - direct output to new buffer with name..
 - direct output to new buffer in split pane
 - insert output into current buffer at position
 - some way of replacing current word with output?
 - display menu at point?

If you could bind lisp commands to a java plugin with the type of input then it might 
allow for a bunch of new development.  I for one would spend the time to do some new 
things.

-Nic

 -Original Message-
 From: Nascif Abousalh-Neto [mailto:[EMAIL PROTECTED]]
 Sent: Wednesday, February 19, 2003 8:35 AM
 To: Paul Kinnucan
 Cc: [EMAIL PROTECTED]
 Subject: RE: JDEE plugins (was JUCI)
 
 
 Hi Paul,
 
 Just to recap:
 1) The plug-in will follow the proposed directory structure;
 2) It will have a lisp/plugin.el file that will be evaluated 
 at load time by
 JDE (still not sure what goes here, any suggestion?);
 3) It can assume that its libraries will be in the BeanShell 
 classpath;
 4) Based on (3), it can replace direct invocations of the JVM 
 with jde-eval
 calls (which should make it much faster)
 
 Problem with (4) is how to get the output to a compilation 
 buffer. When I
 launch a new JVM process myself, I can just redirect the output to any
 buffer I choose; if I launch the Java portion of the plug-in from the
 BeanShell, the output goes to stdout, which is captured as 
 lisp forms by the
 BeanShell, right? Sorry if that is a basic elisp question, 
 but how do I
 redirect that output to a compilation buffer? I guess I could 
 use that code
 you mentioned. I looked at the code at jde-checkstyle.el for 
 an example but
 my impression is that it launches an new JVM for each 
 invocation instead of
 using the BeanShell, is that correct? As a first pass it 
 should be OK for
 the plugin to do the same, but then we will be missing an 
 opportunity for
 code re-use.
 
 I agree with the others that the less elisp requirements we 
 have the larger
 will be the pool of plug-in contributors; I believe JUCI will 
 be able to
 help us with this part; maybe some elisp code generation 
 facility based on
 Java Reflection or config files could also complement it. 
 
 I think the final design goals should be:
 1) Drop-in install; just adding a jar or zip file to a 
 specific directory
 would be sufficient to install the package and integrate it 
 with JDEE menus;
 1.1) With a plug-in manager menu to enable/disable plug-ins;
 2) Minimal to none elisp code required. I think we will have 
 elisp-based
 plug-ins as well, but I expect most to be Java-based - just 
 because most
 JDEE users know Java much better than they know Lisp.
 
 What would be the list of resources available to the Java 
 code in the
 plug-ins? Any ideas on how to make Emacs/JDEE resources like 
 buffers, point
 position, region content, files in sourcepath, etc. easily 
 available? Maybe
 a basic class that they could extend? We have to define the container
 environment for the plug-ins.
 
 Finally, how do we manage different versions of common Java 
 libraries (like
 XML parsers) among plug-ins?
 
 Regards,
   Nascif



RE: Introspection based Java class browser....also demonstrates alittle bit of java and lisp integration...

2003-02-19 Thread Jayakrishnan Nair
Bernadl

I am in Buffer A.java. I use ecb-jde-display-class-at-point to show
methods of B.java. But I am still in A.java buffer. How do I tell ecb to
show the methods of A.java.

-Original Message-
From: Berndl, Klaus [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, February 19, 2003 2:07 AM
To: 'Sandip Chitale'; [EMAIL PROTECTED]
Subject: RE: Introspection based Java class browseralso demonstrates
alittle bit of java and lisp integration...

Hello,

attached is a small library ecb-jde.el which enables you to display
the contents of class at point in the method-window of ECB:

(defun ecb-jde-display-class-at-point ()
  Displays in the ECB-methods-buffer the contents \(methods, attributes
etc...) of the class which contains the definition of the \thing\
under
point \(this can be a variablename, classname, methodname,
attributename).
This function needs the same requirements to work as the
method-completion
feature of JDE \(see `jde-complete-at-point')!. The source-file is
searched
first in `jde-sourcepath', then in `jde-global-classpath', then in
$CLASSPATH,
then in current-directory.
  (interactive)
  ...
)

Just do:

1. Save ecb-jde.el somewhere in your load-path - probably best in the
   ecb-directory ;-)
2. Activate ECB
3. Open a java-source 
4. Load ecb-jde.el, e.g. with M-x load-library RET ecb RET
5. Try it.

Differences to Sandips code:

- uses ECB method-window to display the class-contents
- uses semantic for getting the contents of a class
- needs the source-file of the class to work

The first point can be seen as advantage or disadvantage ;-)

Especially the latter point is a disadvantage because it prevents
from working for classes which are only available as *.class-file or
within a jar-file...

But it demonstrates another elegant way of displaying things of a class
under point without needing java-introspection.

Klaus

-Original Message-
From: Sandip Chitale [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, February 19, 2003 7:32 AM
To: [EMAIL PROTECTED]
Subject: Introspection based Java class browseralso demonstrates
alittle bit of java and lisp integration...


To use :
 
1. unzip the attached zip at in the jde directory
2. Just put the following in your .emacs

(require 'jde-introspect)

Now put the point anywhere in Java buffer where you would
normally invoke jde-complete functions. Then type
(control c) (control v) (/) to see the java typeinfo
buffer.
 
For example:
 
With point in the 'System' below :
public class Foo {
 public static void main(String[] args) {
  System.out.println(args.length);
 }
}
here is what you get in a temp buffer. All the java class names are
hyperlinks (activated by
mouse or RET key).
class java.lang.System




RE: JDEE plugins (was JUCI)

2003-02-19 Thread James Higginbotham
snip/

 Until 
 recently I think Emacs has been unsurpassed as the editor to 
 use for Java, but I think some of the IDE's are catching up, 
 specifically IntelliJ which most people I work with use.  
 There are a few features there which I think would be easy to 
 implement as JDE plugins (especially using reflection) but as 
 Nascif says, I have neither the time or desire to brush up my 
 lisp skills to do so.  If it were possible to create some 
 basic interfaces that pure Java plugins could write to I 
 think that would go a long way towards keeping us able to 
 taunt other users with our editor. :)

I echo that remark.. I've been using JDE for several years and I have always been able 
to defend it vs. things like JBuilder, Visual Café, and to some extent, VAJ. But now, 
Eclipse and IntelliJ are blowing JDE away.. Now, I love Emacs and think its editor is 
far superior to all the rest. And until now, I've always selected Emacs + JDE over 
anything these IDEs offered - GUI Swing/servlet/ejb wizards, etc. Now, it seems JDE 
has reached the end of its extensibility until this plugin design is factored in. So, 
now that the plugin arch is being acknowledged as a must for JDE to grow as fast as 
the current IDEs, I have to ask:

1) What are the biggest hurdles to get JDE using this new plugin arch - people, time, 
technology?
2) Is going JDE, versus integrating the Emacs editor into today's IDEs, the right way 
to solve this problem (i.e. which is more work - redesigning JDE or bridging a native 
editor into today's popular IDEs to gain their infrastructure and Emacs's editing 
capabilities)?
3) Should JDE be examining and/or joining JSR-198 to see if we should be following 
this plugin API now, such that JDE will be compliant in the future? Thus, the JDE 
plugin code won't have to change again in a few months to allow JDE to take advantage 
of upcoming JSR198-compliant plugins?

Just throwing out some comments to get the ball rolling. It seems everyone is up for 
this idea, so my hope is to get us thinking in the proper frame of mind, as this 
plugin architecture may require enough redesign to rethink the way JDE works now. I'm 
obviously not a JDE team member, nor have I done much LISP, so some or all of my 
assumptions could be slightly-to-way off. All I know is that these current IDEs are 
giving JDE a run mostly because its written in the same language as the programmer 
uses, reducing the barrier to entry for extending it. This plugin idea is like the 
right thing to do (and not doing it would jeopardize JDE's effectiveness IMO), but I 
want to make sure that JDE is still focusing on the right approach, not just taking 
the approach because that's the way its been done in the past. 

Best Regards,
James



RE: Introspection based Java class browser....also demonstrates alittle bit of java and lisp integration...

2003-02-19 Thread Jayakrishnan Nair
OK I got the answer. When you use C-c . 1 and come back to the source
buffer, the methods window changes back to show the methods of the
buffer you are in.

-Original Message-
From: Jayakrishnan Nair [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, February 19, 2003 9:18 AM
To: [EMAIL PROTECTED]
Subject: RE: Introspection based Java class browseralso demonstrates
alittle bit of java and lisp integration...

Bernadl

I am in Buffer A.java. I use ecb-jde-display-class-at-point to show
methods of B.java. But I am still in A.java buffer. How do I tell ecb to
show the methods of A.java.

-Original Message-
From: Berndl, Klaus [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, February 19, 2003 2:07 AM
To: 'Sandip Chitale'; [EMAIL PROTECTED]
Subject: RE: Introspection based Java class browseralso demonstrates
alittle bit of java and lisp integration...

Hello,

attached is a small library ecb-jde.el which enables you to display
the contents of class at point in the method-window of ECB:

(defun ecb-jde-display-class-at-point ()
  Displays in the ECB-methods-buffer the contents \(methods, attributes
etc...) of the class which contains the definition of the \thing\
under
point \(this can be a variablename, classname, methodname,
attributename).
This function needs the same requirements to work as the
method-completion
feature of JDE \(see `jde-complete-at-point')!. The source-file is
searched
first in `jde-sourcepath', then in `jde-global-classpath', then in
$CLASSPATH,
then in current-directory.
  (interactive)
  ...
)

Just do:

1. Save ecb-jde.el somewhere in your load-path - probably best in the
   ecb-directory ;-)
2. Activate ECB
3. Open a java-source 
4. Load ecb-jde.el, e.g. with M-x load-library RET ecb RET
5. Try it.

Differences to Sandips code:

- uses ECB method-window to display the class-contents
- uses semantic for getting the contents of a class
- needs the source-file of the class to work

The first point can be seen as advantage or disadvantage ;-)

Especially the latter point is a disadvantage because it prevents
from working for classes which are only available as *.class-file or
within a jar-file...

But it demonstrates another elegant way of displaying things of a class
under point without needing java-introspection.

Klaus

-Original Message-
From: Sandip Chitale [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, February 19, 2003 7:32 AM
To: [EMAIL PROTECTED]
Subject: Introspection based Java class browseralso demonstrates
alittle bit of java and lisp integration...


To use :
 
1. unzip the attached zip at in the jde directory
2. Just put the following in your .emacs

(require 'jde-introspect)

Now put the point anywhere in Java buffer where you would
normally invoke jde-complete functions. Then type
(control c) (control v) (/) to see the java typeinfo
buffer.
 
For example:
 
With point in the 'System' below :
public class Foo {
 public static void main(String[] args) {
  System.out.println(args.length);
 }
}
here is what you get in a temp buffer. All the java class names are
hyperlinks (activated by
mouse or RET key).
class java.lang.System



Re: Introspection based Java class browser....also demonstrates alittle bit of java and lisp integration...

2003-02-19 Thread Andrew Hyatt

This is interesting.  I know you've mentioned it before.   If this
would help the JDE project, I could do this fairly easily.  We have
the class parsing code already, we just have to tie it into semantic.
But since we are not using the latest Semantic, and as far as I know
we have no immediate need to change the way we do introspection, for
the time being, I will hold off on doing this.


Eric M. Ludlam [EMAIL PROTECTED] writes:

 Hi Klaus,

   Your last point here about semantic not being able to look into a
 .class file is valid, however the CVS version semantic 2.0 semanticdb
 subsystem was recently enhanced to be extensible beyond just typical
 language parsers.  The idea was Paul's originally, and I expanded on
 that.

   The basic premise is to sub-class a semanticdb class, and implement
 all the search methods.  Your search methods can then call external
 programs, or whatever you like before returning a results table.
 There is an example that will search all Emacs Lisp symbols inside
 Emacs, regardless of having the sources available.  The only part
 that needs to be done to make your new program support .class files
 is to extend the database.

   I can provide you with more details and perhaps start the process if
 you would like to try extending semanticdb.

 Have fun
 Eric

 -- 
   Eric Ludlam: [EMAIL PROTECTED], [EMAIL PROTECTED]
Home: http://www.ludlam.netSiege: www.siege-engine.com
 Emacs: http://cedet.sourceforge.net   GNU: www.gnu.org




RE: JDEE plugins (was JUCI)

2003-02-19 Thread Nascif Abousalh-Neto
Hi James,
Thanks for your e-mail, and agreed in all points. I didn't realize
that there is a JSR going on for plug-ins, it is really a good idea to take
a look at it and try to conform. Once I thought about peeking one of the
more mature plug-in APIs like OpenTools for JBuilder and try to emulate, so
that we could re-use their already made plug-ins. But that are problems with
that - you're now tied to a commercial API - so a JSR-compliant API makes
much more sense.

As for your questions:

1) I would say people and technology are the major problems (we don't have a
deadline). From my little experience in this area, anything other than very
trivial plug-ins (basically launching a Java app to process the current
buffer and capture the results) requires a fair amount of elisp knowledge.
And as far as technology, as we discussed before in this list, it is quite
hard to get the Java code to drive the control flow (allowing it to change
the contents of the buffer, change the cursor position, open new windows,
etc.). It can be done but it depends on interprocess communications, which
adds a lot of complexity. I used gnuclient for that purposes, Paul used
direct socket communication in the JDEbug. The JUCI package will I believe
address this problem in a generic way.

2) I think extending JDE is the way to go. Note that it is quite easy,
today, to integrate Emacs in many IDEs by using gnuclient. 

3) As I said above, this looks like a great idea. It may be the case that we
won't be able for performance or other reasons to have a 100% Pure Java
plug-in API; but if we can, by all means it should follow a standard.

Regards,
Nascif

 -Original Message-
 From: James Higginbotham [mailto:[EMAIL PROTECTED]] 
 Sent: Wednesday, February 19, 2003 12:21 PM
 To: Nic Pottier; Abousalh-Neto, Nascif [NCRTP:3X20:EXCH]; 
 Paul Kinnucan
 Cc: [EMAIL PROTECTED]
 Subject: RE: JDEE plugins (was JUCI)
 
 
 snip/
 
  Until
  recently I think Emacs has been unsurpassed as the editor to 
  use for Java, but I think some of the IDE's are catching up, 
  specifically IntelliJ which most people I work with use.  
  There are a few features there which I think would be easy to 
  implement as JDE plugins (especially using reflection) but as 
  Nascif says, I have neither the time or desire to brush up my 
  lisp skills to do so.  If it were possible to create some 
  basic interfaces that pure Java plugins could write to I 
  think that would go a long way towards keeping us able to 
  taunt other users with our editor. :)
 
 I echo that remark.. I've been using JDE for several years 
 and I have always been able to defend it vs. things like 
 JBuilder, Visual Café, and to some extent, VAJ. But now, 
 Eclipse and IntelliJ are blowing JDE away.. Now, I love Emacs 
 and think its editor is far superior to all the rest. And 
 until now, I've always selected Emacs + JDE over anything 
 these IDEs offered - GUI Swing/servlet/ejb wizards, etc. Now, 
 it seems JDE has reached the end of its extensibility until 
 this plugin design is factored in. So, now that the plugin 
 arch is being acknowledged as a must for JDE to grow as fast 
 as the current IDEs, I have to ask:
 
 1) What are the biggest hurdles to get JDE using this new 
 plugin arch - people, time, technology?
 2) Is going JDE, versus integrating the Emacs editor into 
 today's IDEs, the right way to solve this problem (i.e. which 
 is more work - redesigning JDE or bridging a native editor 
 into today's popular IDEs to gain their infrastructure and 
 Emacs's editing capabilities)?
 3) Should JDE be examining and/or joining JSR-198 to see if 
 we should be following this plugin API now, such that JDE 
 will be compliant in the future? Thus, the JDE plugin code 
 won't have to change again in a few months to allow JDE to 
 take advantage of upcoming JSR198-compliant plugins?
 
 Just throwing out some comments to get the ball rolling. It 
 seems everyone is up for this idea, so my hope is to get us 
 thinking in the proper frame of mind, as this plugin 
 architecture may require enough redesign to rethink the way 
 JDE works now. I'm obviously not a JDE team member, nor have 
 I done much LISP, so some or all of my assumptions could be 
 slightly-to-way off. All I know is that these current IDEs 
 are giving JDE a run mostly because its written in the same 
 language as the programmer uses, reducing the barrier to 
 entry for extending it. This plugin idea is like the right 
 thing to do (and not doing it would jeopardize JDE's 
 effectiveness IMO), but I want to make sure that JDE is still 
 focusing on the right approach, not just taking the approach 
 because that's the way its been done in the past. 
 
 Best Regards,
 James
 



RE: JDEE plugins (was JUCI)

2003-02-19 Thread Nascif Abousalh-Neto
Well, looks like I jumped the gun. There is not API to look at yet for this
JSR 198.

I suggest we just move ahead (who know long it will take to get to a point
where actual APIs are defined, this looks like a very hot politic issue as
well http://news.com.com/2100-1001-978445.html) and later consider a move to
conform to whatever they define. In the mean time we will learn a lot :-)


 -Original Message-
 From: James Higginbotham [mailto:[EMAIL PROTECTED]] 
 Sent: Wednesday, February 19, 2003 12:21 PM
 To: Nic Pottier; Abousalh-Neto, Nascif [NCRTP:3X20:EXCH]; 
 Paul Kinnucan
 Cc: [EMAIL PROTECTED]
 Subject: RE: JDEE plugins (was JUCI)
 
 
 snip/
 
  Until
  recently I think Emacs has been unsurpassed as the editor to 
  use for Java, but I think some of the IDE's are catching up, 
  specifically IntelliJ which most people I work with use.  
  There are a few features there which I think would be easy to 
  implement as JDE plugins (especially using reflection) but as 
  Nascif says, I have neither the time or desire to brush up my 
  lisp skills to do so.  If it were possible to create some 
  basic interfaces that pure Java plugins could write to I 
  think that would go a long way towards keeping us able to 
  taunt other users with our editor. :)
 
 I echo that remark.. I've been using JDE for several years 
 and I have always been able to defend it vs. things like 
 JBuilder, Visual Café, and to some extent, VAJ. But now, 
 Eclipse and IntelliJ are blowing JDE away.. Now, I love Emacs 
 and think its editor is far superior to all the rest. And 
 until now, I've always selected Emacs + JDE over anything 
 these IDEs offered - GUI Swing/servlet/ejb wizards, etc. Now, 
 it seems JDE has reached the end of its extensibility until 
 this plugin design is factored in. So, now that the plugin 
 arch is being acknowledged as a must for JDE to grow as fast 
 as the current IDEs, I have to ask:
 
 1) What are the biggest hurdles to get JDE using this new 
 plugin arch - people, time, technology?
 2) Is going JDE, versus integrating the Emacs editor into 
 today's IDEs, the right way to solve this problem (i.e. which 
 is more work - redesigning JDE or bridging a native editor 
 into today's popular IDEs to gain their infrastructure and 
 Emacs's editing capabilities)?
 3) Should JDE be examining and/or joining JSR-198 to see if 
 we should be following this plugin API now, such that JDE 
 will be compliant in the future? Thus, the JDE plugin code 
 won't have to change again in a few months to allow JDE to 
 take advantage of upcoming JSR198-compliant plugins?
 
 Just throwing out some comments to get the ball rolling. It 
 seems everyone is up for this idea, so my hope is to get us 
 thinking in the proper frame of mind, as this plugin 
 architecture may require enough redesign to rethink the way 
 JDE works now. I'm obviously not a JDE team member, nor have 
 I done much LISP, so some or all of my assumptions could be 
 slightly-to-way off. All I know is that these current IDEs 
 are giving JDE a run mostly because its written in the same 
 language as the programmer uses, reducing the barrier to 
 entry for extending it. This plugin idea is like the right 
 thing to do (and not doing it would jeopardize JDE's 
 effectiveness IMO), but I want to make sure that JDE is still 
 focusing on the right approach, not just taking the approach 
 because that's the way its been done in the past. 
 
 Best Regards,
 James
 



RE: JDEE plugins (was JUCI)

2003-02-19 Thread James Higginbotham
Ah, thanks for the information. I actually first heard of the JSR from the JLense 
team, which produced a Swing equiv to the Eclipse APIs in an effort to produce a more 
J2SDK-friendly approach to writing rich client applications. It seems they are on the 
JSR in an attempt to better understand how their framework can support the JSR in the 
future. For now, looking at Eclipse and JBuilder APIs will probably expose the most 
common needs for JDE, and if the JSR succeeds, you can add the support then. Thanks 
for the news link, it was quite informative!
 
James

-Original Message-
From: Nascif Abousalh-Neto [mailto:[EMAIL PROTECTED]] 
Sent: Wednesday, February 19, 2003 11:47 AM
To: James Higginbotham; Nic Pottier; Paul Kinnucan
Cc: [EMAIL PROTECTED]
Subject: RE: JDEE plugins (was JUCI)



Well, looks like I jumped the gun. There is not API to look at yet for this JSR 198. 

I suggest we just move ahead (who know long it will take to get to a point where 
actual APIs are defined, this looks like a very hot politic issue as well 
http://news.com.com/2100-1001-978445.html) and later consider a move to conform to 
whatever they define. In the mean time we will learn a lot :-)


 -Original Message- 
 From: James Higginbotham [mailto:[EMAIL PROTECTED]] 
 Sent: Wednesday, February 19, 2003 12:21 PM 
 To: Nic Pottier; Abousalh-Neto, Nascif [NCRTP:3X20:EXCH]; 
 Paul Kinnucan 
 Cc: [EMAIL PROTECTED] 
 Subject: RE: JDEE plugins (was JUCI) 
 
 
 snip/ 
 
  Until 
  recently I think Emacs has been unsurpassed as the editor to 
  use for Java, but I think some of the IDE's are catching up, 
  specifically IntelliJ which most people I work with use.  
  There are a few features there which I think would be easy to 
  implement as JDE plugins (especially using reflection) but as 
  Nascif says, I have neither the time or desire to brush up my 
  lisp skills to do so.  If it were possible to create some 
  basic interfaces that pure Java plugins could write to I 
  think that would go a long way towards keeping us able to 
  taunt other users with our editor. :) 
 
 I echo that remark.. I've been using JDE for several years 
 and I have always been able to defend it vs. things like 
 JBuilder, Visual Café, and to some extent, VAJ. But now, 
 Eclipse and IntelliJ are blowing JDE away.. Now, I love Emacs 
 and think its editor is far superior to all the rest. And 
 until now, I've always selected Emacs + JDE over anything 
 these IDEs offered - GUI Swing/servlet/ejb wizards, etc. Now, 
 it seems JDE has reached the end of its extensibility until 
 this plugin design is factored in. So, now that the plugin 
 arch is being acknowledged as a must for JDE to grow as fast 
 as the current IDEs, I have to ask: 
 
 1) What are the biggest hurdles to get JDE using this new 
 plugin arch - people, time, technology? 
 2) Is going JDE, versus integrating the Emacs editor into 
 today's IDEs, the right way to solve this problem (i.e. which 
 is more work - redesigning JDE or bridging a native editor 
 into today's popular IDEs to gain their infrastructure and 
 Emacs's editing capabilities)? 
 3) Should JDE be examining and/or joining JSR-198 to see if 
 we should be following this plugin API now, such that JDE 
 will be compliant in the future? Thus, the JDE plugin code 
 won't have to change again in a few months to allow JDE to 
 take advantage of upcoming JSR198-compliant plugins? 
 
 Just throwing out some comments to get the ball rolling. It 
 seems everyone is up for this idea, so my hope is to get us 
 thinking in the proper frame of mind, as this plugin 
 architecture may require enough redesign to rethink the way 
 JDE works now. I'm obviously not a JDE team member, nor have 
 I done much LISP, so some or all of my assumptions could be 
 slightly-to-way off. All I know is that these current IDEs 
 are giving JDE a run mostly because its written in the same 
 language as the programmer uses, reducing the barrier to 
 entry for extending it. This plugin idea is like the right 
 thing to do (and not doing it would jeopardize JDE's 
 effectiveness IMO), but I want to make sure that JDE is still 
 focusing on the right approach, not just taking the approach 
 because that's the way its been done in the past. 
 
 Best Regards, 
 James 
 




RE: JDEE plugins (was JUCI)

2003-02-19 Thread Paul Kinnucan
Hi,

You and others have raised two related but separate issues: one is the
need for plugin-in support and the other is a need for a way to extend
the JDEE that requires only Java programming skills. My proposal
addresses the first. I believe Nick Sieger's JUCI addresses the
second. Perhaps Nick could chime in and explain how.

Paul


James Higginbotham writes:
  snip/
  
   Until 
   recently I think Emacs has been unsurpassed as the editor to 
   use for Java, but I think some of the IDE's are catching up, 
   specifically IntelliJ which most people I work with use.  
   There are a few features there which I think would be easy to 
   implement as JDE plugins (especially using reflection) but as 
   Nascif says, I have neither the time or desire to brush up my 
   lisp skills to do so.  If it were possible to create some 
   basic interfaces that pure Java plugins could write to I 
   think that would go a long way towards keeping us able to 
   taunt other users with our editor. :)
  
  I echo that remark.. I've been using JDE for several years and I have always been 
 able to defend it vs. things like JBuilder, Visual Café, and to some extent, VAJ. But 
 now, Eclipse and IntelliJ are blowing JDE away.. Now, I love Emacs and think its 
 editor is far superior to all the rest. And until now, I've always selected Emacs + 
 JDE over anything these IDEs offered - GUI Swing/servlet/ejb wizards, etc. Now, it 
 seems JDE has reached the end of its extensibility until this plugin design is 
 factored in. So, now that the plugin arch is being acknowledged as a must for JDE to 
 grow as fast as the current IDEs, I have to ask:
  
  1) What are the biggest hurdles to get JDE using this new plugin arch - people, 
 time, technology?
  2) Is going JDE, versus integrating the Emacs editor into today's IDEs, the right 
 way to solve this problem (i.e. which is more work - redesigning JDE or bridging a 
 native editor into today's popular IDEs to gain their infrastructure and Emacs's 
 editing capabilities)?
  3) Should JDE be examining and/or joining JSR-198 to see if we should be following 
 this plugin API now, such that JDE will be compliant in the future? Thus, the JDE 
 plugin code won't have to change again in a few months to allow JDE to take advantage 
 of upcoming JSR198-compliant plugins?
  
  Just throwing out some comments to get the ball rolling. It seems everyone is up for 
 this idea, so my hope is to get us thinking in the proper frame of mind, as this 
 plugin architecture may require enough redesign to rethink the way JDE works now. I'm 
 obviously not a JDE team member, nor have I done much LISP, so some or all of my 
 assumptions could be slightly-to-way off. All I know is that these current IDEs are 
 giving JDE a run mostly because its written in the same language as the programmer 
 uses, reducing the barrier to entry for extending it. This plugin idea is like the 
 right thing to do (and not doing it would jeopardize JDE's effectiveness IMO), but I 
 want to make sure that JDE is still focusing on the right approach, not just taking 
 the approach because that's the way its been done in the past. 
  
  Best Regards,
  James




RE: JDEE plugins (was JUCI)

2003-02-19 Thread Paul Kinnucan
Nascif Abousalh-Neto writes:
  Hi Paul,
  
  Just to recap:
  1) The plug-in will follow the proposed directory structure;
  2) It will have a lisp/plugin.el file that will be evaluated at load time by
  JDE (still not sure what goes here, any suggestion?);

plugin.el might be useful in conjunction with an autoload.el to
avoid loading the entire plugin before it is used. On JDEE startup,
if there is a plugin.el and an autoload.el file in the plugin's
lisp directory, the JDEE itself will only load and evaluate those two files and
add the plugin's lisp directory to the Emacs load-path. In this
instance,  plugin.el would be a bootstrap file that did the 
minimum things necessary to make the plugin visible, i.e., add
its (autoloaded) commands to the Plugins submenu. The autoload.el
file would cause Emacs itself to load any remaining Lisp files in the 
directory needed to support the plugin's commands.


  3) It can assume that its libraries will be in the BeanShell classpath;

Yes.

  4) Based on (3), it can replace direct invocations of the JVM with jde-eval
  calls (which should make it much faster)
  

Yes.

  Problem with (4) is how to get the output to a compilation buffer. When I
  launch a new JVM process myself, I can just redirect the output to any
  buffer I choose; if I launch the Java portion of the plug-in from the
  BeanShell, the output goes to stdout, which is captured as lisp forms by the
  BeanShell, right? Sorry if that is a basic elisp question, but how do I
  redirect that output to a compilation buffer? I guess I could use that code
  you mentioned. I looked at the code at jde-checkstyle.el for an example but
  my impression is that it launches an new JVM for each invocation instead of
  using the BeanShell, is that correct? As a first pass it should be OK for
  the plugin to do the same, but then we will be missing an opportunity for
  code re-use.
  

The JDEE's compile server and ant server each uses its own compilation-mode
buffer to display output from the BeanShell. This is in addition to the
comint (interactive user) buffer that is used to start up the BeanShell.
The reason that it is possible to have multiple buffers interacting
with the BeanShell is that Emacs allows Lisp code to specify and
change dynamically the process output handler. The compile server and
the ant server, after sending a Java expression to the BeanShell,
temporarily replace the standard output handler with their own handler
to handle the result of evaluating the expression. My intention is
to write an eieio class called bsh-compilation-output-buffer that
encapsulates this technique. This would make it trivial for 
Java plugins to create compilation-style buffers for handling compilation-like
output from Java.



  I agree with the others that the less elisp requirements we have the larger
  will be the pool of plug-in contributors; I believe JUCI will be able to
  help us with this part; maybe some elisp code generation facility based on
  Java Reflection or config files could also complement it. 
  
  I think the final design goals should be:
  1) Drop-in install; just adding a jar or zip file to a specific directory
  would be sufficient to install the package and integrate it with JDEE menus;

I will support jar/zip file plugins. My plan for integrating with
menus is for the plugin.el file to invoke a function called
jde-plugin-menu that would specify a menu item or submenu to appear on
the Plugin menu where the argument would be a standard Emacs easymenu
menu specification that specifies the item's label, command,
enabling/disabling conditions, format (e.g., checkbox, radiobutton),
etc.

  1.1) With a plug-in manager menu to enable/disable plug-ins;

Have to think about this.

  2) Minimal to none elisp code required. I think we will have elisp-based
  plug-ins as well, but I expect most to be Java-based - just because most
  JDEE users know Java much better than they know Lisp.
  
  What would be the list of resources available to the Java code in the
  plug-ins? Any ideas on how to make Emacs/JDEE resources like buffers, point
  position, region content, files in sourcepath, etc. easily available? Maybe
  a basic class that they could extend? We have to define the container
  environment for the plug-ins.
  

I'll depend on somebody else to do this.

  Finally, how do we manage different versions of common Java libraries (like
  XML parsers) among plug-ins?
  

Good question.

- Paul
 




Newbie Install

2003-02-19 Thread Jaime Vasquez
Hello to all.

I have been watching some of the email traffic on this newsletter and
I have yet to see a newbie question. Please forgive me if I am asking
the wrong forum.

I am trying to setup XEmacs as my Java IDE and to that effect I have
installed the JDE.  My current configuration is as follows:

Linux:2.4 from SuSE 7.1
XEmacs21.4
JDE   1.43*
eieio 1.04*
elib  1.10*
semantic  1.17*
speedbar  1.26*

*(version information reported by the package admin tool)

I am running this on a headless multiprocessor pentium, to which I
login from a Windows 2000 box running Reflection X.

I have been able to edit, compile and run my java source.  However I
have not been able to debug.

I am using JDEbug with the following configuration:

(custom-set-variables
 '(jde-db-classic-mode-vm t)
 '(jde-jdk-registry (quote ((1.4.1 . /usr/local/java/jdk
 '(jde-sourcepath (quote (~/companyx/test)))
 '(jde-debugger (quote (JDEbug

Every time I try to set a breakpoint I get the following error in the
minibuffer:

(Symbol's function definition is void: line-beginning-position)

When I try to exit the JDEbug I get the following error in the
minibuffer:

(Symbol's value as variable is void: old-assoc)

When I start the debugger everything seems to work fine, the following
is a capture of the output

*** Debugger Output for Process companyx.test.CThread(1) ***

Debugger waiting for Emacs to connect to app SIO port 33134.
vm started...
All threads suspended...
Launch command line:
  java -classic  companyx.test.CThread

Emacs connected to standard IO port 33134 for process companyx.test.CThread.
VM options: '-classic '
Launched VM Java Debug Interface (Reference Implementation) version 1.4
Java Debug Wire Protocol (Reference Implementation) version 1.4
JVM Debug Interface version 1.2
JVM version 1.4.1 (Java HotSpot(TM) Client VM, mixed mode)
initSIOConnect: starting standard I/O handshake.
initSIOConnect: starting SIO connect thread.
Running companyx.test.CThread.
Debugger connected to standard I/O socket.

I have read all the documentation that I can find.  Please any help
would be greatly appreciated!

Jaime




RE: JDEE plugins (was JUCI)

2003-02-19 Thread Nick Sieger
 MP == Mark Pollack [EMAIL PROTECTED] writes:

MP Hi, Just my two cents, I'm a lisp-wimp as I am sure are many of
MP the users of JDEE, but a good Java programmer.  If there was some
MP way that I could write JDEE extensions in Java for at least some
MP subset of plug-in functionality that would be great since I never
MP seem to find the time to really learn lisp.  I realize it might be
MP too much to accommodate us lisp-wimps, but just keep it in mind if
MP it turns out to be not such a big deal to go in this direction.

One of the things I think it would be easy to do early on is providing
a command that prompts for a Java interface and will code-generate the
elisp functions to match up with and be able to invoke the java
interface.  I think a good plugin architecture for the JDE will allow
non-Elispers to get along with a minimal knowledge.

There could be a fair amount of automation that, given a minimal
amount of initial java code, could:

1.  Generate the Elisp code.
2.  Package/jar everything up according to the JDEE's plugin package
structure.

Also, over time, it would be nice to flesh out some standard JDEE Java
APIs for prompting for user input, so there would be virtually no need
at all to write custom elisp!

/Nick




RE: JDEE plugins (was JUCI)

2003-02-19 Thread Nick Sieger
 PK == Paul Kinnucan [EMAIL PROTECTED] writes:

[...]


 4) Based on (3), it can replace direct invocations of the JVM with
jde-eval
 calls (which should make it much faster)


PK Yes.

 Problem with (4) is how to get the output to a compilation
 buffer. When I launch a new JVM process myself, I can just redirect
 the output to any buffer I choose; if I launch the Java portion of
 the plug-in from the BeanShell, the output goes to stdout, which is
 captured as lisp forms by the BeanShell, right? Sorry if that is a
 basic elisp question, but how do I redirect that output to a
 compilation buffer? I guess I could use that code you mentioned. I
 looked at the code at jde-checkstyle.el for an example but my
 impression is that it launches an new JVM for each invocation
 instead of using the BeanShell, is that correct? As a first pass it
 should be OK for the plugin to do the same, but then we will be
 missing an opportunity for code re-use.


Part of what you're searching for here doesn't really exist yet, at
least not in a general form.  As part of the discussion for what
constitutes a pure Java API for allowing plugins to interact with
Emacs we would want to include this specific feature (stream text to a
compilation output buffer).

PK The JDEE's compile server and ant server each uses its own
PK compilation-mode buffer to display output from the BeanShell. This
PK is in addition to the comint (interactive user) buffer that is
PK used to start up the BeanShell.  The reason that it is possible to
PK have multiple buffers interacting with the BeanShell is that Emacs
PK allows Lisp code to specify and change dynamically the process
PK output handler. The compile server and the ant server, after
PK sending a Java expression to the BeanShell, temporarily replace
PK the standard output handler with their own handler to handle the
PK result of evaluating the expression. My intention is to write an
PK eieio class called bsh-compilation-output-buffer that encapsulates
PK this technique. This would make it trivial for Java plugins to
PK create compilation-style buffers for handling compilation-like
PK output from Java.

Critical to this technique I think will be some sort of implementation
of java.io.InputStream/OutputStream or java.io.Reader/Writer on the
Java side which would trigger that standard output handler switch.
Could we also use a separate socket for this?  Java could open a
server socket and Emacs could connect to it to download the
compilation output and stream it to a buffer.

[...]

 2) Minimal to none elisp code required. I think we will have
elisp-based
 plug-ins as well, but I expect most to be Java-based - just because
 most JDEE users know Java much better than they know Lisp.

 What would be the list of resources available to the Java code in
 the plug-ins? Any ideas on how to make Emacs/JDEE resources like
 buffers, point position, region content, files in sourcepath,
 etc. easily available? Maybe a basic class that they could extend?
 We have to define the container environment for the plug-ins.


PK I'll depend on somebody else to do this.

I'd be happy to take suggestions and lead up an effort to create the
Java plugin API.  Why don't people start listing off pieces of
functionality that we can start gathering into specifications as Java
interfaces.  Those interfaces, after iterating on their contents could
become the initial versions of that API.

 Finally, how do we manage different versions of common Java
 libraries (like XML parsers) among plug-ins?


PK Good question.

Maven (http://jakarta.apache.org/turbine/maven/) has its plugins
declare library dependencies, and even allows you to have them
downloaded for you automatically!  We should have a look at the Maven
codebase for ideas in that area.  At a minimum it would be nice to
take advantage of the library repository that's been set up already (I
believe it's on ibiblio.org).

/Nick




RE: JDEE plugins (was JUCI)

2003-02-19 Thread Nick Sieger
 PK == Paul Kinnucan [EMAIL PROTECTED] writes:

PK Hi, You and others have raised two related but separate issues:
PK one is the need for plugin-in support and the other is a need for
PK a way to extend the JDEE that requires only Java programming
PK skills. My proposal addresses the first. I believe Nick Sieger's
PK JUCI addresses the second. Perhaps Nick could chime in and explain
PK how.

So far, what I've done with JUCI allows Emacs and Java to communicate
in a consistent and general way, providing a layer of abstraction
above raw lisp forms printed on standard output, beanshell execution
and the like.  My current code in the JDEE CVS (lisp/jde-juci.el) has
some very rudimentary examples (mostly unit tests), so what's there is
just a shell at this point.  Although it's quite easy to envision
what's coming next, namely, a general interface that Java plugins
could code to for receiving input and sending output, much along the
lines that Nic Pottier has already started to enumerate.  Let's
continue to gather and take inspiration from other plugin APIs as to
what sort of pieces of data need to be exchanged.  Where possible,
talk in terms of emacs interface objects (buffers, windows, frames,
region, point, etc.) but also express them in terms of what a Java
interface might look like.  What are the logical groupings for
retrieving certain kinds of information?  What would you name an
interface for fetching the current buffer, the current buffer file,
the current class, etc.?

From my perspective, it'll be interesting to flesh these issues out
further.  Following a standard API/JSR would be ideal, but if that
doesn't even exist yet, it will be hard.  Also, it's going to be
difficult to abstract away Emacs' tried-and-true concepts like
buffers, windows, etc.  The API is probably going to end up having
Java objects called Buffer, Window, Frame, etc.

/Nick

P.S.  For some technical notes on JUCI, have a look at the file
java/src/jde/juci/package.html in CVS, or ask me and I'll send you a
copy.




RE: JDEE plugins (was JUCI)

2003-02-19 Thread Nascif Abousalh-Neto
Hi Nick,

 Where possible, talk in terms of emacs 
 interface objects (buffers, windows, frames, region, point, 
 etc.) but also express them in terms of what a Java interface 
 might look like.  What are the logical groupings for 
 retrieving certain kinds of information?  What would you name 
 an interface for fetching the current buffer, the current 
 buffer file, the current class, etc.?

I attached the module that implements the generic Java-Emacs interface in
the jde-transmogrify package. It was done to mirror the Transmogrify Hook
interface, which I believe was derived from the JBuilder plug-in interface.
We could use it as a starting point, as it is part of a working plug-in
(in the sense of a Java-based add-on to JDEE). 

The relevant methods (that Java code can use to change the Emacs
environment) are:

   42:  public void showReferencesSourced(IDefinition definition) {
   57:  public void showReferencesNonsourced(IDefinition definition) {
   67:  public void openFile(String sourceFileName)
   78:  public File[] getFiles()
   90:  public String getCurrentFile()
  102:  public String getUserInput(String prompt, String title)
  108:  public void displayMessage(String title, String message)
  113:  public void displayException(Exception e, String description) {
  135:  public String getText()
  146:  public String getLine(int lineNumber) 
  159:  public void selectText(int startLineNumber, 
  177:  public void selectText(int startPos, int endPos)
  188:  public void deSelectText()
  198:  public String getSelectedText()
  208:  public Enumeration getSelectedLines()
  219:  public int getCaretLineNumber()
  230:  public int getCaretOffset()
  242:  public int getCaretPos()
  248:  public int getSelectionStart() 
  254:  public int getSelectionEnd() 
  266:  public void setCaretPos(int lineNumber, int offset)
  279:  public void setCaretPos(int pos) 


Regards,
  Nascif




EmacsHook.java
Description: Binary data


Re: JDEE plugins (was JUCI)

2003-02-19 Thread Galen Boyer
On Wed, 19 Feb 2003, [EMAIL PROTECTED] wrote:

 this plugin architecture may require enough redesign to rethink the
 way JDE works now. 

One thing that seems prevalent in these thoughts is that the JDE is the
central point of focus for this plugin architecture and the plugin
architecture is hardwired to the JDE only.  This obviously is
understandable, because, many plugins are specific for enhancing IDEs.
But there are plugins, ant, for instance, which are used outside of java
IDEs.

Would it make more sense to think of plugins as plugins to Emacs and the
JDE as a client of the functionality newly present in Emacs?  I'm
worried that we are making the JDE an everything java server for
Emacs, when shouldn't it be just a client to the elisp version of the
everything java VM (where the VM might be the beanshell)?

To say in a different way, it seems that Emacs should be enveloping a
JVM, and supporting plugin architecture irrespective of the JDE.  Then,
the JDE should be utilizing this new elisp functionality.  Then, to get
new java functionality would be like going to
http://anc.ed.ac.uk/~stephen/emacs/ell.html and getting a new cool elisp
package to add to your Emacs experience.  So what its written in java,
just plug it in to Emacs and it has an elisp interface for you.

Okay, I know, I'm probably smoking something, ...

-- 
Galen deForest Boyer
Sweet dreams and flying machines in pieces on the ground.