From 060d5ca3e7a4825f80ff1dabe17df8b82379b1e2 Mon Sep 17 00:00:00 2001 From: Barak Michener Date: Thu, 1 Jul 2021 13:16:00 -0700 Subject: [PATCH] split nvim.lua, add telescope --- .vim/nvim.lua | 113 ++++++++++++++++++++++++++++++++++++++++++++++++++ .vimrc | 130 +++++----------------------------------------------------- 2 files changed, 123 insertions(+), 120 deletions(-) create mode 100644 .vim/nvim.lua diff --git a/.vim/nvim.lua b/.vim/nvim.lua new file mode 100644 index 0000000..f6684e1 --- /dev/null +++ b/.vim/nvim.lua @@ -0,0 +1,113 @@ +-- nvim_lsp object +local nvim_lsp = require'lspconfig' + +-- function to attach completion when setting up lsp +local on_attach = function(client) +end + +-- Enable rust_analyzer +nvim_lsp.rust_analyzer.setup({ on_attach=on_attach }) +nvim_lsp.gopls.setup({ on_attach=on_attach }) +nvim_lsp.pyright.setup({ on_attach=on_attach }) + +-- Enable diagnostics +vim.lsp.handlers["textDocument/publishDiagnostics"] = vim.lsp.with( + vim.lsp.diagnostic.on_publish_diagnostics, { + virtual_text = false, + signs = true, + update_in_insert = false, + } +) + +-- Compe setup +require'compe'.setup { + enabled = true; + autocomplete = true; + debug = false; + min_length = 1; + preselect = 'disable'; + throttle_time = 80; + source_timeout = 200; + incomplete_delay = 400; + max_abbr_width = 100; + max_kind_width = 100; + max_menu_width = 100; + documentation = true; + + source = { + path = true; + nvim_lsp = true; + }; +} + +local t = function(str) + return vim.api.nvim_replace_termcodes(str, true, true, true) +end + +local check_back_space = function() + local col = vim.fn.col('.') - 1 + if col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') then + return true + else + return false + end +end + +-- Use (s-)tab to: +--- move to prev/next item in completion menuone +--- jump to prev/next snippet's placeholder +_G.tab_complete = function() + if vim.fn.pumvisible() == 1 then + return t "" + elseif check_back_space() then + return t "" + else + return vim.fn['compe#complete']() + end +end +_G.s_tab_complete = function() + if vim.fn.pumvisible() == 1 then + return t "" + else + return t "" + end +end + +vim.api.nvim_set_keymap("i", "", "v:lua.tab_complete()", {expr = true}) +vim.api.nvim_set_keymap("s", "", "v:lua.tab_complete()", {expr = true}) +vim.api.nvim_set_keymap("i", "", "v:lua.s_tab_complete()", {expr = true}) +vim.api.nvim_set_keymap("s", "", "v:lua.s_tab_complete()", {expr = true}) + +require('lspkind').init({ + -- disables text annotations + with_text = false, + + -- default symbol map + -- can be either 'default' or 'codicons' + preset = 'default', + + -- override preset symbols + -- default: {} + symbol_map = { + Method = 'm', + Function = 'f', + Text = 'txt', + Constructor = 'new', + Variable = 'var', + Class = 'cls', + Interface = 'iface', + Module = 'mod', + Property = 'prop', + Unit = 'unit', + Value = 'val', + Enum = 'enum', + Keyword = 'kw', + Snippet = 'sn', + Color = 'color', + File = 'file', + Folder = 'fold', + EnumMember = 'enum', + Constant = 'const', + Struct = 'struct', + }, +}) diff --git a/.vimrc b/.vimrc index 49aa3d5..a6706c4 100644 --- a/.vimrc +++ b/.vimrc @@ -99,6 +99,7 @@ Plug $HOME . '/.vim/bundle/repos/github.com/Shougo/dein.vim' Plug 'let-def/vimbufsync' Plug 'lambdalisue/suda.vim' Plug 'skywind3000/asyncrun.vim' +Plug 'barakmich/vim-code-dark' " Plugins that I almost never use "Plug 'vim-scripts/DrawIt' @@ -201,6 +202,10 @@ Plug 'hrsh7th/nvim-compe' "Plug 'nvim-lua/completion-nvim' Plug 'onsails/lspkind-nvim' +Plug 'nvim-lua/popup.nvim' +Plug 'nvim-lua/plenary.nvim' +Plug 'nvim-telescope/telescope.nvim' + " Plugins that do specific things Plug 'Shougo/vimproc.vim' Plug 'Shougo/vimfiler.vim' @@ -211,13 +216,12 @@ Plug 'whonore/coquille', {'branch': 'pathogen-bundle', 'for': 'coq'} Plug 'gabrielelana/vim-markdown' Plug 'lervag/vimtex' Plug 'Shougo/echodoc.vim' -Plug 'python-rope/ropevim' +"Plug 'python-rope/ropevim' " Unclear "Plug 'ncm2/float-preview.nvim' Plug 'lambdalisue/gina.vim' -Plug 'barakmich/vim-code-dark' call plug#end() @@ -264,122 +268,8 @@ syntax enable " **** End CoC " **** Configure LSP -lua <" - elseif check_back_space() then - return t "" - else - return vim.fn['compe#complete']() - end -end -_G.s_tab_complete = function() - if vim.fn.pumvisible() == 1 then - return t "" - else - return t "" - end -end - -vim.api.nvim_set_keymap("i", "", "v:lua.tab_complete()", {expr = true}) -vim.api.nvim_set_keymap("s", "", "v:lua.tab_complete()", {expr = true}) -vim.api.nvim_set_keymap("i", "", "v:lua.s_tab_complete()", {expr = true}) -vim.api.nvim_set_keymap("s", "", "v:lua.s_tab_complete()", {expr = true}) - -require('lspkind').init({ - -- disables text annotations - with_text = false, - - -- default symbol map - -- can be either 'default' or 'codicons' - preset = 'default', - - -- override preset symbols - -- default: {} - symbol_map = { - Method = 'm', - Function = 'f', - Text = 'txt', - Constructor = 'new', - Variable = 'var', - Class = 'cls', - Interface = 'iface', - Module = 'mod', - Property = 'prop', - Unit = 'unit', - Value = 'val', - Enum = 'enum', - Keyword = 'kw', - Snippet = 'sn', - Color = 'color', - File = 'file', - Folder = 'fold', - EnumMember = 'enum', - Constant = 'const', - Struct = 'struct', - }, -}) -EOF +luafile $HOME/.vim/nvim.lua " Code navigation shortcuts @@ -1010,9 +900,9 @@ call denite#custom#var('grep', { \ 'separator': ['--'], \ 'final_opts': [], \ }) -nnoremap g :Denite -buffer-name=search-buffer grep -nnoremap aa :RipGrep! -nnoremap ag :RgRoot! +"nnoremap g :Denite -buffer-name=search-buffer grep +"nnoremap aa :RipGrep! +nnoremap aa :RgRoot! nnoremap aw :RgRoot! "nnoremap :Files! `git rev-parse --show-toplevel` nnoremap :GFiles