java-language-server icon indicating copy to clipboard operation
java-language-server copied to clipboard

Integration with GNOME Builder

Open albfan opened this issue 6 years ago • 5 comments

I'm integrating this with GNOME Builder:

Go to definition in Builder

https://gitlab.gnome.org/GNOME/gnome-builder/merge_requests/183

It just works, so there's no real issue, just asking for guidance or docs for:

  • log communications
  • Set debug level on language server

About lsp itself (sorry to ask). Is there a signal to inform it is ready (like when it compile all the project?)

We can help on polish, new features, todos. Is there any roadmap, mail list or similar?

albfan avatar Apr 13 '19 08:04 albfan

That's great!

Log communications are via stderr. There's no concept of debug levels, I've never really felt I needed them.

No, there is no signal for "language server is ready". In VSCode I use some custom messages to create a progress bar: https://github.com/georgewfraser/java-language-server/blob/22120f58c9544b6aa6b2eb727d5cb2f5f5f670db/lib/extension.ts#L206

There's been other contributors but we've never established a forum other than github issues.

The main thing I've been working on recently is the incremental branch, which uses the same technique from jshell to re-use a hot java compiler across actions. It really takes the performance to the next level---JLS is already fast, but with this change it's fast on massive codebases with tons of dependencies. I recently prematurely merged and published the incremental branch, and then discovered it still has some bugs, so I reverted.

The closes thing to a road map is TODOS.md.

georgewfraser avatar May 04 '19 21:05 georgewfraser

Nice, stderr is ok, and issues are enough.

We can help testing new branch ( we like bleeding edge)

In GNOME Builder there's a concept of buildsystem ( you not just build on host). Most notably is flatpak right now, which means that you can build a java app without java installed on your system. Flatpak uses inmutable runtimes, java is an flatpak SDK extension. I think k this will be imposible for this project but have to ask:

Can this language server run on top of a normal jdk? Like adding those custom modules in command line, without using jlink to create a custom jdk?

albfan avatar May 05 '19 04:05 albfan

This language server can run on top of normal JDK, mvn package will build a jar in target/javac-services-0.1-SNAPSHOT.jar. If you rely on the jar, you need to ensure that the user has java 11 installed on their system. And pretty soon that will be java 12, 13, ...; in order to keep up with new language features, we have to keep moving forward.

georgewfraser avatar May 05 '19 21:05 georgewfraser

Also, I just merged incremental into master to avoid people working off of a dead branch.

georgewfraser avatar May 05 '19 22:05 georgewfraser

Nice! Have to try it and see how to best integrate it.

albfan avatar May 06 '19 02:05 albfan