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 @@
|
|||
{
|
||||
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}
|
||||
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;
|
||||
};
|
||||
}
|
||||
|
|
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 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
|
||||
" }}}
|
||||
|
||||
''
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue