As the demands of large-model training and inference have exploded, a wave of DSLs designed to simplify writing operators has emerged — Triton, TileLang, CuTeDSL, and others. They look like Python and they're used like Python, but writing them feels nothing like Python. Adding LSP support — type inference, simplification, error reporting — is a natural next step for improving how these DSLs are written and read.
Let's start with TileLang and walk through just how many steps it takes to add LSP support to it.