Tooling - Summer of Code

Development of a new language server for Julia (350 hours)

The goal of this project is to develop a new language server for Julia, currently called JETLS, that enhances developer productivity through advanced static analysis and seamless integration with the Julia runtime.

JETLS has made significant progress and now implements a broad set of core LSP features. Type-sensitive diagnostics are powered by JET.jl, which uses JuliaInterpreter.jl to load and analyze code. Features like code completion, workspace symbols, find references, and rename are built by running JuliaLowering.jl as a post-analysis step on top of the module context that JET/JuliaInterpreter has established.

The next major milestone is to feed JuliaLowering-generated code directly into JET's analysis, rather than running JuliaLowering as a post-processing step. This deeper integration, combined with Revise.jl for incremental analysis, will enable advanced features such as type-on-hover, inlay type hints, and argument-type-aware completions, as well as more precise diagnostic locations (currently reported at line granularity rather than column-precise positions).

During GSoC, we expect the contributor to work on these deeper integrations and implement the advanced language features that depend on them. As preparation, we hope that by the time GSoC starts, you have studied the implementations of JETLS.jl and related tools: JET.jl, JuliaInterpreter.jl, Revise.jl, and JuliaLowering.jl.