diff --git a/init.vim b/init.vim index 8b7a8c5..833c71c 100644 --- a/init.vim +++ b/init.vim @@ -3,32 +3,34 @@ call plug#begin('~/.local/share/nvim/plugged') Plug 'davidhalter/jedi-vim' Plug 'Shougo/deoplete.nvim', {'do': ':UpdateRemotePlugins'} Plug 'zchee/deoplete-jedi' -Plug 'sbdchd/neoformat' +Plug 'ncm2/float-preview.nvim' Plug 'dense-analysis/ale' Plug 'jacoborus/tender.vim' Plug 'vim-airline/vim-airline' +Plug 'vim-airline/vim-airline-themes' Plug 'airblade/vim-gitgutter' Plug 'scrooloose/nerdtree' +Plug 'gleam-lang/gleam.vim' call plug#end() -let g:deoplete#enable_at_startup=1 -autocmd InsertLeave,CompleteDone * if pumvisible() == 0 | pclose | endif -inoremap pumvisible() ? "\" : "\" +let g:airline_theme='base16_atelierlakeside' +let g:airline#extensions#ale#enabled=1 -" Enable alignment -let g:neoformat_basic_format_align=1 -" Enable tab to spaces conversion -let g:neoformat_basic_format_retab=1 -" Enable trimmming of trailing whitespace -let g:neoformat_basic_format_trim=1 -let g:neoformat_try_formatprg=0 +let g:deoplete#enable_at_startup=1 +" autocmd InsertLeave,CompleteDone * if pumvisible() == 0 | pclose | endif +inoremap pumvisible() ? "\" : "\" " disable autocompletion, cause we use deoplete for completion let g:jedi#completions_enabled=0 " open the go-to function in split, not another buffer let g:jedi#use_splits_not_buffers="right" +" Preview window is floating +let g:float_preview#docked=0 +let g:float_preview#max_width=100 +let g:float_preview#max_height=150 +let g:float_preview#auto_close=0 set tabstop=4 set softtabstop=4 @@ -38,35 +40,46 @@ set expandtab set autoindent set fileformat=unix set number - +" Hide top preview window, use float_preview instead +set completeopt-=preview " Enable folding on indent set foldmethod=indent set foldlevel=79 " Lint and check types -let b:ale_linters=['mypy', 'pyls', 'pylint'] +let b:ale_linters={ +\ 'python': ['mypy', 'pyls', 'pylint'], +\ 'ocaml': ['merlin'], +\ 'rust': ['rls'] +\ } +let b:ale_fixers = { +\ 'rust': ['rustfmt'], +\ 'python': ['autopep8'], +\ 'ocaml': ['ocamlformat'] +\} + +let g:ale_rust_rls_executable = 'rust-analyzer' +let g:ale_fix_on_save=1 let g:ale_lint_on_save=1 let g:ale_list_window_size=20 -" Fix syntax with autopep8. -" let b:ale_fixers=['autopep8'] -" let g:ale_fix_on_save=1 " Use .venv as a global default let g:ale_virtualenv_dir_names=['.venv'] - let g:ale_completion_enabled=1 let g:ale_sign_error="✗" let g:ale_sign_warning="⚠" +let g:ale_echo_msg_error_str = 'E' +let g:ale_echo_msg_warning_str = 'W' +let g:ale_echo_msg_format = '[%linter%] %s [%severity%]' " Enable warnings about trailing whitespace for all files. let b:ale_warn_about_trailing_whitespace=1 -nmap e: ALEDetail +nmap e :ALEDetail +noremap d :ALEGoToDefinition " ALE colors -highlight ALEWarning ctermbg=Yellow -highlight ALEWarning ctermfg=Black -highlight ALEError ctermbg=DarkRed -highlight ALEError ctermfg=White +highlight ALEError ctermbg=DarkRed ctermfg=Black +highlight ALEWarning ctermbg=Yellow ctermfg=White " Use TAB to switch between buffers noremap :bn @@ -78,24 +91,23 @@ match WhitespaceEOL /\s\+\%#\@ :let _s=@/:%s/\s\+$//e:let @/=_s " Much better with Tomorrow Night Bright color theme set in alacritty -set background=dark +" set background=dark highlight Search ctermfg=Black highlight Comment ctermfg=Grey -highlight SignColumn ctermbg=236 -highlight LineNr ctermfg=244 -highlight LineNr ctermbg=232 -highlight Folded ctermbg=DarkGreen -highlight Folded ctermfg=Black +highlight SignColumn ctermbg=0 +highlight LineNr ctermbg=0 ctermfg=248 +highlight Folded ctermbg=Green ctermfg=Black +highlight Pmenu ctermbg=gray guibg=gray -highlight GitGutterAdd guibg=#22ff22 guifg=#000000 ctermfg=Green -highlight GitGutterChange guibg=#bbbb00 guifg=#000000 ctermfg=Yellow -highlight GitGutterDelete guibg=#ff2222 guifg=#000000 ctermfg=DarkRed +highlight GitGutterAdd ctermfg=Green +highlight GitGutterChange ctermfg=Yellow +highlight GitGutterDelete ctermfg=DarkRed let g:gitgutter_sign_added='+' -let g:gitgutter_sign_modified='-+' +let g:gitgutter_sign_modified='±' let g:gitgutter_sign_removed='-' -let g:gitgutter_sign_removed_first_line='^^' -let g:gitgutter_sign_modified_removed='--' +let g:gitgutter_sign_removed_first_line='^' +let g:gitgutter_sign_modified_removed='-' let g:gitgutter_map_keys=0 " Toggles on different plugins/modes @@ -106,9 +118,15 @@ nmap :GitGutterBufferToggle nmap :NERDTreeToggle set pastetoggle= +autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab + " Maintain undo history between sessions -if !isdirectory("/tmp/.vim-undo-dir") -call mkdir("/tmp/.vim-undo-dir", "", 0700) +if !isdirectory("/tmp/.vim-undo-dir-vladan") + call mkdir("/tmp/.vim-undo-dir-vladan", "", 0700) endif -set undodir=/tmp/.vim-undo-dir +set undodir=/tmp/.vim-undo-dir-vladan set undofile +" Enable vimrc files per project +set exrc +" Disable unsafe commands in project vimrc +set secure