diff options
author | Tyler Davis <tydavis@gmail.com> | 2022-01-24 06:05:54 +0000 |
---|---|---|
committer | Tyler Davis <tydavis@gmail.com> | 2022-01-24 06:05:54 +0000 |
commit | b216ec0757114240aaec9fbe096540bac86a2f89 (patch) | |
tree | 3db3c7f5119a99422739c3319a6d0595111d95ab /.config/nvim/init.vim.bak | |
parent | ca6a962b913cfb9ef395d66dec3a228eedaa8b93 (diff) | |
download | dotfiles-b216ec0757114240aaec9fbe096540bac86a2f89.tar.gz dotfiles-b216ec0757114240aaec9fbe096540bac86a2f89.zip |
nvim: Switching to lua for config
Diffstat (limited to '.config/nvim/init.vim.bak')
-rw-r--r-- | .config/nvim/init.vim.bak | 416 |
1 files changed, 416 insertions, 0 deletions
diff --git a/.config/nvim/init.vim.bak b/.config/nvim/init.vim.bak new file mode 100644 index 0000000..dea37b2 --- /dev/null +++ b/.config/nvim/init.vim.bak @@ -0,0 +1,416 @@ +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" -> Vim-Plug +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +call plug#begin('~/.config/nvim/plugged') + +Plug 'jremmen/vim-ripgrep' +Plug 'stefandtw/quickfix-reflector.vim' +Plug 'fatih/vim-go', { 'do': ':GoUpdateBinaries' } +Plug 'buoto/gotests-vim' +Plug 'w0rp/ale' +Plug 'vim-scripts/DrawIt' +let $NVIM_TUI_ENABLE_TRUE_COLOR=1 +" Rust settings +Plug 'rust-lang/rust.vim' + +" Autocomplete +Plug 'Shougo/deoplete.nvim', { 'do': ':UpdateRemotePlugins' } + +" LSP +Plug 'nvim-lua/lsp-status.nvim' +Plug 'neovim/nvim-lspconfig' +Plug 'nvim-lua/lsp_extensions.nvim' +Plug 'nvim-lua/completion-nvim' +" Diagnostics in QuickFix/LocList +Plug 'onsails/diaglist.nvim' + +call plug#end() + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" -> General +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" Sets how many lines of history VIM has to remember +set history=500 + +" Enable filetype plugins +filetype plugin on +"filetype indent on + +" Set to auto read when a file is changed from the outside +set autoread +au FocusGained,BufEnter * checktime + +" :Ws sudo saves the file +" (useful for handling the permission-denied error) +command! Ws execute 'w !sudo tee % > /dev/null' <bar> edit! + +" Limit what can be done in the VIMRC +set secure + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" -> VIM user interface +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Set 7 lines to the cursor - when moving vertically using j/k +set so=7 + +" Avoid garbled characters in Chinese language windows OS +let $LANG='en' +set langmenu=en +source $VIMRUNTIME/delmenu.vim +source $VIMRUNTIME/menu.vim + +" Turn on the Wild menu +set wildmenu + +" Display wildmenu with specific options +set wildmode=list:longest,full + + +" Ignore compiled files +set wildignore=*.o,*~,*.pyc +if has("win16") || has("win32") + set wildignore+=.git\*,.hg\*,.svn\* +else + set wildignore+=*/.git/*,*/.hg/*,*/.svn/*,*/.DS_Store +endif + +"Always show current position +set ruler + +" Height of the command bar +set cmdheight=1 + +" A buffer becomes hidden when it is abandoned +set hid + +" Configure backspace so it acts as it should act +set backspace=eol,start,indent +set whichwrap+=<,>,h,l + +" Ignore case when searching +set ignorecase + +" When searching try to be smart about cases +set smartcase + +" Highlight search results +set hlsearch + +" Makes search act like search in modern browsers +set incsearch + +" Don't redraw while executing macros (good performance config) +set lazyredraw + +" For regular expressions turn magic on +set magic + +" Show matching brackets when text indicator is over them +set showmatch + +" How many tenths of a second to blink when matching brackets +set mat=2 + +" No annoying sound on errors +set noerrorbells +set novisualbell +set t_vb= +set tm=500 + +" time waited for key press(es) to complete. It makes for a faster key response +set ttyfast +set ttimeout +set ttimeoutlen=50 + +" Properly disable sound on errors on MacVim +if has("gui_macvim") + autocmd GUIEnter * set vb t_vb= +endif + +" Add a bit extra margin to the left +set foldcolumn=1 + +" new splits will be at the bottom or to the right side of the screen +set splitbelow +set splitright + +set showcmd " Show previous commands +set showmode " Display NORMAL/INSERT/VISUAL mode below statusline + +set number " We like line numbers + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" -> Colors and Fonts +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Enable syntax highlighting +"syntax enable + +" Disable syntax for now, but keep colors for the rest of the UI +syntax off + +" Enable 256 colors palette in Gnome Terminal +if $COLORTERM == 'gnome-terminal' + set t_Co=256 +endif + +try + colorscheme peachpuff +catch +endtry + +set background=light + +" Set extra options when running in GUI mode +if has("gui_running") + set guioptions-=T + set guioptions-=e + set t_Co=256 + set guitablabel=%M\ %t +endif + +" Set utf8 as standard encoding and en_US as the standard language +set encoding=utf8 + +" Use Unix as the standard file type +set ffs=unix,dos,mac + +set colorcolumn=250 "Disable formatting past 250 chars + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" -> Files, backups and undo +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Turn backup off, since most stuff is in SVN, git etc. anyway... +set nobackup +set nowb +set noswapfile +set shortmess+=I + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" -> Text, tab and indent related +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Use spaces instead of tabs +set expandtab + +" Be smart when using tabs ;) +set smarttab + +" 1 tab == 4 spaces +set shiftwidth=4 +set tabstop=4 + +" Linebreak on 500 characters +set lbr +set tw=500 + +set ai "Auto indent +set si "Smart indent +set wrap "Wrap lines + +set shiftround " When shifting lines, round indentation to nearest shiftwidth + + +"""""""""""""""""""""""""""""" +" -> Status line +"""""""""""""""""""""""""""""" +" Always show the status line +set laststatus=2 + +" Statusline definition +set statusline= +set statusline+=%7*\[%n] "buffernr +set statusline+=%1*\ %<%t\ "File+path +set statusline+=%3*\ %y\ "FileType +set statusline+=%4*\ %{''.(&fenc!=''?&fenc:&enc).''} "Encoding +set statusline+=%5*\ %{(&bomb?\",BOM\":\"\")}\ "Encoding2 +set statusline+=%6*\ %{&ff}\ "FileFormat (dos/unix..) +set statusline+=%7*\ %=\ row:%l/%L\ (%03p%%)\ "Rownumber/total (%) +set statusline+=%9*\ col:%03c\ "Colnr +set statusline+=%0*\ %m%r%w\ "Modified? Readonly? Top/bot. + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" -> Misc +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" Remove the Windows ^M - when the encodings gets messed up +noremap <Leader>m mmHmt:%s/<C-V><cr>//ge<cr>'tzt'm + +" Toggle paste mode on and off +map <leader>pp :setlocal paste!<cr> +set pastetoggle=<F2> + +" Disable mouse automatic mode +set mouse-=a + +" Enable line numbers toggle +noremap <leader>n :set invnumber<CR> + +" jump to the last position when reopening a file +if has("autocmd") + au BufReadPost * if line("'\"") > 1 && line("'\"") <= line("$") | exe "normal! g'\"" | endif +endif + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" -> Helper functions +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +" Trim whitespace at end of lines +nnoremap <leader>s :%s/\s\+$//e<CR> + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" -> General Code Settings +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +let g:deoplete#enable_at_startup = 1 + +" Fix weird JSON quotation issue +let g:vim_json_syntax_conceal = 0 + +" Enable Ripgrep formatting for vim +let g:rg_command = 'rg --vimgrep -S' + +" Code folding +set foldmethod=syntax +set foldlevel=1 +set foldnestmax=1 + +" -- Text wrap and expand spaces for yaml, css, js, etc +if has("autocmd") + " Syntax of these languages is fussy over tabs Vs spaces + autocmd FileType make setlocal ts=8 sts=8 sw=8 noexpandtab + autocmd FileType yaml setlocal ts=2 sts=2 sw=2 expandtab + + " Customisations based on house-style (arbitrary) + autocmd FileType html setlocal ts=2 sts=2 sw=2 expandtab + autocmd FileType css setlocal ts=2 sts=2 sw=2 expandtab + autocmd FileType javascript setlocal ts=4 sts=4 sw=4 noexpandtab + + " Treat .rss files as XML + autocmd BufNewFile,BufRead *.rss setfiletype xml +endif + +" Persistent Undo +if has('persistent_undo') + set undolevels=5000 + set undodir=$HOME/.vim_undofiles + set undofile +endif + +" Put LSP stuff in the quickfix window +"lua vim.diagnostic.setqflist() + +" Enable diagnostic list in qfix/loclist +lua << EOF + require("diaglist").init({ + -- optional settings + -- below are defaults + + -- increase for noisy servers + debounce_ms = 50, + + -- list in quickfix only diagnostics from clients + -- attached to a current buffer + -- if false, all buffers' clients diagnostics is collected + buf_clients_only = true, +}) +EOF + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" -> ALE Settings +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +let g:LanguageClient_serverCommands = { + \ 'rust': ['rust-analyzer'], + \ } +let g:ale_linters = {'rust': ['rust-analyzer']} +let g:ale_markdown_markdownlint_options = "--config ~/.mdlrc" + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" -> Golang Settings +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +let g:go_def_mode='gopls' +let g:go_info_mode='gopls' +let g:go_gopls_gofumpt=1 +let g:go_metalinter_command = 'golangci-lint' +let g:go_fmt_command="gopls" + +" By default syntax-highlighting for Functions, Methods and Structs is disabled +let g:go_highlight_build_constraints = 1 +let g:go_highlight_fields = 1 +let g:go_highlight_functions = 1 +let g:go_highlight_interfaces = 1 +let g:go_highlight_methods = 1 +let g:go_highlight_operators = 1 +let g:go_highlight_structs = 1 + +" Auto-space Go files +autocmd BufNewFile,BufRead *.go setlocal noexpandtab tabstop=4 shiftwidth=4 + +" vim-go mappings +au FileType go nmap <leader>b <Plug>(go-build) +au FileType go nmap <leader>c <Plug>(go-coverage) +"au FileType go nmap <leader>r <Plug>(go-run) +au FileType go nmap <leader>t <Plug>(go-test) +au FileType go nmap <leader>d <Plug>(go-def) + +" Go implements (interfaces under cursor) +"au FileType go nmap <Leader>s <Plug>(go-implements) + +" Go show type info under cursor +au FileType go nmap <Leader>i <Plug>(go-info) + +" Go rename +"au FileType go nmap <Leader>e <Plug>(go-rename) + +" Go vet +au FileType go nmap <Leader>v <Plug>(go-vet) + +" Godoc under cursor +au FileType go nmap <Leader>k <Plug>(go-doc) + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" +" -> Rust Settings +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + +let g:rustfmt_autosave = 1 + +if has('nvim') + " Rust LSP support for rust-analyzer + lua << EOF + local nvim_lsp = require'lspconfig' + + local on_attach = function(client) + require'completion'.on_attach(client) + end + + -- Auto-imports + nvim_lsp.rust_analyzer.setup({ + on_attach=on_attach, + settings = { + ["rust-analyzer"] = { + assist = { + importGranularity = "module", + importPrefix = "by_self", + }, + cargo = { + loadOutDirsFromCheck = true + }, + procMacro = { + enable = true + }, + } + } + }) + + -- Enable diagnostics + vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with( + vim.lsp.diagnostic.on_publish_diagnostics, { + virtual_text = true, + signs = true, + update_in_insert = true, + } + ) +EOF + +endif + +""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""" + |