apple / pkl

A configuration as code language with rich validation and tooling.
https://pkl-lang.org
Apache License 2.0
9.85k stars 258 forks source link

Switch to adapter pattern #453

Closed bioball closed 2 months ago

bioball commented 2 months ago

This switches the LSP implementation to use the adapter pattern, deferring as much as possible to the ANTLR-generated classes.

It also gets rid of CstBuilder, instead moving diagnostic handling to the analyzers.

It's not complete but provides a skeleton to be filled in.

translatenix commented 2 months ago

Have you considered having a separate repository for the language server, similar to apple/pkl-Intellij? A language server is a large project, quite different from the rest of apple/pkl, should be releasable on its own, and apple/pkl already has some modularity issues. I’m also worried that this will slow down the build and especially the IntelliJ experience, which is already barely tolerable on my (not so old) laptop.

bioball commented 2 months ago

We've thought about it. We're still a ways off from releasing the LSP. And, putting it here is useful for us to share things with the rest of Pkl. We'll see.

I’m also worried that this will slow down the build and especially the IntelliJ experience, which is already barely tolerable on my (not so old) laptop

Is this because of WSL? Might be better once we have Windows support available for you. I haven't noticed any perf issues on macOS yet.

translatenix commented 2 months ago

Is this because of WSL?

WSL is definitely part of the problem. But Gradle IntelliJ projects are very resource intensive in general, especially when using Gradle Kotlin DSL.