vim-rust: init
This commit is contained in:
parent
54141dd96e
commit
e198d616be
3 changed files with 77 additions and 14 deletions
|
@ -1,19 +1,32 @@
|
||||||
{
|
{ gitpkgs ? import /home/steveej/src/github/NixOS/nixpkgs {}
|
||||||
pkgs ? import /home/steveej/src/github/NixOS/nixpkgs {},
|
, pkgs ? gitpkgs
|
||||||
name ? "generic",
|
, name ? "generic"
|
||||||
version,
|
, version ? "Stable"
|
||||||
extraBuildInputs ? [] }:
|
, extraBuildInputs ? []
|
||||||
|
}:
|
||||||
let
|
let
|
||||||
rustPackages = builtins.getAttr "rust${version}" pkgs;
|
rustPackages = builtins.getAttr "rust${version}" pkgs;
|
||||||
rustBuildInputs = { rustPackages }: [
|
rustc = rustPackages.rustc;
|
||||||
rustPackages.rustc
|
rustShellHook = { rustc, name }: ''
|
||||||
];
|
rustname=rust_${rustc.version}_${name}
|
||||||
rustShellHook = { rustPackages, name }: ''
|
setPS1 $rustname
|
||||||
setPS1 rust${version}
|
|
||||||
unset name
|
unset name
|
||||||
'';
|
'';
|
||||||
|
commonVimRC = ''
|
||||||
|
'';
|
||||||
in pkgs.stdenv.mkDerivation {
|
in pkgs.stdenv.mkDerivation {
|
||||||
inherit name;
|
inherit name;
|
||||||
buildInputs = extraBuildInputs ++ (rustBuildInputs){ inherit rustPackages; };
|
buildInputs = with rustPackages;[
|
||||||
shellHook = (rustShellHook) { inherit name; inherit 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;
|
||||||
|
};
|
||||||
}
|
}
|
||||||
|
|
46
derivations/dev/vim-rust.nix
Normal file
46
derivations/dev/vim-rust.nix
Normal 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"
|
||||||
|
];
|
||||||
|
})
|
|
@ -38,6 +38,8 @@ set softtabstop=4
|
||||||
set expandtab
|
set expandtab
|
||||||
"set textwidth=80
|
"set textwidth=80
|
||||||
|
|
||||||
|
set backspace=indent,eol,start
|
||||||
|
|
||||||
set wildignore+=*/site/*,*.so,*.swp,*.zip
|
set wildignore+=*/site/*,*.so,*.swp,*.zip
|
||||||
let g:ctrlp_custom_ignore = {
|
let g:ctrlp_custom_ignore = {
|
||||||
\ 'dir': '\v[\/]\.(git|hg|svn|)$$',
|
\ 'dir': '\v[\/]\.(git|hg|svn|)$$',
|
||||||
|
@ -102,4 +104,6 @@ augroup ft_yaml
|
||||||
setlocal autoindent sw=2 et tabstop=2 shiftwidth=2 softtabstop=2
|
setlocal autoindent sw=2 et tabstop=2 shiftwidth=2 softtabstop=2
|
||||||
augroup END
|
augroup END
|
||||||
" }}}
|
" }}}
|
||||||
|
|
||||||
''
|
''
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue