How closing the code intelligence gap made Cursor work for our 26M-line Bazel monorepo

by Ólafur Páll Geirsson, Iulian Dragos and Alessandro Patti

Most code at Databricks is now written by agents. For the moments engineers still go hands-on, they reach for lightweight editors that spin up quickly and let them navigate the code with little setup. For Scala and Java, though, IntelliJ has set the standard for years. At the scale of our monorepo, it was effectively the only editor that could keep up. This post shares how we built an alternative solution by extending Metals, the widely-used Scala language server, to have first-class Java support and scale for the size of our monorepo. In collaboration with the upstream Metals team, we have now open-sourced Metals v2 so that anyone with a large Java and Scala codebase can pair their coding agent with a lightweight editor.

Metals v2 is available today in Cursor, VS Code, and Neovim with installation instructions available on the Metals website.

In May 2025, we began standardizing Databricks’ day-to-day editor workflow around Cursor. Cursor and VS Code were already widely used at Databricks for frontend and other non-JVM work, and both had strong SSH remote support for our cloud-based development environment. However, most of our services are written in Scala and Java, and navigating them at the scale of our monorepo was the holdout; the problem we set out to solve.