Open-sourcing Metals v2: Databricks’ Java and Scala language server for multi‑million line codebases
Databricks has open-sourced Metals v2, extending the Scala language server to support Java and scale for large monorepos, enabling lightweight editors like Cursor and VS Code to handle multi-million line codebases.
Databricks announced the open-sourcing of Metals v2, a language server for Java and Scala that enhances lightweight editors such as Cursor, VS Code, and Neovim to manage large monorepos. Developed in collaboration with the Metals team and VirtusLab, the update adds first-class Java support to the widely-used Scala server, addressing scalability challenges in Databricks’ 26-million-line codebase. The release follows a shift at Databricks toward Cursor as the primary editor for JVM work, reducing reliance on IntelliJ.
The transition to Cursor as the standard editor was driven by the need for unified tooling across Databricks’ Scala and Java services, which account for the majority of the codebase. By July 2026, 92% of weekly active IDE users at Databricks were using Cursor, up from 12% for IntelliJ, with 2,400 engineers exclusively using Cursor compared to 120 for IntelliJ. For Scala and Java file open events, Cursor’s share rose from 40% to 78% since October 2025, reflecting the growing adoption of Metals v2 despite IntelliJ’s historical dominance in these languages.
Metals v2 was initially a Databricks fork but has been reintegrated into the open-source community with support from VirtusLab and Cursor. The project aims to provide shared infrastructure for large JVM codebases, addressing the limitations of existing language servers at monorepo scale. Ongoing development is led by VirtusLab, which invites contributions and feedback via GitHub or email at metals@virtuslab.com.
The engineering behind Metals v2 focused on achieving low-latency code intelligence in a 26-million-line monorepo, prioritizing fast repository orientation over comprehensive LSP features. Key innovations include a content-addressed index enabling time-to-initial-intelligence in under 9 seconds at the median, and a shared sourcepath model for Scala and Java that supports real-time navigation across Bazel targets without waiting for classpath updates.