______                       __
   / __/ /_     _______  _______/ /_
  / /_/ __/    / ___/ / / / ___/ __/
 / __/ /______/ /  / /_/ (__  ) /_
/_/  \__/____/_/   \__,_/____/\__/
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.

==============================================================================