Ft_rust

Nvim :help pages, generated from source using the tree-sitter-vimdoc parser.


This is documentation for the Rust filetype plugin.

CONTENTS

1. Introduction rust-intro 2. Settings rust-settings 3. Commands rust-commands 4. Mappings rust-mappings

INTRODUCTION rust-intro

This plugin provides syntax and supporting functionality for the Rust filetype.

SETTINGS rust-settings

This plugin has a few variables you can define in your vimrc that change the behavior of the plugin.
g:rustc_path g:rustc_path~ Set this option to the path to rustc for use in the :RustRun and :RustExpand commands. If unset, "rustc" will be located in $PATH:
let g:rustc_path = $HOME .. "/bin/rustc"
g:rustc_makeprg_no_percent g:rustc_makeprg_no_percent~ Set this option to 1 to have 'makeprg' default to "rustc" instead of "rustc %":
let g:rustc_makeprg_no_percent = 1
g:rust_conceal g:rust_conceal~ Set this option to turn on the basic conceal support:
let g:rust_conceal = 1
g:rust_conceal_mod_path g:rust_conceal_mod_path~ Set this option to turn on conceal for the path connecting token "::":
let g:rust_conceal_mod_path = 1
g:rust_conceal_pub g:rust_conceal_pub~ Set this option to turn on conceal for the "pub" token:
let g:rust_conceal_pub = 1
g:rust_recommended_style g:rust_recommended_style~ Set this option to enable vim indentation and textwidth settings to conform to style conventions of the rust standard library (i.e. use 4 spaces for indents and sets 'textwidth' to 99). This option is enabled by default. To disable it:
let g:rust_recommended_style = 0
g:rust_fold g:rust_fold~ Set this option to turn on folding:
let g:rust_fold = 1
Value Effect
0 No folding 1 Braced blocks are folded. All folds are open by default. 2 Braced blocks are folded. 'foldlevel' is left at the global value (all folds are closed by default).
g:rust_bang_comment_leader g:rust_bang_comment_leader~ Set this option to 1 to preserve the leader on multi-line doc comments using the /*! syntax:
let g:rust_bang_comment_leader = 1
g:ftplugin_rust_source_path g:ftplugin_rust_source_path~ Set this option to a path that should be prepended to 'path' for Rust source files:
let g:ftplugin_rust_source_path = $HOME .. '/dev/rust'
g:rustfmt_command g:rustfmt_command~ Set this option to the name of the "rustfmt" executable in your $PATH. If not specified it defaults to "rustfmt" :
let g:rustfmt_command = 'rustfmt'
g:rustfmt_autosave g:rustfmt_autosave~ Set this option to 1 to run :RustFmt automatically when saving a buffer. If not specified it defaults to 0 :
let g:rustfmt_autosave = 0
g:rustfmt_fail_silently g:rustfmt_fail_silently~ Set this option to 1 to prevent "rustfmt" from populating the location-list with errors. If not specified it defaults to 0:
let g:rustfmt_fail_silently = 0
g:rustfmt_options g:rustfmt_options~ Set this option to a string of options to pass to "rustfmt". The write-mode is already set to "overwrite". If not specified it defaults to '' :
let g:rustfmt_options = ''
g:rust_playpen_url g:rust_playpen_url~ Set this option to override the URL for the playpen to use:
let g:rust_playpen_url = 'https://play.rust-lang.org/'
g:rust_shortener_url g:rust_shortener_url~ Set this option to override the URL for the URL shortener:
let g:rust_shortener_url = 'https://is.gd/'

COMMANDS rust-commands

:RustRun [args] :RustRun :RustRun! [rustc-args] [--] [args] Compiles and runs the current file. If it has unsaved changes, it will be saved first using :update. If the current file is an unnamed buffer, it will be written to a temporary file first. The compiled binary is always placed in a temporary directory, but is run from the current directory.
The arguments given to :RustRun will be passed to the compiled binary.
If ! is specified, the arguments are passed to rustc instead. A "--" argument will separate the rustc arguments from the arguments passed to the binary.
If g:rustc_path is defined, it is used as the path to rustc. Otherwise it is assumed rustc can be found in $PATH.
:RustExpand [args] :RustExpand :RustExpand! [TYPE] [args] Expands the current file using --pretty and displays the results in a new split. If the current file has unsaved changes, it will be saved first using :update. If the current file is an unnamed buffer, it will be written to a temporary file first.
The arguments given to :RustExpand will be passed to rustc. This is largely intended for specifying various --cfg configurations.
If ! is specified, the first argument is the expansion type to pass to rustc --pretty. Otherwise it will default to "expanded".
If g:rustc_path is defined, it is used as the path to rustc. Otherwise it is assumed rustc can be found in $PATH.
:RustEmitIr [args] :RustEmitIr Compiles the current file to LLVM IR and displays the results in a new split. If the current file has unsaved changes, it will be saved first using :update. If the current file is an unnamed buffer, it will be written to a temporary file first.
The arguments given to :RustEmitIr will be passed to rustc.
If g:rustc_path is defined, it is used as the path to rustc. Otherwise it is assumed rustc can be found in $PATH.
:RustEmitAsm [args] :RustEmitAsm Compiles the current file to assembly and displays the results in a new split. If the current file has unsaved changes, it will be saved first using :update. If the current file is an unnamed buffer, it will be written to a temporary file first.
The arguments given to :RustEmitAsm will be passed to rustc.
If g:rustc_path is defined, it is used as the path to rustc. Otherwise it is assumed rustc can be found in $PATH.
:RustPlay :RustPlay This command will only work if you have web-api.vim installed (available at https://github.com/mattn/webapi-vim). It sends the current selection, or if nothing is selected, the entirety of the current buffer to the Rust playpen, and emits a message with the shortened URL to the playpen.
g:rust_playpen_url is the base URL to the playpen, by default "https://play.rust-lang.org/".
g:rust_shortener_url is the base URL for the shortener, by default "https://is.gd/"
:RustFmt :RustFmt Runs g:rustfmt_command on the current buffer. If g:rustfmt_options is set then those will be passed to the executable.
If g:rustfmt_fail_silently is 0 (the default) then it will populate the location-list with the errors from g:rustfmt_command. If g:rustfmt_fail_silently is set to 1 then it will not populate the location-list.
:RustFmtRange :RustFmtRange Runs g:rustfmt_command with selected range. See :RustFmt for any other information.

MAPPINGS rust-mappings

This plugin defines mappings for [[ and ]] to support hanging indents.
It also has a few other mappings:
rust_<D-r> <D-r> Executes :RustRun with no arguments. Note: This binding is only available in MacVim.
rust_<D-R> <D-R> Populates the command line with :RustRun! using the arguments given to the last invocation, but does not execute it. Note: This binding is only available in MacVim.
Main
Commands index
Quick reference