Spade 0.20.0
Posted 2026-08-20 by The Spade Developers
Summer is almost over, and with it comes a new Spade release. The biggest improvement this time around is a much improved language server protocol implementation that finally supports auto-complete, among other things.
LSP Completion
Spade has had editor support via LSP for a while, but one thing has been shining with its absence: autocomplete. That changes with this release as you can see in this demo:
This system is not perfect yet, and there are likely to be issues. If you encounter any surprising behaviour, please, open an issue!
The language server is now handled by swim which means it is aware of the Spade version used in your project. We have also updated the editor extensions to use the LSP automatically in a few editors. Refer to https://docs.spade-lang.org/editor_setup.html for details.
Associated Functions
Associated functions, roughly equivalent to static methods in other languages, has been a long requested feature as it is the Rusty way to write things like constructors. With the 0.20 Spade now has support for associated functions.
For example, a struct can now define a new method as a constructor:
impl SomeStruct {
fn new(inner: uint<16>) -> Self {
Self(inner)
}
}
fn test() -> SomeStruct {
SomeStruct::new(5)
}
There are some limitations in place for now, for example, associated methods cannot be called on generic types yet.
Documentation Improvements
The Spade book has seen some serious improvements since last release, primarily thanks to Codeberg user fxgrl. The content is now more polished, and we have a few more sections about the language. You can always read the latest version of the documentation at https://docs.spade-lang.org/
On the technical side, the documentation is now written fully in typst and hosted by https://grebedoc.dev/ which means that pages load pretty much instantly!