diff --git a/autoload/SpaceVim.vim b/autoload/SpaceVim.vim index 65763c65c..c8c423572 100644 --- a/autoload/SpaceVim.vim +++ b/autoload/SpaceVim.vim @@ -2,7 +2,7 @@ " @section Introduction, intro " @stylized Maktaba " @library -" @order intro version dicts functions exceptions layers colorscheme layer_lang_java layer_lang_php layer_lang_c +" @order intro version dicts functions exceptions layers colorscheme layer_lang_java layer_lang_php layer_lang_c layer-lang-rust " SpaceVim is a Modular configuration, a bundle of custom settings " and plugins, for Vim. It got inspired by spacemacs. diff --git a/autoload/SpaceVim/layers/lang.vim b/autoload/SpaceVim/layers/lang.vim index 4b19d7c64..8aee52f64 100644 --- a/autoload/SpaceVim/layers/lang.vim +++ b/autoload/SpaceVim/layers/lang.vim @@ -35,7 +35,6 @@ function! SpaceVim#layers#lang#plugins() abort endfunction function! SpaceVim#layers#lang#config() abort - let g:racer_cmd = $HOME.'/.cargo/bin/racer' let g:vim_markdown_conceal = 0 let g:vim_markdown_folding_disabled = 1 endfunction diff --git a/autoload/SpaceVim/layers/lang/rust.vim b/autoload/SpaceVim/layers/lang/rust.vim index b524b9f3b..3c3393d27 100644 --- a/autoload/SpaceVim/layers/lang/rust.vim +++ b/autoload/SpaceVim/layers/lang/rust.vim @@ -1,3 +1,26 @@ +"" +" @section layer-lang-rust, layer-lang-rust +" requirement: +" 1. racer : cargo install racer +" 2. export RUST_SRC_PATH : +" you can download src by : rustup component add rust-src, and add below +" into your bashrc. +" +" export RUST_SRC_PATH=~/.multirust/toolchains/[your-toolchain]/lib/rustlib/src/rust/src +" +" configuration: +" 1. add `let g:racer_cmd = "/path/to/racer/bin"` in to custom config, if +" you has racer executable in you PATH. g:racer_cmd should be auto detect. +" +" mappings: +" > +" mode key function +" normal gd rust-definition +" normal gs rust-definition-split +" normal gx rust-definition-vertical +" normal gd rust-doc +" < + function! SpaceVim#layers#lang#rust#plugins() abort let plugins = [] call add(plugins, ['racer-rust/vim-racer', { 'on_ft' : 'rust'}]) @@ -6,5 +29,12 @@ function! SpaceVim#layers#lang#rust#plugins() abort endfunction function! SpaceVim#layers#lang#rust#config() abort - + let g:racer_experimental_completer = 1 + let g:racer_cmd = $HOME.'/.cargo/bin/racer' + augroup spacevim_layer_lang_rust + au FileType rust nmap gd (rust-def) + au FileType rust nmap gs (rust-def-split) + au FileType rust nmap gx (rust-def-vertical) + au FileType rust nmap gd (rust-doc) + augroup END endfunction diff --git a/doc/SpaceVim.txt b/doc/SpaceVim.txt index 07c098c85..3a98dac6c 100644 --- a/doc/SpaceVim.txt +++ b/doc/SpaceVim.txt @@ -11,6 +11,7 @@ CONTENTS *SpaceVim-contents* 6. Layer_lang_java................................|SpaceVim-layer_lang_java| 7. Layer_lang_php..................................|SpaceVim-layer_lang_php| 8. Layer_lang_c......................................|SpaceVim-layer_lang_c| + 9. layer-lang-rust................................|SpaceVim-layer-lang-rust| ============================================================================== INTRODUCTION *SpaceVim-intro* @@ -419,5 +420,29 @@ lang#c : requirement: clang libclang +============================================================================== +LAYER-LANG-RUST *SpaceVim-layer-lang-rust* + +requirement: + 1. racer : cargo install racer + 2. export RUST_SRC_PATH : you can download src by : rustup component add + rust-src, and add below into your bashrc. + +export RUST_SRC_PATH=~/.multirust/toolchains/[your-toolchain]/lib/rustlib/src/ +rust/src + +configuration: + 1. add `let g:racer_cmd = "/path/to/racer/bin"` in to custom config, if you + has racer executable in you PATH. g:racer_cmd should be auto detect. + +mappings: +> + mode key function + normal gd rust-definition + normal gs rust-definition-split + normal gx rust-definition-vertical + normal gd rust-doc +< + vim:tw=78:ts=8:ft=help:norl: