*rust.txt* Filetype plugin for Rust ============================================================================== CONTENTS *rust* *ft-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:cargo_manifest_name* g:cargo_manifest_name~ Set this option to the name of the manifest file for your projects. If not specified it defaults to 'Cargo.toml' : > let g:cargo_manifest_name = 'Cargo.toml' < ============================================================================== 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. ============================================================================== MAPPINGS *rust-mappings* This plugin defines mappings for |[[| and |]]| to support hanging indents. It also has a few other mappings: *rust_* Executes |:RustRun| with no arguments. Note: This binding is only available in MacVim. *rust_* 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:noet:ts=8:ft=help:norl: