From 5b61e22c6cc31b94a2e3770c64c96eb99a386ae0 Mon Sep 17 00:00:00 2001 From: Alex Yatskov Date: Fri, 21 Oct 2022 17:55:56 -0700 Subject: [PATCH] Switch to Lua for nvim config --- .gitmodules | 24 +-- ftplugin/c.lua | 1 + ftplugin/c.vim | 8 - ftplugin/cpp.lua | 1 + ftplugin/cpp.vim | 8 - ftplugin/go.lua | 12 ++ ftplugin/go.vim | 14 -- ftplugin/html.lua | 1 + ftplugin/html.vim | 1 - ftplugin/markdown.lua | 3 + ftplugin/markdown.vim | 3 - ftplugin/yaml.lua | 2 + ftplugin/yaml.vim | 2 - ginit.vim | 8 - gvim.vim | 15 -- init.lua | 198 +++++++++++++++++++ init.vim | 4 - keymaps.vim | 43 ---- link_vim.bat | 4 - link_vim.sh | 6 - lua/ginit.lua | 13 ++ options.vim | 61 ------ pack/plugins/opt/fzf | 1 - pack/plugins/opt/fzf.vim | 1 - pack/plugins/opt/hflip.nvim | 1 - pack/plugins/{opt => start}/cmp-nvim-lsp | 0 pack/plugins/{opt => start}/cmp-vsnip | 0 pack/plugins/start/hflip.nvim | 1 + pack/plugins/{opt => start}/nvim-cmp | 0 pack/plugins/{opt => start}/nvim-lspconfig | 0 pack/plugins/start/telescope-fzf-native.nvim | 1 + pack/plugins/start/telescope.nvim | 1 + pack/plugins/{opt => start}/vim-vsnip | 0 plugins.vim | 173 ---------------- util.vim | 50 ----- 35 files changed, 246 insertions(+), 415 deletions(-) create mode 100644 ftplugin/c.lua delete mode 100644 ftplugin/c.vim create mode 100644 ftplugin/cpp.lua delete mode 100644 ftplugin/cpp.vim create mode 100644 ftplugin/go.lua delete mode 100644 ftplugin/go.vim create mode 100644 ftplugin/html.lua delete mode 100644 ftplugin/html.vim create mode 100644 ftplugin/markdown.lua delete mode 100644 ftplugin/markdown.vim create mode 100644 ftplugin/yaml.lua delete mode 100644 ftplugin/yaml.vim delete mode 100644 ginit.vim delete mode 100644 gvim.vim create mode 100644 init.lua delete mode 100644 init.vim delete mode 100644 keymaps.vim delete mode 100644 link_vim.bat delete mode 100755 link_vim.sh create mode 100644 lua/ginit.lua delete mode 100644 options.vim delete mode 160000 pack/plugins/opt/fzf delete mode 160000 pack/plugins/opt/fzf.vim delete mode 160000 pack/plugins/opt/hflip.nvim rename pack/plugins/{opt => start}/cmp-nvim-lsp (100%) rename pack/plugins/{opt => start}/cmp-vsnip (100%) create mode 160000 pack/plugins/start/hflip.nvim rename pack/plugins/{opt => start}/nvim-cmp (100%) rename pack/plugins/{opt => start}/nvim-lspconfig (100%) create mode 160000 pack/plugins/start/telescope-fzf-native.nvim create mode 160000 pack/plugins/start/telescope.nvim rename pack/plugins/{opt => start}/vim-vsnip (100%) delete mode 100644 plugins.vim delete mode 100644 util.vim diff --git a/.gitmodules b/.gitmodules index 25d9972..2bbfbeb 100644 --- a/.gitmodules +++ b/.gitmodules @@ -43,12 +43,6 @@ [submodule ".vim/bundle/vim-signify"] path = pack/plugins/start/vim-signify url = https://github.com/mhinz/vim-signify.git -[submodule ".vim/bundle/fzf"] - path = pack/plugins/opt/fzf - url = https://github.com/junegunn/fzf -[submodule ".vim/bundle/fzf.vim"] - path = pack/plugins/opt/fzf.vim - url = https://github.com/junegunn/fzf.vim.git [submodule ".vim/bundle/tcomment_vim"] path = pack/plugins/start/tcomment_vim url = https://github.com/tomtom/tcomment_vim @@ -65,19 +59,19 @@ path = pack/plugins/start/vim-polyglot url = https://github.com/sheerun/vim-polyglot [submodule "pack/plugins/opt/cmp-nvim-lsp"] - path = pack/plugins/opt/cmp-nvim-lsp + path = pack/plugins/start/cmp-nvim-lsp url = https://github.com/hrsh7th/cmp-nvim-lsp.git [submodule "pack/plugins/opt/nvim-lspconfig"] - path = pack/plugins/opt/nvim-lspconfig + path = pack/plugins/start/nvim-lspconfig url = https://github.com/neovim/nvim-lspconfig.git [submodule "pack/plugins/opt/nvim-cmp"] - path = pack/plugins/opt/nvim-cmp + path = pack/plugins/start/nvim-cmp url = https://github.com/hrsh7th/nvim-cmp.git [submodule "pack/plugins/opt/cmp-vsnip"] - path = pack/plugins/opt/cmp-vsnip + path = pack/plugins/start/cmp-vsnip url = https://github.com/hrsh7th/cmp-vsnip [submodule "pack/plugins/opt/vim-vsnip"] - path = pack/plugins/opt/vim-vsnip + path = pack/plugins/start/vim-vsnip url = https://github.com/hrsh7th/vim-vsnip [submodule "pack/plugins/start/suda.vim"] path = pack/plugins/start/suda.vim @@ -86,5 +80,11 @@ path = pack/plugins/start/plenary.nvim url = https://github.com/nvim-lua/plenary.nvim.git [submodule "pack/plugins/opt/hflip.nvim"] - path = pack/plugins/opt/hflip.nvim + path = pack/plugins/start/hflip.nvim url = https://github.com/FooSoft/hflip.nvim.git +[submodule "pack/plugins/opt/telescope.nvim"] + path = pack/plugins/start/telescope.nvim + url = https://github.com/nvim-telescope/telescope.nvim.git +[submodule "pack/plugins/opt/telescope-fzf-native.nvim"] + path = pack/plugins/start/telescope-fzf-native.nvim + url = https://github.com/nvim-telescope/telescope-fzf-native.nvim.git diff --git a/ftplugin/c.lua b/ftplugin/c.lua new file mode 100644 index 0000000..6a1a781 --- /dev/null +++ b/ftplugin/c.lua @@ -0,0 +1 @@ +vim.diagnostic.disable() diff --git a/ftplugin/c.vim b/ftplugin/c.vim deleted file mode 100644 index 494e6c3..0000000 --- a/ftplugin/c.vim +++ /dev/null @@ -1,8 +0,0 @@ -" vim-fswitch -noremap gfs :HFlip - -if has('nvim') -lua << EOF - vim.diagnostic.disable() -EOF -endif diff --git a/ftplugin/cpp.lua b/ftplugin/cpp.lua new file mode 100644 index 0000000..6a1a781 --- /dev/null +++ b/ftplugin/cpp.lua @@ -0,0 +1 @@ +vim.diagnostic.disable() diff --git a/ftplugin/cpp.vim b/ftplugin/cpp.vim deleted file mode 100644 index 494e6c3..0000000 --- a/ftplugin/cpp.vim +++ /dev/null @@ -1,8 +0,0 @@ -" vim-fswitch -noremap gfs :HFlip - -if has('nvim') -lua << EOF - vim.diagnostic.disable() -EOF -endif diff --git a/ftplugin/go.lua b/ftplugin/go.lua new file mode 100644 index 0000000..55c2a57 --- /dev/null +++ b/ftplugin/go.lua @@ -0,0 +1,12 @@ +vim.opt.expandtab = false + +vim.keymap.set('n', '', 'GoDebugStart') +vim.keymap.set('n', '', 'GoDebugBreakpoint') +vim.keymap.set('n', 'b', 'plug>(go-build)') +vim.keymap.set('n', 'c', 'plug>(go-coverage)') +vim.keymap.set('n', 'r', 'plug>(go-run)') +vim.keymap.set('n', 't', 'plug>(go-test)') +vim.keymap.set('n', '', 'GoDebugStepOut') +vim.keymap.set('n', '', 'GoDebugStop') + +vim.b.argwrap_tail_comma = 1 diff --git a/ftplugin/go.vim b/ftplugin/go.vim deleted file mode 100644 index aa445a9..0000000 --- a/ftplugin/go.vim +++ /dev/null @@ -1,14 +0,0 @@ -setlocal noexpandtab - -" vim-argwrap -let b:argwrap_tail_comma = 1 - -" vim-go -nmap :GoDebugStart -nmap :GoDebugBreakpoint -nmap b (go-build) -nmap c (go-coverage) -nmap r (go-run) -nmap t (go-test) -nmap :GoDebugStepOut -nmap :GoDebugStop diff --git a/ftplugin/html.lua b/ftplugin/html.lua new file mode 100644 index 0000000..b43aa06 --- /dev/null +++ b/ftplugin/html.lua @@ -0,0 +1 @@ +vim.opt.spell = true diff --git a/ftplugin/html.vim b/ftplugin/html.vim deleted file mode 100644 index bcda2dd..0000000 --- a/ftplugin/html.vim +++ /dev/null @@ -1 +0,0 @@ -setlocal spell diff --git a/ftplugin/markdown.lua b/ftplugin/markdown.lua new file mode 100644 index 0000000..998935f --- /dev/null +++ b/ftplugin/markdown.lua @@ -0,0 +1,3 @@ +vim.opt.colorcolumn = { 120 } +vim.opt.spell = true +vim.opt.textwidth = 120 diff --git a/ftplugin/markdown.vim b/ftplugin/markdown.vim deleted file mode 100644 index 6b8d7cd..0000000 --- a/ftplugin/markdown.vim +++ /dev/null @@ -1,3 +0,0 @@ -setlocal colorcolumn=120 -setlocal textwidth=120 -setlocal spell diff --git a/ftplugin/yaml.lua b/ftplugin/yaml.lua new file mode 100644 index 0000000..512c9b5 --- /dev/null +++ b/ftplugin/yaml.lua @@ -0,0 +1,2 @@ +vim.opt.shiftwidth = 2 +vim.opt.tabstop = 2 diff --git a/ftplugin/yaml.vim b/ftplugin/yaml.vim deleted file mode 100644 index 810fd8f..0000000 --- a/ftplugin/yaml.vim +++ /dev/null @@ -1,2 +0,0 @@ -setlocal shiftwidth=2 -setlocal tabstop=2 diff --git a/ginit.vim b/ginit.vim deleted file mode 100644 index 223b9a0..0000000 --- a/ginit.vim +++ /dev/null @@ -1,8 +0,0 @@ -GuiPopupmenu 0 -GuiTabline 0 - -if has('unix') - GuiFont Terminus:h12 -else - GuiFont! Lucida\ Console:h10 -endif diff --git a/gvim.vim b/gvim.vim deleted file mode 100644 index 1df68ec..0000000 --- a/gvim.vim +++ /dev/null @@ -1,15 +0,0 @@ -set columns=128 -set lines=32 - -set guioptions-=L -set guioptions-=R -set guioptions-=T -set guioptions-=l -set guioptions-=m -set guioptions-=r - -if has('unix') - set guifont=Source\ Code\ Pro\ Regular\ 10 -else - set guifont=Lucida_Console:h10 -endif diff --git a/init.lua b/init.lua new file mode 100644 index 0000000..fb7ffb9 --- /dev/null +++ b/init.lua @@ -0,0 +1,198 @@ +vim.cmd.colorscheme('solarized8') + +vim.g.mapleader = ' ' + +vim.opt.autowrite = true +vim.opt.backup = false +vim.opt.completeopt = 'menuone,noselect' +vim.opt.expandtab = true +vim.opt.fileformats = 'unix,dos,mac' +vim.opt.foldenable = false +vim.opt.guicursor = 'n:blinkon0' +vim.opt.ignorecase = true +vim.opt.langremap = false +vim.opt.linebreak = true +vim.opt.modeline = false +vim.opt.modelines = 0 +vim.opt.number = true +vim.opt.shiftround = true +vim.opt.shiftwidth = 4 +vim.opt.smartcase = true +vim.opt.swapfile = false +vim.opt.tabstop = 4 +vim.opt.termguicolors = true +vim.opt.updatetime = 300 +vim.opt.wrap = false +vim.opt.writebackup = false + +-- gui +vim.api.nvim_create_autocmd( + 'UIEnter', { + callback = function() + if vim.v.event.chan == 1 then + require('ginit') + end + end, + once = true, + } +) + +-- general +vim.keymap.set('i', '', '') +vim.keymap.set('n', '', 'bd') +vim.keymap.set('n', '', 'nohlsearch') +vim.keymap.set('n', '', 'b#') +vim.keymap.set('n', 'w', 'w') +vim.keymap.set('n', 'x', 'x') +vim.keymap.set('n', 'j', 'gj') +vim.keymap.set('n', 'k', 'gk') + +-- clipboard +vim.keymap.set({ 'n', 'v' }, 'P', '"+P') +vim.keymap.set({ 'n', 'v' }, 'Y', '"+y$') +vim.keymap.set({ 'n', 'v' }, 'd', '"+d') +vim.keymap.set({ 'n', 'v' }, 'd', '"+dd') +vim.keymap.set({ 'n', 'v' }, 'p', '"+p') +vim.keymap.set({ 'n', 'v' }, 'y', '"+y') +vim.keymap.set({ 'n', 'v' }, 'yy', '"+yy') + +-- splits +vim.keymap.set('n', '', '') +vim.keymap.set('n', '', '<') +vim.keymap.set('n', '', '+') +vim.keymap.set('n', '', '-') +vim.keymap.set('n', '', '>') +vim.keymap.set('n', '', 'h') +vim.keymap.set('n', '', 'j') +vim.keymap.set('n', '', 'k') +vim.keymap.set('n', '', 'l') + +-- cmp-nvim-lsp, nvim-lspconfig +local nvim_lspconfig = require('lspconfig') +if nvim_lspconfig then + local capabilities = vim.lsp.protocol.make_client_capabilities() + + local cmp_nvim_lsp = require('cmp_nvim_lsp') + if cmp_nvim_lsp then + capabilities = cmp_nvim_lsp.update_capabilities(capabilities, { snippetSupport = false }) + end + + nvim_lspconfig.clangd.setup({ capabilities = capabilities }) + nvim_lspconfig.gopls.setup({ capabilities = capabilities }) + nvim_lspconfig.jedi_language_server.setup({ capabilities = capabilities }) + nvim_lspconfig.rust_analyzer.setup({ capabilities = capabilities }) + nvim_lspconfig.tsserver.setup({ capabilities = capabilities }) + nvim_lspconfig.vimls.setup({ capabilities = capabilities }) + nvim_lspconfig.sumneko_lua.setup({ + settings = { + Lua = { + diagnostics = { globals = { 'vim' } }, + runtime = { version = 'LuaJIT' }, + telemetry = { enable = false }, + workspace = { library = vim.api.nvim_get_runtime_file('', true) }, + }, + }, + }) + + vim.keymap.set('n', '', vim.lsp.buf.signature_help) + vim.keymap.set('n', 'D', vim.lsp.buf.type_definition) + vim.keymap.set('n', 'ca', vim.lsp.buf.code_action) + vim.keymap.set('n', 'e', vim.diagnostic.open_float) + vim.keymap.set('n', 'f', function() vim.lsp.buf.format({ async = true }) end) + vim.keymap.set('n', 'q', vim.diagnostic.setloclist) + vim.keymap.set('n', 'rn', vim.lsp.buf.rename) + vim.keymap.set('n', 'wa', vim.lsp.buf.add_workspace_folder) + vim.keymap.set('n', 'wl', function() print(vim.inspect(vim.lsp.buf.list_workspace_folders())) end) + vim.keymap.set('n', 'wr', vim.lsp.buf.remove_workspace_folder) + vim.keymap.set('n', 'K', vim.lsp.buf.hover) + vim.keymap.set('n', '[d', vim.diagnostic.goto_prev) + vim.keymap.set('n', ']d', vim.diagnostic.goto_next) + vim.keymap.set('n', 'gD', vim.lsp.buf.declaration) + vim.keymap.set('n', 'gd', vim.lsp.buf.definition) + vim.keymap.set('n', 'gi', vim.lsp.buf.implementation) + vim.keymap.set('n', 'gr', vim.lsp.buf.references) + + vim.opt.omnifunc = 'v:lua.vim.lsp.omnifunc' +end + +-- nvim-cmp +local nvim_cmp = require('cmp') +if nvim_cmp then + nvim_cmp.setup({ + mapping = { + [''] = nvim_cmp.mapping.scroll_docs(-4), + [''] = nvim_cmp.mapping.scroll_docs(4), + [''] = nvim_cmp.mapping.select_next_item(), + [''] = nvim_cmp.mapping.select_prev_item(), + [''] = nvim_cmp.mapping.confirm({ select = true }), + }, + sources = { + { name = 'nvim_lsp' }, + { name = 'vsnip' }, + }, + snippet = { + expand = function(args) vim.fn['vsnip#anonymous'](args.body) end, + }, + }) +end + +-- telescope.nvim +local telescope = require('telescope') +if telescope then + local telescope_builtin = require('telescope.builtin') + if telescope_builtin then + vim.keymap.set('n', 'fb', telescope_builtin.buffers, {}) + vim.keymap.set('n', 'fg', telescope_builtin.git_files, {}) + vim.keymap.set('n', 'fh', telescope_builtin.oldfiles, {}) + vim.keymap.set('n', 'fr', telescope_builtin.reloader, {}) + vim.keymap.set('n', 'fs', telescope_builtin.spell_suggest, {}) + end + + local telescope_actions = require('telescope.actions') + telescope.setup { + defaults = { + mappings = { + i = { + [''] = telescope_actions.move_selection_next, + [''] = telescope_actions.move_selection_previous, + [''] = telescope_actions.close, + }, + }, + } + } +end + +-- vim-airline +vim.g['airline#extensions#tabline#enabled'] = 1 +vim.g['airline_symbols_ascii'] = 1 + +-- vim-argwrap +vim.keymap.set('n', 'a', 'ArgWrap') + +-- vim-better-whitespace +vim.api.nvim_set_hl(0, 'ExtraWhitespace', { bg = '#6c71c4' }) + +-- vim-dirvish +vim.g.dirvish_mode = ':sort ,^.*[\\/],' + +-- vim-easy-align +vim.g.easy_align_ignore_groups = {} +vim.keymap.set('n', 'ga', '(EasyAlign)') +vim.keymap.set('v', '', '(EasyAlign)') + +-- vim-go +vim.g.go_diagnostics_enabled = 0 +vim.g.go_imports_autosave = 0 +vim.g.go_metalinter_enabled = {} +vim.g.go_null_module_warning = 0 +vim.g.go_version_warning = 0 + +-- vim-interestingwords +vim.g.interestingWordsGUIColors = { '#8ccbea', '#a4e57e', '#ffdb72', '#ff7272', '#ffb3ff', '#9999ff' } +vim.g.interestingWordsTermColors = { '154', '121', '211', '137', '214', '222' } + +-- vim-polyglot +vim.g.rustfmt_autosave = 1 + +-- hflip.nvim +vim.keymap.set('n', 'gfs', 'HFlip') diff --git a/init.vim b/init.vim deleted file mode 100644 index 55c59f9..0000000 --- a/init.vim +++ /dev/null @@ -1,4 +0,0 @@ -runtime options.vim -runtime keymaps.vim -runtime plugins.vim -runtime util.vim diff --git a/keymaps.vim b/keymaps.vim deleted file mode 100644 index 1cffb78..0000000 --- a/keymaps.vim +++ /dev/null @@ -1,43 +0,0 @@ -let mapleader = "\" - -" core -nnoremap :b# -nnoremap :nohlsearch -nnoremap m :make -nnoremap w :w -nnoremap x :x -inoremap -nnoremap Q - -nnoremap Y y$ -nnoremap Y "+y$ -vnoremap y "+y -vnoremap d "+d -vnoremap p "+p -vnoremap P "+P -nnoremap y "+y -nnoremap d "+d -nnoremap p "+p -nnoremap P "+P -nnoremap yy "+yy -nnoremap d "+dd - -nnoremap :bd -nnoremap :%bd e# bd# - -nnoremap - -nnoremap + -nnoremap < -nnoremap > -nnoremap - -nnoremap j -nnoremap k -nnoremap h -nnoremap l - -nnoremap j gj -nnoremap k gk - -" util -nnoremap ig :Guid diff --git a/link_vim.bat b/link_vim.bat deleted file mode 100644 index 37458a8..0000000 --- a/link_vim.bat +++ /dev/null @@ -1,4 +0,0 @@ -@echo off -mklink "%USERPROFILE%\_vimrc" "%CD%\init.vim" -mklink "%USERPROFILE%\_gvimrc" "%CD%\gvim.vim" -mklink /J "%USERPROFILE%\vimfiles" "%CD%" diff --git a/link_vim.sh b/link_vim.sh deleted file mode 100755 index c22c7f3..0000000 --- a/link_vim.sh +++ /dev/null @@ -1,6 +0,0 @@ -#!/bin/bash -ln -sf $PWD/init.vim ~/.vimrc -ln -sf $PWD/gvim.vim ~/.gvimrc -if [ ! -d ~/.vim ]; then - ln -s $PWD ~/.vim -fi diff --git a/lua/ginit.lua b/lua/ginit.lua new file mode 100644 index 0000000..7537cc5 --- /dev/null +++ b/lua/ginit.lua @@ -0,0 +1,13 @@ +vim.cmd.GuiTabline(0) +vim.cmd.GuiPopupmenu(0) + +local font +if vim.fn.has('unix') == 1 then + font = 'Terminus:h12' +elseif vim.fn.has('win32') == 1 then + font = 'Lucida Console:h8' +end + +if font then + vim.cmd.Guifont({ args = { font }}) +end diff --git a/options.vim b/options.vim deleted file mode 100644 index b7caeda..0000000 --- a/options.vim +++ /dev/null @@ -1,61 +0,0 @@ -set nocompatible -set termguicolors -set t_Co=16 - -filetype indent plugin on -colorscheme solarized8 -syntax enable - -set autoindent -set autoread -set autowrite -set background=dark -set backspace=indent,eol,start -set belloff=all -set complete-=i -set encoding=utf-8 -set expandtab -set fileformats=unix,dos,mac -set formatoptions=tcqj -set guicursor=n:blinkon0 -set hidden -set history=10000 -set hlsearch -set ignorecase -set incsearch -set laststatus=2 -set linebreak -set modelines=0 -set mousemodel=popup -set nobackup -set nofoldenable -set nofsync -set nolangremap -set nomodeline -set noswapfile -set nowrap -set nowritebackup -set nrformats=bin,hex -set number -set ruler -set ruler -set scrolloff=5 -set shiftround -set shiftwidth=4 -set shortmess+=I -set showcmd -set sidescroll=1 -set smartcase -set smarttab -set tabpagemax=50 -set tabstop=4 -set ttimeout -set ttimeoutlen=50 -set ttyfast -set updatetime=300 -set wildignore+=*/tmp/* -set wildmenu - -if &shell =~ 'bin/fish' - set shell=/bin/sh -endif diff --git a/pack/plugins/opt/fzf b/pack/plugins/opt/fzf deleted file mode 160000 index f9d5330..0000000 --- a/pack/plugins/opt/fzf +++ /dev/null @@ -1 +0,0 @@ -Subproject commit f9d53303bb00225edb6e46ca1851e5cf1b55e623 diff --git a/pack/plugins/opt/fzf.vim b/pack/plugins/opt/fzf.vim deleted file mode 160000 index 9ceac71..0000000 --- a/pack/plugins/opt/fzf.vim +++ /dev/null @@ -1 +0,0 @@ -Subproject commit 9ceac718026fd39498d95ff04fa04d3e40c465d7 diff --git a/pack/plugins/opt/hflip.nvim b/pack/plugins/opt/hflip.nvim deleted file mode 160000 index caaab4c..0000000 --- a/pack/plugins/opt/hflip.nvim +++ /dev/null @@ -1 +0,0 @@ -Subproject commit caaab4c95ebb7d5243556d1f0c254302babdb657 diff --git a/pack/plugins/opt/cmp-nvim-lsp b/pack/plugins/start/cmp-nvim-lsp similarity index 100% rename from pack/plugins/opt/cmp-nvim-lsp rename to pack/plugins/start/cmp-nvim-lsp diff --git a/pack/plugins/opt/cmp-vsnip b/pack/plugins/start/cmp-vsnip similarity index 100% rename from pack/plugins/opt/cmp-vsnip rename to pack/plugins/start/cmp-vsnip diff --git a/pack/plugins/start/hflip.nvim b/pack/plugins/start/hflip.nvim new file mode 160000 index 0000000..7e6d996 --- /dev/null +++ b/pack/plugins/start/hflip.nvim @@ -0,0 +1 @@ +Subproject commit 7e6d996a9d4ce3ef414307e688afd6b02ab68640 diff --git a/pack/plugins/opt/nvim-cmp b/pack/plugins/start/nvim-cmp similarity index 100% rename from pack/plugins/opt/nvim-cmp rename to pack/plugins/start/nvim-cmp diff --git a/pack/plugins/opt/nvim-lspconfig b/pack/plugins/start/nvim-lspconfig similarity index 100% rename from pack/plugins/opt/nvim-lspconfig rename to pack/plugins/start/nvim-lspconfig diff --git a/pack/plugins/start/telescope-fzf-native.nvim b/pack/plugins/start/telescope-fzf-native.nvim new file mode 160000 index 0000000..65c0ee3 --- /dev/null +++ b/pack/plugins/start/telescope-fzf-native.nvim @@ -0,0 +1 @@ +Subproject commit 65c0ee3d4bb9cb696e262bca1ea5e9af3938fc90 diff --git a/pack/plugins/start/telescope.nvim b/pack/plugins/start/telescope.nvim new file mode 160000 index 0000000..f174a03 --- /dev/null +++ b/pack/plugins/start/telescope.nvim @@ -0,0 +1 @@ +Subproject commit f174a0367b4fc7cb17710d867e25ea792311c418 diff --git a/pack/plugins/opt/vim-vsnip b/pack/plugins/start/vim-vsnip similarity index 100% rename from pack/plugins/opt/vim-vsnip rename to pack/plugins/start/vim-vsnip diff --git a/plugins.vim b/plugins.vim deleted file mode 100644 index a383841..0000000 --- a/plugins.vim +++ /dev/null @@ -1,173 +0,0 @@ -" cmp-nvim-lsp, nvim-cmp, nvim-lspconfig -if has('nvim') - packadd cmp-nvim-lsp - packadd cmp-vsnip - packadd nvim-cmp - packadd nvim-lspconfig - packadd vim-vsnip - packadd hflip.nvim - -lua << EOF - -- Use an on_attach function to only map the following keys - -- after the language server attaches to the current buffer - local on_attach = function(client, bufnr) - local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) end - local function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end - - -- Enable completion triggered by - buf_set_option('omnifunc', 'v:lua.vim.lsp.omnifunc') - - -- Mappings. - local opts = { noremap=true, silent=true } - - -- See `:help vim.lsp.*` for documentation on any of the below functions - buf_set_keymap('n', 'gD', 'lua vim.lsp.buf.declaration()', opts) - buf_set_keymap('n', 'gd', 'lua vim.lsp.buf.definition()', opts) - buf_set_keymap('n', 'K', 'lua vim.lsp.buf.hover()', opts) - buf_set_keymap('n', 'gi', 'lua vim.lsp.buf.implementation()', opts) - buf_set_keymap('n', '', 'lua vim.lsp.buf.signature_help()', opts) - buf_set_keymap('n', 'wa', 'lua vim.lsp.buf.add_workspace_folder()', opts) - buf_set_keymap('n', 'wr', 'lua vim.lsp.buf.remove_workspace_folder()', opts) - buf_set_keymap('n', 'wl', 'lua print(vim.inspect(vim.lsp.buf.list_workspace_folders()))', opts) - buf_set_keymap('n', 'D', 'lua vim.lsp.buf.type_definition()', opts) - buf_set_keymap('n', 'rn', 'lua vim.lsp.buf.rename()', opts) - buf_set_keymap('n', 'ca', 'lua vim.lsp.buf.code_action()', opts) - buf_set_keymap('n', 'gr', 'lua vim.lsp.buf.references()', opts) - buf_set_keymap('n', 'e', 'lua vim.lsp.diagnostic.show_line_diagnostics()', opts) - buf_set_keymap('n', '[d', 'lua vim.lsp.diagnostic.goto_prev()', opts) - buf_set_keymap('n', ']d', 'lua vim.lsp.diagnostic.goto_next()', opts) - buf_set_keymap('n', 'q', 'lua vim.lsp.diagnostic.set_loclist()', opts) - buf_set_keymap('n', 'f', 'lua vim.lsp.buf.formatting()', opts) - end - - -- Add additional capabilities supported by nvim-cmp - local capabilities = vim.lsp.protocol.make_client_capabilities() - capabilities = require('cmp_nvim_lsp').update_capabilities(capabilities, {snippetSupport = false}) - - -- Use a loop to conveniently call 'setup' on multiple servers and - -- map buffer local keybindings when the language server attaches - local nvim_lsp = require('lspconfig') - for _, lsp in ipairs({'clangd', 'gopls', 'jedi_language_server', 'rust_analyzer', 'tsserver', 'vimls'}) do - nvim_lsp[lsp].setup({ - on_attach = on_attach, - capabilities = capabilities - }) - end - - nvim_lsp.sumneko_lua.setup { - settings = { - Lua = { - runtime = { - -- Tell the language server which version of Lua you're using (most likely LuaJIT in the case of Neovim) - version = 'LuaJIT', - }, - diagnostics = { - -- Get the language server to recognize the `vim` global - globals = {'vim'}, - }, - workspace = { - -- Make the server aware of Neovim runtime files - library = vim.api.nvim_get_runtime_file('', true), - }, - -- Do not send telemetry data containing a randomized but unique identifier - telemetry = { - enable = false, - }, - }, - }, - } - - -- nvim-cmp setup - local cmp = require('cmp') - cmp.setup { - mapping = { - [''] = cmp.mapping.scroll_docs(-4), - [''] = cmp.mapping.scroll_docs(4), - [''] = cmp.mapping.select_next_item(), - [''] = cmp.mapping.select_prev_item(), - [''] = cmp.mapping.confirm({select = true}), - }, - sources = { - {name = 'nvim_lsp'}, - {name = 'vsnip'}, - }, - snippet = { - expand = function(args) - vim.fn["vsnip#anonymous"](args.body) - end, - }, - } - - -- Set completeopt to have a better completion experience - vim.o.completeopt = 'menuone,noselect' -EOF -endif - -" hflip.nvim -command! HFlipReload lua require'plenary.reload'.reload_module('hflip', false) - -" fzf -if executable('fzf') - packadd fzf.vim - packadd fzf - - let $FZF_DEFAULT_COMMAND='ag --hidden --ignore .git -f -g "" 2> /dev/null' - let g:fzf_colors = { - \ 'bg': ['bg', 'Normal'], - \ 'bg+': ['bg', 'CursorLine', 'CursorColumn'], - \ 'border': ['fg', 'Ignore'], - \ 'fg': ['fg', 'Normal'], - \ 'fg+': ['fg', 'CursorLine', 'CursorColumn', 'Normal'], - \ 'header': ['fg', 'Comment'], - \ 'hl': ['fg', 'Comment'], - \ 'hl+': ['fg', 'Statement'], - \ 'info': ['fg', 'PreProc'], - \ 'marker': ['fg', 'Keyword'], - \ 'pointer': ['fg', 'Exception'], - \ 'prompt': ['fg', 'Conditional'], - \ 'spinner': ['fg', 'Label'], - \ } - - if has('windows') - let g:fzf_preview_window = '' - endif - - nnoremap fg :GFiles - nnoremap ff :Files ~ - nnoremap fh :History - nnoremap fc :BCommits - nnoremap fb :Buffers - nnoremap fl :Lines -endif - -" vim-airline -let g:airline#extensions#tabline#enabled = 1 -let g:airline_symbols_ascii = 1 - -" vim-argwrap -nnoremap a :ArgWrap - -" vim-better-whitespace -highlight ExtraWhitespace ctermbg=DarkMagenta guibg=#6c71c4 - -" vim-dirvish -let g:dirvish_mode = ':sort ,^.*[\/],' - -" vim-easy-align -let g:easy_align_ignore_groups = [] -nmap ga (EasyAlign) -vmap (EasyAlign) - -" vim-go -let g:go_diagnostics_enabled = 0 -let g:go_imports_autosave = 0 -let g:go_metalinter_enabled = [] -let g:go_null_module_warning = 0 -let g:go_version_warning = 0 - -" vim-interestingwords -let g:interestingWordsGUIColors = ['#8ccbea', '#a4e57e', '#ffdb72', '#ff7272', '#ffb3ff', '#9999ff'] -let g:interestingWordsTermColors = ['154', '121', '211', '137', '214', '222'] - -" vim-polyglot -let g:rustfmt_autosave = 1 diff --git a/util.vim b/util.vim deleted file mode 100644 index 41c1339..0000000 --- a/util.vim +++ /dev/null @@ -1,50 +0,0 @@ -auto BufRead,BufNewFile *.gohtml setfiletype html - -function! s:unalign() range - for l:line in range(a:firstline, a:lastline) - let l:text = getline(l:line) - let l:subst = substitute(l:text, '\(\S\+\)\s\{2,}', '\1 ', 'g') - call setline(l:line, l:subst) - endfor -endfunction - -command! -range UnAlign ,call s:unalign() - -function! s:guid() - if has('pythonx') - pythonx import uuid - let l:guid = pyxeval('str(uuid.uuid4())') - elseif has('windows') - let l:guid = system('powershell.exe -command "[guid]::NewGuid().ToString()"')[:-2] - endif - if exists('l:guid') - execute 'normal! i' . l:guid . "\" - else - echoerr 'No GUID provider available' - endif -endfunction - -command! Guid call s:guid() - -if has('nvim') -lua << EOF - -function _G.put(...) - local objects = {} - for i = 1, select('#', ...) do - local v = select(i, ...) - table.insert(objects, vim.inspect(v)) - end - - print(table.concat(objects, '\n')) - return ... -end - -function _G.list_packages() - for key, value in pairs(package.loaded) do - print(key) - end -end - -EOF -endif