dev/go: use configured vim
This commit is contained in:
parent
220ee4f7fe
commit
d4a407d772
2 changed files with 205 additions and 8 deletions
|
@ -1,9 +1,9 @@
|
||||||
{
|
{ gitpkgs ? import /home/steveej/src/github/NixOS/nixpkgs {}
|
||||||
pkgs ? import /home/steveej/src/github/NixOS/nixpkgs {},
|
, pkgs ? gitpkgs
|
||||||
name ? "generic",
|
, name ? "generic"
|
||||||
version,
|
, version
|
||||||
extraBuildInputs ? [],
|
, extraBuildInputs ? []
|
||||||
extraShellHook ? ""
|
, extraShellHook ? ""
|
||||||
}:
|
}:
|
||||||
let
|
let
|
||||||
go = builtins.getAttr "go_${version}" pkgs;
|
go = builtins.getAttr "go_${version}" pkgs;
|
||||||
|
@ -14,14 +14,14 @@ let
|
||||||
go
|
go
|
||||||
gotools
|
gotools
|
||||||
#gotools.bin
|
#gotools.bin
|
||||||
gocode
|
#gocode.bin
|
||||||
gocode.bin
|
|
||||||
#godef godef.bin
|
#godef godef.bin
|
||||||
godep
|
godep
|
||||||
#godep.bin
|
#godep.bin
|
||||||
gox.bin
|
gox.bin
|
||||||
#ginkgo ginkgo.bin
|
#ginkgo ginkgo.bin
|
||||||
#gomega
|
#gomega
|
||||||
|
(import ./vim-go.nix{inherit pkgs;})
|
||||||
];
|
];
|
||||||
|
|
||||||
in pkgs.stdenv.mkDerivation {
|
in pkgs.stdenv.mkDerivation {
|
||||||
|
@ -44,6 +44,7 @@ in pkgs.stdenv.mkDerivation {
|
||||||
go get -u github.com/kisielk/errcheck
|
go get -u github.com/kisielk/errcheck
|
||||||
go get -u github.com/jstemmer/gotags
|
go get -u github.com/jstemmer/gotags
|
||||||
go get -u github.com/klauspost/asmfmt/cmd/asmfmt
|
go get -u github.com/klauspost/asmfmt/cmd/asmfmt
|
||||||
|
go get -u github.com/nsf/gocode
|
||||||
${extraShellHook}
|
${extraShellHook}
|
||||||
'';
|
'';
|
||||||
}
|
}
|
||||||
|
|
196
derivations/dev/vim-go.nix
Normal file
196
derivations/dev/vim-go.nix
Normal file
|
@ -0,0 +1,196 @@
|
||||||
|
{ pkgs }: pkgs.vim_configurable.customize {
|
||||||
|
name = "vim-for-go";
|
||||||
|
vimrcConfig = {
|
||||||
|
# add custom .vimrc lines like this:
|
||||||
|
customRC = ''
|
||||||
|
set nocompatible
|
||||||
|
|
||||||
|
" leader
|
||||||
|
let mapleader = ','
|
||||||
|
|
||||||
|
set hidden
|
||||||
|
syntax on
|
||||||
|
set hlsearch
|
||||||
|
set number
|
||||||
|
|
||||||
|
" mappings to stop insert mode
|
||||||
|
imap jjj <ESC>
|
||||||
|
imap kkk <ESC>
|
||||||
|
imap lll <ESC>
|
||||||
|
imap hhh <ESC>
|
||||||
|
set scroll=11
|
||||||
|
|
||||||
|
noremap <C-n> :tabn<CR>
|
||||||
|
noremap <C-p> :tabp<CR>
|
||||||
|
let g:ctrlp_map = '<tab>'
|
||||||
|
set wildignore+=*/site/*,*.so,*.swp,*.zip
|
||||||
|
let g:ctrlp_custom_ignore = {
|
||||||
|
\ 'dir': '\v[\/]\.(git|hg|svn|)$$',
|
||||||
|
\ 'file': '\v\.(exe|so|dll)$$',
|
||||||
|
\ }
|
||||||
|
|
||||||
|
"let g:ctrlp_match_func = { 'match': 'pymatcher#PyMatch' }
|
||||||
|
"let g:pydiction_location = '~/.vim/bundle/pydiction/complete-dict'
|
||||||
|
|
||||||
|
" allways show status line
|
||||||
|
set ls=2
|
||||||
|
set tabstop=4
|
||||||
|
set shiftwidth=4
|
||||||
|
set softtabstop=4
|
||||||
|
set expandtab
|
||||||
|
"set textwidth=80
|
||||||
|
|
||||||
|
let g:tagbar_type_go = {
|
||||||
|
\ 'ctagstype' : 'go',
|
||||||
|
\ 'kinds' : [
|
||||||
|
\ 'p:package',
|
||||||
|
\ 'i:imports:1',
|
||||||
|
\ 'c:constants',
|
||||||
|
\ 'v:variables',
|
||||||
|
\ 't:types',
|
||||||
|
\ 'n:interfaces',
|
||||||
|
\ 'w:fields',
|
||||||
|
\ 'e:embedded',
|
||||||
|
\ 'm:methods',
|
||||||
|
\ 'r:constructor',
|
||||||
|
\ 'f:functions'
|
||||||
|
\ ],
|
||||||
|
\ 'sro' : '.',
|
||||||
|
\ 'kind2scope' : {
|
||||||
|
\ 't' : 'ctype',
|
||||||
|
\ 'n' : 'ntype'
|
||||||
|
\ },
|
||||||
|
\ 'scope2kind' : {
|
||||||
|
\ 'ctype' : 't',
|
||||||
|
\ 'ntype' : 'n'
|
||||||
|
\ },
|
||||||
|
\ 'ctagsbin' : 'gotags',
|
||||||
|
\ 'ctagsargs' : '-sort -silent'
|
||||||
|
\ }
|
||||||
|
|
||||||
|
" syntastic {
|
||||||
|
au FileType qf setlocal wrap linebreak
|
||||||
|
let g:syntastic_always_populate_loc_list = 1
|
||||||
|
let g:syntastic_auto_loc_list = 0
|
||||||
|
let g:syntastic_check_on_open = 1
|
||||||
|
let g:syntastic_check_on_wq = 0
|
||||||
|
if has("gui_running")
|
||||||
|
set mouse=a
|
||||||
|
else
|
||||||
|
set mouse=
|
||||||
|
endif
|
||||||
|
|
||||||
|
set wildignore+=*/site/*,*.so,*.swp,*.zip
|
||||||
|
let g:ctrlp_custom_ignore = {
|
||||||
|
\ 'dir': '\v[\/]\.(git|hg|svn|)$$',
|
||||||
|
\ 'file': '\v\.(exe|so|dll)$$',
|
||||||
|
\ }
|
||||||
|
" }
|
||||||
|
|
||||||
|
" spelling {{{
|
||||||
|
au BufRead,BufNewFile *.md,*.markdown setlocal spell spelllang=en_us,de_de
|
||||||
|
" }}}
|
||||||
|
|
||||||
|
" sync default register to clipboard {
|
||||||
|
if has('unnamedplus')
|
||||||
|
set clipboard=unnamedplus
|
||||||
|
else
|
||||||
|
set clipboard=unnamed
|
||||||
|
endif
|
||||||
|
" }
|
||||||
|
|
||||||
|
" colored brackets {
|
||||||
|
let g:rbpt_colorpairs = [
|
||||||
|
\ ['brown', 'RoyalBlue3'],
|
||||||
|
\ ['Darkblue', 'SeaGreen3'],
|
||||||
|
\ ['darkgray', 'DarkOrchid3'],
|
||||||
|
\ ['darkgreen', 'firebrick3'],
|
||||||
|
\ ['darkcyan', 'RoyalBlue3'],
|
||||||
|
\ ['darkred', 'SeaGreen3'],
|
||||||
|
\ ['darkmagenta', 'DarkOrchid3'],
|
||||||
|
\ ['brown', 'firebrick3'],
|
||||||
|
\ ['gray', 'RoyalBlue3'],
|
||||||
|
\ ['black', 'SeaGreen3'],
|
||||||
|
\ ['darkmagenta', 'DarkOrchid3'],
|
||||||
|
\ ['Darkblue', 'firebrick3'],
|
||||||
|
\ ['darkgreen', 'RoyalBlue3'],
|
||||||
|
\ ['darkcyan', 'SeaGreen3'],
|
||||||
|
\ ['darkred', 'DarkOrchid3'],
|
||||||
|
\ ['red', 'firebrick3'],
|
||||||
|
\ ]
|
||||||
|
let g:rbpt_max = 16
|
||||||
|
let g:rbpt_loadcmd_toggle = 0
|
||||||
|
|
||||||
|
au VimEnter * RainbowParenthesesToggle
|
||||||
|
au Syntax * RainbowParenthesesLoadRound
|
||||||
|
au Syntax * RainbowParenthesesLoadSquare
|
||||||
|
au Syntax * RainbowParenthesesLoadBraces
|
||||||
|
" }
|
||||||
|
|
||||||
|
set t_ut=
|
||||||
|
colorscheme PaperColor
|
||||||
|
|
||||||
|
" Python {{{
|
||||||
|
augroup ft_python
|
||||||
|
au!
|
||||||
|
au FileType python setlocal omnifunc=pythoncomplete#Complete
|
||||||
|
au FileType python setlocal define=^\s*\\(def\\\\|class\\)
|
||||||
|
augroup END
|
||||||
|
" }}}
|
||||||
|
|
||||||
|
" YAML {{{
|
||||||
|
augroup ft_yaml
|
||||||
|
au!
|
||||||
|
setlocal autoindent sw=2 et tabstop=2 shiftwidth=2 softtabstop=2
|
||||||
|
augroup END
|
||||||
|
" }}}
|
||||||
|
|
||||||
|
|
||||||
|
" Disable AutoComplPop.
|
||||||
|
let g:acp_enableAtStartup = 0
|
||||||
|
" Use neocomplete.
|
||||||
|
let g:neocomplete#enable_at_startup = 1
|
||||||
|
" Use smartcase.
|
||||||
|
let g:neocomplete#enable_smart_case = 1
|
||||||
|
if !exists('g:neocomplete#sources#omni#input_patterns')
|
||||||
|
let g:neocomplete#sources#omni#input_patterns = {}
|
||||||
|
endif
|
||||||
|
|
||||||
|
" vim-go {
|
||||||
|
let g:go_highlight_functions = 1
|
||||||
|
let g:go_highlight_methods = 1
|
||||||
|
let g:go_highlight_structs = 1
|
||||||
|
let g:go_highlight_interfaces = 1
|
||||||
|
let g:go_highlight_operators = 1
|
||||||
|
let g:go_highlight_build_constraints = 1
|
||||||
|
let g:go_fmt_autosave = 1
|
||||||
|
let g:go_fmt_command = 'gofmt'
|
||||||
|
let g:go_fmt_options= '-s'
|
||||||
|
let g:go_def_mode = 'godef'
|
||||||
|
let g:go_def_reuse_buffer = 0
|
||||||
|
|
||||||
|
au FileType go nmap <Leader>gds <Plug>(go-def-split)
|
||||||
|
au FileType go nmap <Leader>gdv <Plug>(go-def-vertical)
|
||||||
|
au FileType go nmap <Leader>gdt <Plug>(go-def-tab)
|
||||||
|
au FileType go nmap <Leader>gi <Plug>(go-imports)
|
||||||
|
" }
|
||||||
|
|
||||||
|
'';
|
||||||
|
|
||||||
|
vam.knownPlugins = pkgs.vimPlugins; # optional
|
||||||
|
vam.pluginDictionaries = [ # full ducomentation at github.com/MarcWeber/vim-addon-manager
|
||||||
|
"vim-go"
|
||||||
|
"neocomplete"
|
||||||
|
"vim-addon-vim2nix"
|
||||||
|
"vim-airline"
|
||||||
|
"vim-addon-nix"
|
||||||
|
"ctrlp"
|
||||||
|
"syntastic"
|
||||||
|
"vim-css-color"
|
||||||
|
"rainbow_parentheses"
|
||||||
|
"vim-colorschemes"
|
||||||
|
"vim-colorstepper"
|
||||||
|
"vim-signify"
|
||||||
|
];
|
||||||
|
};
|
||||||
|
}
|
Loading…
Add table
Add a link
Reference in a new issue