Re: Proposed New Structure (starter for 10)
[email protected] (Phillip Lord) Sat, 15 Aug 2015 10:05:31 +0100
| Newsgroups | gmane.emacs.jdee.devel |
|---|---|
| Message-ID | <[email protected]> |
Przemysław Wojnowski <[email protected]> writes: > To begin with. My project vision is that JDEE will be (at least) something > IDE-like, which means that it would be: > 1. Project oriented (contrary to file oriented). It should be good enough to > work on enterprise Java projects - create and load them. > 2. Have core features: > - automatic configuration of classpaths (source, compile, test, runtime) > from build tools (Maven, Gradle, etc.) > - code completion > - jumping around the code (also into libraries, when code is available) > - viewing javadocs > - running app (static and in a container - e.g. Tomcat) > - running tests > - finding usages of fields, methods, classes > - constant compilation > - debugger > - extendibility (through plugins) > - basic refactoring support > > I'm not interested in working on a major-mode just to open a Java file from > time to time - java-mode is good enough for that purpose. > > It's just to be clear what my goals are. If your's are different then it would > be good to know sooner than later. :-) My starting point is that I would rather have a major-mode to open files and does nothing else, but is installable via package.el. This is the most critical change that we must achieve. Until this happens JDEE is effectively junk. After this my vision is subtly different. I believe that JDEE should be relatively small and do as little as possible, while allowing Emacs and the environment to do most or all of the things that you speak off. So, project support. Eric has already mentioned EDE. Combine this with rapid navigation tools like projectile, and we should have what we need. The rest of the project support can be binned. I believe we need connectivity to the JVM. I suggest nrepl for this, as it allows us to connect, and gives structured access, an interactive repl (albeit Clojure based rather than bsh which looks like Java) and an independent channel for tooling. This already exists. My starter for 10 just adds maven support (will when it works!). Automatic configuration of classpaths. Once we have JVM connectivity, I believe, JDEE does not need configuration of the classpath. Rather Maven or other build tools we support will do this. JDEE then should not need to know where the classes are. Auto-completion -- we should support completion-at-point-function, using a connection to the JVM, and a Java (or JVM) based completion library. Actual completion can be done by company, auto-complete or what ever. Source browsing -- we use the JVM connection to a build tool to find the source, combined with EDE and projectile. Viewing Javadocs. We launch a web browser. EWW support for Javadoc (or vice versa) would be fun. Object/Class introspection -- CIDER already does this. Find usages of -- backend middleware. Hopefully we can plugin to helm and the like. Constant Compilation (and class reloading) -- no idea how to achieve this, but I think it is not an Emacs issue, I think it is a build tool and repl issue. We should work with CIDER and ENSIME to achieve this, as they would probably both like it. Extensibility -- no support. I mean, Emacs is extensible by definition. An nrepl backend is extensible by definition. We just follow the conventions for packaging, and JDEE will fit straight into the Emacs ecosystem. JDEE needs to add nothing. My point is, JDEE has been a fore-runner in many of these things, but is now carrying a lot of baggage. A lot of it's features now shadow more general implementations. We need to throw out everything but the glue that we need. As I said before, though, I only have a limited time to work on this. I think my structure makes sense, and will take the least effort. But I do not even have a lot of time to convince people, let alone code it. I'll get my core idea up there as a starting point. But this is probably where I will leave it. If no one takes it up, it's not going anywhere. Phil ------------------------------------------------------------------------------ _______________________________________________ jdee-devel mailing list [email protected] https://lists.sourceforge.net/lists/listinfo/jdee-devel