123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240 |
- *ft_rust.txt* For Vim version 9.0. Last change: 2022 Oct 17
- 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:
|