{"action":"created","issue":{"url":"https://api.github.com/repos/ensime/ensime-server/issues/345","labels_url":"https://api.github.com/repos/ensime/ensime-server/issues/345/labels{/name}","comments_url":"https://api.github.com/repos/ensime/ensime-server/issues/345/comments","events_url":"https://api.github.com/repos/ensime/ensime-server/issues/345/events","html_url":"https://github.com/ensime/ensime-server/issues/345","id":32290554,"number":345,"title":"ENJINE: java mode [$250]","user":{"login":"fommil","id":1914041,"avatar_url":"https://avatars.githubusercontent.com/u/1914041?v=3","gravatar_id":"","url":"https://api.github.com/users/fommil","html_url":"https://github.com/fommil","followers_url":"https://api.github.com/users/fommil/followers","following_url":"https://api.github.com/users/fommil/following{/other_user}","gists_url":"https://api.github.com/users/fommil/gists{/gist_id}","starred_url":"https://api.github.com/users/fommil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fommil/subscriptions","organizations_url":"https://api.github.com/users/fommil/orgs","repos_url":"https://api.github.com/users/fommil/repos","events_url":"https://api.github.com/users/fommil/events{/privacy}","received_events_url":"https://api.github.com/users/fommil/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/ensime/ensime-server/labels/Bounty","name":"Bounty","color":"129e5e"},{"url":"https://api.github.com/repos/ensime/ensime-server/labels/OMG!%20Ponies!","name":"OMG! Ponies!","color":"F433FF"}],"state":"open","locked":false,"assignee":null,"milestone":null,"comments":15,"created_at":"2014-04-26T14:48:04Z","updated_at":"2015-01-27T20:32:50Z","closed_at":null,"body":"aka ENhanced Java INteraction mode for Emacs ;-P\r\n\r\nMany of the features of ENSIME could be made available for Java source code editing. Specifically:\r\n\r\n* jump to source of symbol at point\r\n* method completion\r\n* package navigation\r\n* classname completion\r\n\r\nOn the emacs side, this would involve creating an `ensime-java-mode` (or `enjine-mode`) that enables the functions that are to be used, which sends requests to the server. Many of the `ensime-mode` features can be re-used, such as popup/autocomplete boxes and the SWANK protocol (which might not need to be changed).\r\n\r\nOn the server side would be significant changes, as we would need to use the java compiler in order to produce a [javac.tree](http://docs.oracle.com/javase/6/docs/jdk/api/javac/tree/) that would be used for queries related to `.java` files, instead of the presentation compiler (for `.scala` files).\r\n\r\nThis might not be as hard as it sounds, since the java compiler doesn't need to perform type inference it can treat each file in isolation and just parse it from fresh every time.\r\n\r\nThis would pave the way forwards for integration with static analysis tools that could offer hints or automated refactorings, and spring support.\r\n\r\n<bountysource-plugin>\r\n\r\n---\r\nThere is a **[<total-bounty>$250</total-bounty> open bounty](https://www.bountysource.com/issues/1850504-rfe-support-java-editing?utm_campaign=plugin&utm_content=tracker%2F239449&utm_medium=issues&utm_source=github)** on this issue. Add to the bounty at [Bountysource](https://www.bountysource.com/?utm_campaign=plugin&utm_content=tracker%2F239449&utm_medium=issues&utm_source=github).\r\n</bountysource-plugin>"},"comment":{"url":"https://api.github.com/repos/ensime/ensime-server/issues/comments/71722263","html_url":"https://github.com/ensime/ensime-server/issues/345#issuecomment-71722263","issue_url":"https://api.github.com/repos/ensime/ensime-server/issues/345","id":71722263,"user":{"login":"fommil","id":1914041,"avatar_url":"https://avatars.githubusercontent.com/u/1914041?v=3","gravatar_id":"","url":"https://api.github.com/users/fommil","html_url":"https://github.com/fommil","followers_url":"https://api.github.com/users/fommil/followers","following_url":"https://api.github.com/users/fommil/following{/other_user}","gists_url":"https://api.github.com/users/fommil/gists{/gist_id}","starred_url":"https://api.github.com/users/fommil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fommil/subscriptions","organizations_url":"https://api.github.com/users/fommil/orgs","repos_url":"https://api.github.com/users/fommil/repos","events_url":"https://api.github.com/users/fommil/events{/privacy}","received_events_url":"https://api.github.com/users/fommil/received_events","type":"User","site_admin":false},"created_at":"2015-01-27T20:32:50Z","updated_at":"2015-01-27T20:32:50Z","body":"Btw for your sanity, check out Project Lombok and beware that I am probably the only Scala dev on the planet who loves Spring :-D "}}