vim-rust: init

This commit is contained in:
steveej 2017-02-07 20:16:11 +01:00
parent 54141dd96e
commit e198d616be
3 changed files with 77 additions and 14 deletions

View file

@ -1,19 +1,32 @@
{
pkgs ? import /home/steveej/src/github/NixOS/nixpkgs {},
name ? "generic",
version,
extraBuildInputs ? [] }:
{ gitpkgs ? import /home/steveej/src/github/NixOS/nixpkgs {}
, pkgs ? gitpkgs
, name ? "generic"
, version ? "Stable"
, extraBuildInputs ? []
}:
let
rustPackages = builtins.getAttr "rust${version}" pkgs;
rustBuildInputs = { rustPackages }: [
rustPackages.rustc
];
rustShellHook = { rustPackages, name }: ''
setPS1 rust${version}
unset name
'';
rustc = rustPackages.rustc;
rustShellHook = { rustc, name }: ''
rustname=rust_${rustc.version}_${name}
setPS1 $rustname
unset name
'';
commonVimRC = ''
'';
in pkgs.stdenv.mkDerivation {
inherit name;
buildInputs = extraBuildInputs ++ (rustBuildInputs){ inherit rustPackages; };
shellHook = (rustShellHook) { inherit name; inherit rustPackages; };
buildInputs = with rustPackages;[
( import ./vim-rust.nix { pkgs=gitpkgs; commonRC=commonVimRC;
inherit rustc;
racerd=pkgs.rustracerd;
})
rustc cargo
] ++ [
pkgs.rustfmt
] ++ extraBuildInputs;
shellHook = (rustShellHook){
inherit name;
inherit rustc;
};
}

View file

@ -0,0 +1,46 @@
{ commonRC
, rustc
, racerd,
... } @ args :
import ../../pkg-configuration/vim-derivates/vim.nix (args // {
name = "vim-for-rust";
additionalRC = commonRC + ''
set statusline+=%#warningmsg#
set statusline+=%{SyntasticStatuslineFlag()}
set statusline+=%*
let g:syntastic_always_populate_loc_list = 1
let g:syntastic_auto_loc_list = 1
let g:syntastic_check_on_open = 1
let g:syntastic_check_on_wq = 0
" tagbar
let g:tagbar_type_rust = {
\ 'ctagstype' : 'rust',
\ 'kinds' : [
\'T:types,type definitions',
\'f:functions,function definitions',
\'g:enum,enumeration names',
\'s:structure names',
\'m:modules,module names',
\'c:consts,static constants',
\'t:traits,traits',
\'i:impls,trait implementations',
\]
\}
let g:syntastic_rust_checkers = ["rustc"]
"rustfmt
let g:rustfmt_autosave = 1
let g:ycm_auto_trigger = 1
let g:ycm_rust_src_path = '${rustc.src}/src'
let g:ycm_racerd_binary_path = '${racerd.out}/bin/racerd'
'';
additionalPlugins = [
"rust-vim"
];
})

View file

@ -38,6 +38,8 @@ set softtabstop=4
set expandtab
"set textwidth=80
set backspace=indent,eol,start
set wildignore+=*/site/*,*.so,*.swp,*.zip
let g:ctrlp_custom_ignore = {
\ 'dir': '\v[\/]\.(git|hg|svn|)$$',
@ -102,4 +104,6 @@ augroup ft_yaml
setlocal autoindent sw=2 et tabstop=2 shiftwidth=2 softtabstop=2
augroup END
" }}}
''