summaryrefslogtreecommitdiffstats
path: root/.config/nvim/init.vim.bak
diff options
context:
space:
mode:
authorTyler Davis <tydavis@gmail.com>2022-01-24 06:05:54 +0000
committerTyler Davis <tydavis@gmail.com>2022-01-24 06:05:54 +0000
commitb216ec0757114240aaec9fbe096540bac86a2f89 (patch)
tree3db3c7f5119a99422739c3319a6d0595111d95ab /.config/nvim/init.vim.bak
parentca6a962b913cfb9ef395d66dec3a228eedaa8b93 (diff)
downloaddotfiles-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.bak416
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
+
+"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
+