RustFmt is a Sublime Text 3 plugin that auto-formats Rust code with rustfmt or another executable.
Unlike BeautifyRust, it's fast and works on buffers that have yet not been saved as files. Unlike RustFormat, it preserves the buffer scroll position. It also supports rustfmt.toml.
Requires Sublime Text version 3124 or later.
Requires rustfmt to be on PATH. Installation:
rustup component add rustfmt- Get Package Control
- Open command palette:
Shift+Super+PorShift+Ctrl+P Package Control: Install PackageRustFmt
Clone the repo:
git clone https://github.com/mitranim/sublime-rust-fmt.gitThen symlink it to your Sublime packages directory. Example for MacOS:
mv sublime-rust-fmt RustFmt
cd RustFmt
ln -sf "$(pwd)" "$HOME/Library/Application Support/Sublime Text 3/Packages/"To find the packages directory, use Sublime Text menu → Preferences → Browse Packages.
By default, RustFmt will autoformat files before saving. You can trigger it
manually with the RustFmt: Format Buffer command in the command palette.
If the plugin can't find the executable:
- run
which rustfmtto get the absolute executable path - set it as the
executablesetting, see Settings below
On MacOS, it might end up like this:
Can pass additional arguments:
"executable": ["rustup", "run", "nightly", "rustfmt"]See RustFmt.sublime-settings for all available settings. To override them, open:
Preferences → Package Settings → RustFmt → Settings
RustFmt looks for settings in the following places:
"RustFmt"dict in general Sublime settings, possibly project-specificRustFmt.sublime-settings, default or user-created
The general Sublime settings take priority. To override them on a per-project basis, create a "RustFmt" entry:
"RustFmt": {
"format_on_save": false
},In Sublime's command palette:
RustFmt: Format Buffer
To avoid potential conflicts, this plugin does not come with hotkeys. To hotkey
the format command, add something like this to your .sublime-keymap:
{
"keys": ["ctrl+super+k"],
"command": "rust_fmt_format_buffer",
"context": [{"key": "selector", "operator": "equal", "operand": "source.rust"}]
}