ENSIME: The Next Generation

filed as compiler plugins able to register with the Reporter · Issue #329 · lampepfl/dotty-feature-requests · GitHub

v3.0.9 has diagnostics in Scala 2, but pending work in Scala 3.

Now that ENSIME:TNG has an LSP and support for multiple build tools, I thought I should announce it more widely, so I created

(I love the way this gets localized into German because of where the scala-lang website is hosted :laughing: )

Note that I am unable to reply to anybody there as my reddit account has now been permanently suspended for “ban evasion” and this post might be taken down. I don’t know what that means, but note that since reddit is not managed by the moderation panel of @sjrd / @darja it is outside the jurisdiction of the Scala Center. Perhaps it would be a good idea if the Scala Center had some representation there, to intervene in situations like this.

2 Likes

Hey Sam, just to let you know, maybe a year or two ago I tried unblocking your account on reddit but it appeared then, and now, that your account was deleted.

I’m happy to unblock the account if it is un-deleted and of course your ENSIME post is perfectly fine. Subreddit moderators have no control over site-wide account suspension or ban evasion enforcement.

4 Likes

thanks for letting me know that @joshlemer It’s not possible to undelete an account (otherwise that would have been my preference). And it is becoming increasingly likely that the “ban evasion” is a result of automated tooling. If I create a new account, it will also be caught by the ban evasion tooling. So I remain in a state of permanent ban unless reddit intervene (they have already rejected my appeals) or change their automated tooling to behave differently. Both of which are options that appear to be exceptionally unlikely.

3 Likes

v3.0.15 has been released with some quality of life improvements in the LSP and support for Java 19 (which was broken due to nailgun’s use of removed securitymanager features).

5 Likes

any sublime users out there interested in adding support? It should be a configuration thing.

if anybody is wondering if there is going to be a release for 3.3.0, the answer is “no”… because it just works :wink:

Of course you need to compile it, as prompted by your build tool, but that’s a one off, and you can easily automate it if you really really want, taking good old XKCD-1205 into account.

An advantage of source distributions!

4 Likes

Hi - I’ve been giving ENSIME a go, with neovim’s built in LSP integration.

I think I’ve found a small issue with how jump to definition works when a definition needs to be unzipped –
the resulting string from extractZipEntry is a file path, not a URI (missing file://). This breaks neovim’s lsp integration.

I’d be happy to contribute a small fix for this, if you are still inviting contributors. I hope to get more involved in the tooling I use day to day to make my own and other people’s lives easier.

3 Likes

yeah the LSP doesn’t support sources inside archives so it all has to be handled adhoc with client side code. I bet if you change the path to a uri it’ll break vscode, so if you make a fix be sure to test/fix both! (Or maybe I extract it all server side to workaround this, I can’t remember…).

For sure link me to your branch if you think you’ve fixed it and I’ll see about accepting that back.

hi @fommil ! thank you and all other contributors for the project!
i’ve used it a bit in the past and trying to set up again

i encounter a problem with semanticdb-scalac version, which i try to figure out on my own, but failing for now:

the project in which i’ve enabled ENSIME has scala 2.13.12
plugin for this version is not installed by default, and i get recommendation:

sbt ++2.13.12! install

when i try to run that i get error:
https://repo1.maven.org/maven2/org/scalameta/semanticdb-scalac_2.13.12/4.5.13/semanticdb-scalac_2.13.12-4.5.13.pom

and that became unsurprising when i checked all versions of that dependencies:
https://mvnrepository.com/artifact/org.scalameta/semanticdb-scalac

support for scala 2.13.12 begins in 4.8.3

but i’ve tried to investigate the source code, enabled addDependencyTreePlugin, still don’t see what determines the version of the semanticdb-scalac and whether it’s possible at all to update it

I’ll try to look some more, but maybe you have any pointers, or know of a place where this discussion is already taking place

Thank you again

@efim ensime has nothing to do with semanticdb so whatever you’re encountering sounds like it’s to do with your personal setup. Maybe you installed metals globally or something.

1 Like

Hi @fommil does ENSIME work with older versions of sbt? Our project uses sbt.version = 0.13.15
I have it running well with newer versions of sbt but I’m not sure how to get it to work with 0.13

just port the small sbt plugin back to 0.13. Should be an easy job for a team that has decided to stick with sbt 0.13 and therefore have invested the time to maintain it themselves :wink:

1 Like