Re: Proposed New Structure (starter for 10)
Lee Hinman <[email protected]> Sun, 16 Aug 2015 13:31:16 -0600
| Newsgroups | gmane.emacs.jdee.devel |
|---|---|
| Message-ID | <[email protected]> |
Phillip Lord writes: > 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. +1, having to manually install is a non-starter for a lot of people. Having an actual package so people can follow along or MELPA would be fantastic. > 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. +1, I think jde-mode should be a minor mode rather than a major-mode, all the non-interactive parts should be part of java-mode and contributions/enhancements should be made there. > 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!). I think nrepl is a good choice for it, but I enjoy clojure so I might be biased. Perhaps for Java 9 the included JDK REPL would be a good idea though (since it will be supported by the OpenJDK team)? > 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. Yeah, just making the information available and using Emacss' completion is a good idea. > Source browsing -- we use the JVM connection to a build tool to find > the source, combined with EDE and projectile. This is largely already possible offline with gtags (which I use for Java development in Emacs currently). I'm not sure it's worth adding unless this can be as good or better than the gtags integration. > Object/Class introspection -- CIDER already does this. +1, a great feature that requires a connection to a JVM > 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. Constant compilation (to me) isn't such an important feature, but I *definitely* want to be able to compile the project/file manually with something like =C-c C-k= (ala Cider) or =C-c C-v C-c= (jde current). An important feature of the compilation (again, for me) would be integrating with Flycheck so I could see the lines that have compilation errors/warnings. > 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. I'm happy to work on an idea like this, but I don't have any history working with JDEE before, so I don't know the best way to go about this. My idea of a minimum-viable-project is one where I can do =M-x jde-connect= and then hit =C-c C-v C-c= to compile the project (or get the compilation errors). This includes JDEE detecting the project type and configuring the appropriate classpath. Just let me know how I can help ^_^ -- ;; Lee ------------------------------------------------------------------------------