scalacenter / student-projects

The list of the available projects at the Scala Center for bachelor and master students.
8 stars 0 forks source link

Java support in Metals #6

Closed adpi2 closed 1 year ago

adpi2 commented 2 years ago

Description

Metals is the Scala language server for code editors like VS Code.

Metals provides the implementations of a lot of IDE features, such as goto definition, hover, find references, for the Scala language only. But Scala is compatible with Java and many projects mix Scala and Java dependencies, Scala and Java sources. So it would be very useful if Metals could also support those features for the Java language.

There are a few Java language servers already that we could reuse to implement those features. One of them, georgewfraser/java-language-server uses the Java compiler API directly, which might be the simplest approach for us.

Related feature request in Metals is: https://github.com/scalameta/metals-feature-requests/issues/5 It is the most wanted feature, by the community currently.

Supervisors

Adrien Piquerez(adrien.piquerez@epfl.ch): Tooling Engineer at the Scala Center Tomasz Godzik: Tooling Engineer at Virtus Lab and the Scala Center, main maintainer of Metals

Prerequisites

Expected Outcome

Added support for Java on some important features of Metals.

dos65 commented 2 years ago

@adpi2 @tgodzik

Hey! I found a student who is interested in taking this project and I will be able to provide full mentoship for him. Will it be fine? Also, I need to make sure that this project isn't taken yet by anyone.

tgodzik commented 2 years ago

Great to hear @dos65 ! I don't think the project got started at any point. It would be amazing if the student would be able to at least provide a single new feature such as hover etc. They might first need to take a look at what would be the best approach here.

dos65 commented 2 years ago

Cool, then we will start working on that with @VankaTaganai.

They might first need to take a look at what would be the best approach here.

Yep we will start from that. I think we will publish the investigation results here or in scameta/metals to discuss which will be the best one.

adpi2 commented 2 years ago

Cool, then we will start working on that with @VankaTaganai.

That's a great news. Thanks for picking up that project @VankaTaganai and @dos65. I am marking the issue as taken.