We have support for various RLS features in GNOME Builder and would certainly love to expand as the GNOME community embraces Rust for our platform.
Builder can currently:
- Manage your RustUp toolchains
- Cargo build integration
- Auto-Completion
- Diagnostics
- Symbol Renaming
- Symbol Resolvers (Goto Symbol, Symbol Tree, etc)
- Syntax highlighting using both regex (for language features) and Semantic Highlighting (for user types)
- Code reformatting
Some of the easy things to knock out for the GNOME 3.28 cycle might be:
- Implement our code index interface (which enables global fuzzy symbol search)
- Improve the symbol tree hierarchy (last I checked it needed some RLS fixes for symbol range/parent support)
- Implement a documentation provider interface so documentation on mouse hover works
- Cargo unit test integration
- Debugger integration (although I suspect since we use GDB this mostly works already)
For Builder, we try to write the generic language server protocol code (in C) and then the Rust integration is simply a matter of a few lines of Python.
Once Niko’s gobject_gen! stuff is ready for general consumption we want to start enabling both plugins and core features in Builder to be written in Rust.
Sources