Quick links: help overview · quick reference · user manual toc · reference manual toc
Go to keyword (shortcut: k)
Site search (shortcut: s)
ft_rust.txt  	Nvim

This is documentation for the Rust filetype plugin.

==============================================================================
CONTENTS						      rust

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.

==============================================================================
 vim:tw=78:sw=4:ts=8:noet:ft=help:norl:


Quick links: help overview · quick reference · user manual toc · reference manual toc