aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAriel D'ALessandro <dalessandro.ariel@gmail.com>2021-07-26 20:57:58 +0200
committerAriel D'ALessandro <dalessandro.ariel@gmail.com>2021-07-26 20:57:58 +0200
commit7982e2fae5defeb296c210e2aae098a8a11df25a (patch)
treedbcc2ff9d9cec7039635fa0550bbbd02dae82b1a
downloadnvim-conf-7982e2fae5defeb296c210e2aae098a8a11df25a.tar.gz
nvim-conf-7982e2fae5defeb296c210e2aae098a8a11df25a.zip
Initialization of the repository, copy from https://github.com/adalessa/dotfiles
-rw-r--r--init.vim109
-rw-r--r--lua/alpha/init.lua1
-rw-r--r--lua/alpha/status-line.lua24
-rw-r--r--lua/alpha/telescope.lua44
-rw-r--r--plugin/colors.vim29
-rw-r--r--plugin/git.vim12
-rw-r--r--plugin/lsp.vim66
-rw-r--r--plugin/navigation.vim16
-rw-r--r--plugin/sets.vim29
-rw-r--r--plugin/status.vim1
-rw-r--r--plugin/telescope.vim26
-rw-r--r--plugin/test.vim5
-rw-r--r--plugin/vimspector.vim32
13 files changed, 394 insertions, 0 deletions
diff --git a/init.vim b/init.vim
new file mode 100644
index 0000000..bc92a5d
--- /dev/null
+++ b/init.vim
@@ -0,0 +1,109 @@
+" Allows to have a .nvimrc per project folder
+set exrc
+
+" Install Vimplug if not installed
+if ! filereadable(expand('~/.config/nvim/autoload/plug.vim'))
+ echo "Downloading junegunn/vim-plug to manage plugins..."
+ silent !mkdir -p ~/.config/nvim/autoload/
+ silent !curl "https://raw.githubusercontent.com/junegunn/vim-plug/master/plug.vim" > ~/.config/nvim/autoload/plug.vim
+ autocmd VimEnter * PlugInstall
+endif
+
+" Set plugin folder
+call plug#begin('~/.config/nvim/plugged')
+
+" LSP
+Plug 'neovim/nvim-lspconfig'
+" Plug 'nvim-lua/completion-nvim'
+Plug 'hrsh7th/nvim-compe'
+Plug 'anott03/nvim-lspinstall'
+
+" General use plugins
+Plug 'Raimondi/delimitMate'
+Plug 'tpope/vim-surround'
+Plug 'tpope/vim-fugitive'
+Plug 'tpope/vim-repeat'
+Plug 'tpope/vim-obsession'
+Plug 'tpope/vim-vinegar'
+Plug 'tpope/vim-eunuch'
+Plug 'tpope/vim-commentary'
+Plug 'tpope/vim-tbone'
+Plug 'tpope/vim-dadbod'
+Plug 'airblade/vim-gitgutter'
+Plug 'hashivim/vim-terraform'
+Plug 'mattn/emmet-vim'
+
+Plug 'nicwest/vim-http'
+
+Plug 'vimwiki/vimwiki'
+
+" Laravel specific
+Plug 'tpope/vim-dispatch'
+Plug 'tpope/vim-projectionist'
+Plug 'noahfrederick/vim-composer'
+Plug 'noahfrederick/vim-laravel'
+Plug 'jwalton512/vim-blade'
+
+" Treesitter
+Plug 'nvim-treesitter/nvim-treesitter', {'do': ':TSUpdate'}
+Plug 'nvim-treesitter/playground'
+
+" Golang
+Plug 'fatih/vim-go'
+
+" Testing
+Plug 'vim-test/vim-test'
+
+" Debug
+Plug 'mfussenegger/nvim-dap'
+Plug 'puremourning/vimspector'
+Plug 'szw/vim-maximizer'
+
+Plug 'gruvbox-community/gruvbox'
+
+" Telescope
+Plug 'nvim-lua/popup.nvim'
+Plug 'nvim-lua/plenary.nvim'
+Plug 'nvim-telescope/telescope.nvim'
+Plug 'nvim-telescope/telescope-fzy-native.nvim'
+
+Plug 'kyazdani42/nvim-web-devicons'
+
+Plug 'hoob3rt/lualine.nvim'
+
+Plug 'sbdchd/neoformat'
+
+Plug 'mbbill/undotree'
+
+call plug#end()
+
+syntax enable
+
+let mapleader = ' '
+
+inoremap <C-c> <esc>
+
+nnoremap <Leader><CR> :so ~/.config/nvim/init.vim<CR>
+nnoremap <leader>uu :UndotreeToggle<CR>
+
+let g:vimwiki_list = [{'path': '~/vimwiki/',
+ \ 'syntax': 'markdown', 'ext': '.md'}]
+
+let g:gitgutter_map_keys = 0
+
+" forward and backward search of current word
+nnoremap * /\<<C-R>=expand('<cword>')<CR>\><CR>
+nnoremap # ?\<<C-R>=expand('<cword>')<CR>\><CR>
+
+vnoremap <leader>p "_dP
+
+" remove whitespaces
+autocmd BufWritePre * %s/\s\+$//e
+
+augroup fmtphp
+ autocmd!
+ autocmd BufWritePre *.php undojoin | Neoformat
+augroup END
+
+" Has to be the last line for the .nvimrc per project
+set secure
diff --git a/lua/alpha/init.lua b/lua/alpha/init.lua
new file mode 100644
index 0000000..fa7dd53
--- /dev/null
+++ b/lua/alpha/init.lua
@@ -0,0 +1 @@
+require("alpha.telescope")
diff --git a/lua/alpha/status-line.lua b/lua/alpha/status-line.lua
new file mode 100644
index 0000000..63523f4
--- /dev/null
+++ b/lua/alpha/status-line.lua
@@ -0,0 +1,24 @@
+require('lualine').setup{
+ options = {
+ theme = 'gruvbox',
+ section_separators = { '', '' },
+ component_separators = { '', '' },
+ icons_enabled = true,
+ },
+ sections = {
+ lualine_a = { { 'mode', upper = true } },
+ lualine_b = { { 'branch', icon = '' } },
+ lualine_c = { { 'filename', file_status = true, path = 1 } },
+ lualine_x = { { 'diagnostics', sources = { 'nvim_lsp' } },'encoding', 'fileformat', 'filetype' },
+ lualine_y = { 'progress' },
+ lualine_z = { 'location' },
+ },
+ inactive_sections = {
+ lualine_a = { },
+ lualine_b = { },
+ lualine_c = { 'filename' },
+ lualine_x = { 'location' },
+ lualine_y = { },
+ lualine_z = { },
+ },
+ }
diff --git a/lua/alpha/telescope.lua b/lua/alpha/telescope.lua
new file mode 100644
index 0000000..bbb0b02
--- /dev/null
+++ b/lua/alpha/telescope.lua
@@ -0,0 +1,44 @@
+local actions = require('telescope.actions')
+require('telescope').setup {
+ defaults = {
+ file_sorter = require('telescope.sorters').get_fzy_sorter,
+ prompt_prefix = ' >',
+ use_less = false,
+ set_env = { ['COLORTERM'] = 'truecolor' },
+
+ file_previewer = require('telescope.previewers').vim_buffer_cat.new,
+ grep_previewer = require('telescope.previewers').vim_buffer_vimgrep.new,
+ qflist_previewer = require('telescope.previewers').vim_buffer_qflist.new,
+
+ mappings = {
+ i = {
+ ["<C-x>"] = false,
+ ["<C-q>"] = actions.send_to_qflist,
+ },
+ }
+ },
+ extensions = {
+ fzy_native = {
+ override_generic_sorter = false,
+ override_file_sorter = true,
+ }
+ }
+}
+
+require('telescope').load_extension('fzy_native')
+
+local M = {}
+
+M.search_config = function()
+ require("telescope.builtin").find_files({
+ prompt_title = "< Config >",
+ cwd = "$HOME/.config/nvim",
+ file_ignore_patterns = {"undodir/*", "plugged/*"}
+ })
+end
+
+M.buffers = function()
+ require("telescope.builtin").buffers()
+end
+
+return M
diff --git a/plugin/colors.vim b/plugin/colors.vim
new file mode 100644
index 0000000..695fb91
--- /dev/null
+++ b/plugin/colors.vim
@@ -0,0 +1,29 @@
+fun! ColorMyPencils()
+ let g:gruvbox_contrast_dark = 'hard'
+ let g:gruvbox_bold = 0
+ if exists('+termguicolors')
+ let &t_8f = "\<Esc>[38;2;%lu;%lu;%lum"
+ let &t_8b = "\<Esc>[48;2;%lu;%lu;%lum"
+ endif
+ let g:gruvbox_invert_selection = '0'
+
+ set background=dark
+ colorscheme gruvbox
+
+ " Transparency
+ highlight Normal ctermbg=NONE guibg=NONE
+ highlight EndOfBuffer ctermbg=NONE guibg=NONE
+
+ highlight ColorColumn ctermbg=0 guibg=grey
+ " highlight Normal guibg=none
+ " highlight LineNr guifg=#ff8659
+ " highlight LineNr guifg=#aed75f
+ highlight LineNr guifg=#5eacd3
+ highlight netrwDir guifg=#5eacd3
+ highlight qfFileName guifg=#aed75f
+ hi TelescopeBorder guifg=#5eacd
+endfun
+
+call ColorMyPencils()
+
+nnoremap <leader>cc :call ColorMyPencils()<CR>
diff --git a/plugin/git.vim b/plugin/git.vim
new file mode 100644
index 0000000..21bcc9a
--- /dev/null
+++ b/plugin/git.vim
@@ -0,0 +1,12 @@
+nmap ]h <Plug>(GitGutterNextHunk)
+nmap [h <Plug>(GitGutterPrevHunk)
+
+nmap ghs <Plug>(GitGutterStageHunk)
+nmap ghu <Plug>(GitGutterUndoHunk)
+
+" nmap <Leader>gs :G<CR>
+nmap <Leader>gdh :diffget //2<CR>
+nmap <Leader>gdl :diffget //3<CR>
+
+nnoremap <leader>ga :Git fetch --all<CR>
+nnoremap <leader>gl :Git pull<CR>
diff --git a/plugin/lsp.vim b/plugin/lsp.vim
new file mode 100644
index 0000000..02b57a1
--- /dev/null
+++ b/plugin/lsp.vim
@@ -0,0 +1,66 @@
+let g:compe = {}
+let g:compe.enabled = v:true
+let g:compe.autocomplete = v:true
+let g:compe.debug = v:false
+let g:compe.min_length = 1
+let g:compe.preselect = 'enable'
+let g:compe.throttle_time = 80
+let g:compe.source_timeout = 200
+let g:compe.incomplete_delay = 400
+let g:compe.max_abbr_width = 100
+let g:compe.max_kind_width = 100
+let g:compe.max_menu_width = 100
+let g:compe.documentation = v:true
+
+let g:compe.source = {}
+let g:compe.source.path = v:true
+let g:compe.source.buffer = v:true
+let g:compe.source.calc = v:true
+let g:compe.source.nvim_lsp = v:true
+let g:compe.source.nvim_lua = v:true
+let g:compe.source.vsnip = v:true
+
+inoremap <silent><expr> <C-Space> compe#complete()
+inoremap <silent><expr> <CR> compe#confirm('<CR>')
+inoremap <silent><expr> <C-e> compe#close('<C-e>')
+inoremap <silent><expr> <C-f> compe#scroll({ 'delta': +4 })
+inoremap <silent><expr> <C-d> compe#scroll({ 'delta': -4 })
+
+fun! LspLocationList()
+ lua vim.lsp.diagnostic.set_loclist({open_loclist = false})
+endfun
+
+augroup alpha_lsp
+ autocmd!
+ autocmd! BufWrite,BufEnter,InsertLeave * :call LspLocationList()
+augroup END
+
+nnoremap <leader>vd :lua vim.lsp.buf.definition()<CR>
+nnoremap <leader>vsh :lua vim.lsp.buf.signature_help()<CR>
+nnoremap <leader>vh :lua vim.lsp.buf.hover()<CR>
+
+" to test
+nnoremap <leader>vi :lua vim.lsp.buf.implementation()<CR>
+nnoremap <leader>vrn :lua vim.lsp.buf.rename()<CR>
+nnoremap <leader>vca :lua vim.lsp.buf.code_action()<CR>
+nnoremap <leader>vsd :lua vim.lsp.util.show_line_diagnostics(); vim.lsp.util.show_line_diagnostics()<CR>
+nnoremap <leader>vn :lua vim.lsp.diagnostic.goto_next()<CR>
+
+nnoremap <leader>vo :LspRestart<CR>
+
+
+au Filetype php setl omnifunc=v:lua.vim.lsp.omnifunc
+autocmd FileType go setlocal omnifunc=v:lua.vim.lsp.omnifunc
+
+let g:completion_matching_strategy_list = ['exact', 'substring', 'fuzzy']
+
+lua << EOF
+
+local function on_attach()
+ vim.api.nvim_set_keymap('n', 'K', ':lua vim.lsp.buf.hover()<cr>', {noremap = true})
+end
+require'lspconfig'.tsserver.setup{ on_attach=on_attach }
+require'lspconfig'.intelephense.setup{ on_attach=on_attach }
+require'lspconfig'.gopls.setup{ on_attach=on_attach }
+require'lspconfig'.sumneko_lua.setup{ on_attach=on_attach }
+EOF
diff --git a/plugin/navigation.vim b/plugin/navigation.vim
new file mode 100644
index 0000000..ff3c652
--- /dev/null
+++ b/plugin/navigation.vim
@@ -0,0 +1,16 @@
+nnoremap <leader>h :wincmd h<CR>
+nnoremap <leader>j :wincmd j<CR>
+nnoremap <leader>k :wincmd k<CR>
+nnoremap <leader>l :wincmd l<CR>
+nnoremap <leader>q :wincmd q<CR>
+
+nnoremap <leader>vsp :vsp<CR>
+nnoremap <leader>sp :sp<CR>
+
+nnoremap <C-j> :cnext<CR>
+nnoremap <C-k> :cprev<CR>
+
+nnoremap <leader>i :lnext<CR>
+nnoremap <leader>o :lprev<CR>
+
+nnoremap <leader>bd :bd<CR>
diff --git a/plugin/sets.vim b/plugin/sets.vim
new file mode 100644
index 0000000..5a170a9
--- /dev/null
+++ b/plugin/sets.vim
@@ -0,0 +1,29 @@
+set nu
+set relativenumber
+set hidden
+set expandtab
+set tabstop=4 softtabstop=4
+set shiftwidth=4
+set smartindent
+set noerrorbells
+set nowrap
+set noswapfile
+set undofile
+set undodir=~/.config/nvim/undodir
+set nohlsearch
+set incsearch
+set termguicolors
+set scrolloff=4
+set noshowmode
+set clipboard+=unnamedplus
+set completeopt=menuone,noinsert,noselect
+set signcolumn=yes
+set colorcolumn=80
+set splitbelow
+set splitright
+set autowrite
+
+set cmdheight=2
+
+" improve user experience updating more frequently
+set updatetime=50
diff --git a/plugin/status.vim b/plugin/status.vim
new file mode 100644
index 0000000..9936f3e
--- /dev/null
+++ b/plugin/status.vim
@@ -0,0 +1 @@
+lua require("alpha.status-line")
diff --git a/plugin/telescope.vim b/plugin/telescope.vim
new file mode 100644
index 0000000..e057d4c
--- /dev/null
+++ b/plugin/telescope.vim
@@ -0,0 +1,26 @@
+lua require("alpha")
+
+let g:telescope_cache_results = 1
+let g:telescope_prime_fuzzy_find = 1
+
+nnoremap <leader>ps :lua require('telescope.builtin').grep_string({ search = vim.fn.input("Grep For > ")})<CR>
+nnoremap <leader>pw :lua require('telescope.builtin').grep_string({ search = vim.fn.expand("<cword>")})<CR>
+
+nnoremap <leader>pp :lua require('telescope.builtin').git_files()<CR>
+nnoremap <leader>po :lua require('telescope.builtin').find_files()<CR>
+
+nnoremap <leader>pv :lua require('telescope.builtin').lsp_workspace_symbols({ query = vim.fn.input("Symbols > ")})<CR>
+
+nnoremap <leader>pe :lua require('alpha.telescope').buffers()<CR>
+
+nnoremap <leader>bb :lua require('telescope.builtin').file_browser()<CR>
+
+nnoremap <leader>gc :lua require('telescope.builtin').git_branches()<CR>
+nnoremap <leader>gs :lua require('telescope.builtin').git_status()<CR>
+
+nnoremap <leader>rc :lua require('alpha.telescope').search_config()<CR>
+
+nnoremap <leader>vrr :lua require('telescope.builtin').lsp_references()<CR>
+
+nnoremap <leader>vs :lua require('telescope.builtin').lsp_document_symbols()<CR>
+nnoremap <leader>ve :lua require('telescope.builtin').lsp_document_diagnostics()<CR>
diff --git a/plugin/test.vim b/plugin/test.vim
new file mode 100644
index 0000000..0f0c85b
--- /dev/null
+++ b/plugin/test.vim
@@ -0,0 +1,5 @@
+nmap <silent> t<C-n> :TestNearest<CR>
+nmap <silent> t<C-f> :TestFile<CR>
+nmap <silent> t<C-s> :TestSuite<CR>
+nmap <silent> t<C-l> :TestLast<CR>
+nmap <silent> t<C-g> :TestVisit<CR>
diff --git a/plugin/vimspector.vim b/plugin/vimspector.vim
new file mode 100644
index 0000000..8223a38
--- /dev/null
+++ b/plugin/vimspector.vim
@@ -0,0 +1,32 @@
+" Debuggin config
+fun! GotoWindow(id)
+ call win_gotoid(a:id)
+ MaximizerToggle
+endfun
+
+let g:vimspector_enable_mappings = 'HUMAN'
+
+" Debugger remaps
+nnoremap <leader>m :MaximizerToggle!<CR>
+nnoremap <leader>dd :call vimspector#Launch()<CR>
+nnoremap <leader>dc :call GotoWindow(g:vimspector_session_windows.code)<CR>
+nnoremap <leader>dt :call GotoWindow(g:vimspector_session_windows.tagpage)<CR>
+nnoremap <leader>dv :call GotoWindow(g:vimspector_session_windows.variables)<CR>
+nnoremap <leader>dw :call GotoWindow(g:vimspector_session_windows.watches)<CR>
+nnoremap <leader>ds :call GotoWindow(g:vimspector_session_windows.stack_trace)<CR>
+nnoremap <leader>do :call GotoWindow(g:vimspector_session_windows.output)<CR>
+nnoremap <leader>de :call vimspector#Reset()<CR>
+
+nnoremap <leader>dtcb :call vimspector#CleanLineBreakpoint()<CR>
+
+nmap <leader>dl <Plug>VimspectorStepInto
+nmap <leader>dj <Plug>VimspectorStepOver
+nmap <leader>dk <Plug>VimspectorStepOut
+nmap <leader>d_ <Plug>VimspectorRestart
+nnoremap <leader>d<space> :call vimspector#Continue()<CR>
+
+nmap <leader>drc <Plug>VimspectorRunToCursor
+nmap <leader>dbp <Plug>VimspectorToggleBreakpoint
+nmap <leader>dcbp <Plug>VimspectorToggleConditionalBreakpoint
+
+let g:vimspector_install_gadgets = [ 'vscode-go' ]