Just cleaner this way. :)
5C7V5HBQN72EONBIORLYJPIY4OYZTI3YJEWIDCTLSDOQ44N6W4YAC local t = require('utils').tvim.opt.completeopt = "menuone,noselect";vim.opt.inccommand = "nosplit";-- go to the following link to see docs or do :help compe-- https://github.com/hrsh7th/nvim-compe/blob/master/doc/compe.txtrequire'compe'.setup {enabled = true;autocomplete = true;debug = false;preselect = 'enabled';throttle_timeout = 80;source_timeout = 200;incomplete_delay = 400;max_abbr_width = 100;max_kind_width = 100;max_menu_width = 100;documentation = true;source = {path = true;buffer = true;vsnip = true;tags = true;spell = true;calc = true;omni = true;emoji = true;nvim_lsp = true;nvim_lua = true;treesitter = true;};}--shamelessly copied from nvim-compe's readme here:--https://github.com/hrsh7th/nvim-compelocal check_back_space = function()local col = vim.fn.col('.') - 1if col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') thenreturn trueelsereturn falseendend-- 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 thenreturn t "<C-n>"elseif vim.fn.call("vsnip#available", {1}) == 1 then -- gonna be honest here, I don't use snippetsreturn t "<Plug>(vsnip-expand-or-jump)"elseif check_back_space() thenreturn t "<Tab>"elsereturn vim.fn['compe#complete']()endend_G.s_tab_complete = function()if vim.fn.pumvisible() == 1 thenreturn t "<C-p>"elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 thenreturn t "<Plug>(vsnip-jump-prev)"else-- If <S-Tab> is not working in your terminal, change it to <C-h>return t "<S-Tab>"endendlocal function on_attach(_client, bufnr)local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) endlocal function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end--Enable completion triggered by <c-x><c-o>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 functionsbuf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts)buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)buf_set_keymap('n', 'ga', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)buf_set_keymap('n', '<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts)buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)buf_set_keymap('n', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)endlocal nvim_lsp = require'lspconfig';local servers = {"rust_analyzer", "pyright", "typescript-language-server"};for _, server in ipairs(servers) donvim_lsp[server].setup {on_attach = on_attach;}endvim.api.nvim_set_keymap("i", "<Tab>", "v:lua.tab_complete()", {expr = true})vim.api.nvim_set_keymap("s", "<Tab>", "v:lua.tab_complete()", {expr = true})vim.api.nvim_set_keymap("i", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})vim.api.nvim_set_keymap("s", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})vim.cmd'autocmd BufWritePre *.rs lua vim.lsp.buf.formatting()'
require'telescope'.setup{defaults = {vimgrep_arguments = {'rg','--color=never','--no-heading','--with-filename','--line-number','--column','--smart-case'},prompt_position = "bottom",prompt_prefix = "> ",selection_caret = "> ",entry_prefix = " ",initial_mode = "insert",selection_strategy = "reset",sorting_strategy = "descending",layout_strategy = "horizontal",layout_defaults = {horizontal = {mirror = false,},vertical = {mirror = false,},},file_sorter = require'telescope.sorters'.get_fuzzy_file,file_ignore_patterns = {},generic_sorter = require'telescope.sorters'.get_generic_fuzzy_sorter,shorten_path = true,winblend = 0,width = 0.75,preview_cutoff = 120,results_height = 1,results_width = 0.8,border = {},borderchars = { '─', '│', '─', '│', '╭', '╮', '╯', '╰' },color_devicons = true,use_less = true,set_env = { ['COLORTERM'] = 'truecolor' }, -- default = nil,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,-- Developer configurations: Not meant for general overridebuffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker}}vim.api.nvim_set_keymap("n", "<C-F>", "<cmd>Telescope find_files<CR>", {noremap=true;})vim.api.nvim_set_keymap("n", "<C-G>", "<cmd>Telescope live_grep<CR>", {noremap=true;})
local t = require('../utils').tvim.opt.completeopt = "menuone,noselect";vim.opt.inccommand = "nosplit";-- go to the following link to see docs or do :help compe-- https://github.com/hrsh7th/nvim-compe/blob/master/doc/compe.txtrequire'compe'.setup {enabled = true;autocomplete = true;debug = false;preselect = 'enabled';throttle_timeout = 80;source_timeout = 200;incomplete_delay = 400;max_abbr_width = 100;max_kind_width = 100;max_menu_width = 100;documentation = true;source = {path = true;buffer = true;vsnip = true;tags = true;spell = true;calc = true;omni = true;emoji = true;nvim_lsp = true;nvim_lua = true;treesitter = true;};}--shamelessly copied from nvim-compe's readme here:--https://github.com/hrsh7th/nvim-compelocal check_back_space = function()local col = vim.fn.col('.') - 1if col == 0 or vim.fn.getline('.'):sub(col, col):match('%s') thenreturn trueelsereturn falseendend-- 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 thenreturn t "<C-n>"elseif vim.fn.call("vsnip#available", {1}) == 1 then -- gonna be honest here, I don't use snippetsreturn t "<Plug>(vsnip-expand-or-jump)"elseif check_back_space() thenreturn t "<Tab>"elsereturn vim.fn['compe#complete']()endend_G.s_tab_complete = function()if vim.fn.pumvisible() == 1 thenreturn t "<C-p>"elseif vim.fn.call("vsnip#jumpable", {-1}) == 1 thenreturn t "<Plug>(vsnip-jump-prev)"else-- If <S-Tab> is not working in your terminal, change it to <C-h>return t "<S-Tab>"endendlocal function on_attach(_client, bufnr)local function buf_set_keymap(...) vim.api.nvim_buf_set_keymap(bufnr, ...) endlocal function buf_set_option(...) vim.api.nvim_buf_set_option(bufnr, ...) end--Enable completion triggered by <c-x><c-o>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 functionsbuf_set_keymap('n', 'gD', '<Cmd>lua vim.lsp.buf.declaration()<CR>', opts)buf_set_keymap('n', 'gd', '<Cmd>lua vim.lsp.buf.definition()<CR>', opts)buf_set_keymap('n', 'K', '<Cmd>lua vim.lsp.buf.hover()<CR>', opts)buf_set_keymap('n', 'gi', '<cmd>lua vim.lsp.buf.implementation()<CR>', opts)buf_set_keymap('n', '<C-k>', '<cmd>lua vim.lsp.buf.signature_help()<CR>', opts)buf_set_keymap('n', '<space>rn', '<cmd>lua vim.lsp.buf.rename()<CR>', opts)buf_set_keymap('n', 'ga', '<cmd>lua vim.lsp.buf.code_action()<CR>', opts)buf_set_keymap('n', 'gr', '<cmd>lua vim.lsp.buf.references()<CR>', opts)buf_set_keymap('n', '<space>e', '<cmd>lua vim.lsp.diagnostic.show_line_diagnostics()<CR>', opts)buf_set_keymap('n', '[d', '<cmd>lua vim.lsp.diagnostic.goto_prev()<CR>', opts)buf_set_keymap('n', ']d', '<cmd>lua vim.lsp.diagnostic.goto_next()<CR>', opts)buf_set_keymap('n', '<space>q', '<cmd>lua vim.lsp.diagnostic.set_loclist()<CR>', opts)buf_set_keymap("n", "<space>f", "<cmd>lua vim.lsp.buf.formatting()<CR>", opts)endlocal nvim_lsp = require'lspconfig';local servers = {"rust_analyzer", "pyright", "tsserver"};for _, server in ipairs(servers) donvim_lsp[server].setup {on_attach = on_attach;}endvim.api.nvim_set_keymap("i", "<Tab>", "v:lua.tab_complete()", {expr = true})vim.api.nvim_set_keymap("s", "<Tab>", "v:lua.tab_complete()", {expr = true})vim.api.nvim_set_keymap("i", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})vim.api.nvim_set_keymap("s", "<S-Tab>", "v:lua.s_tab_complete()", {expr = true})vim.cmd'autocmd BufWritePre *.rs lua vim.lsp.buf.formatting()'
require'telescope'.setup{defaults = {vimgrep_arguments = {'rg','--color=never','--no-heading','--with-filename','--line-number','--column','--smart-case'},prompt_position = "bottom",prompt_prefix = "> ",selection_caret = "> ",entry_prefix = " ",initial_mode = "insert",selection_strategy = "reset",sorting_strategy = "descending",layout_strategy = "horizontal",layout_defaults = {horizontal = {mirror = false,},vertical = {mirror = false,},},file_sorter = require'telescope.sorters'.get_fuzzy_file,file_ignore_patterns = {},generic_sorter = require'telescope.sorters'.get_generic_fuzzy_sorter,shorten_path = true,winblend = 0,width = 0.75,preview_cutoff = 120,results_height = 1,results_width = 0.8,border = {},borderchars = { '─', '│', '─', '│', '╭', '╮', '╯', '╰' },color_devicons = true,use_less = true,set_env = { ['COLORTERM'] = 'truecolor' }, -- default = nil,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,-- Developer configurations: Not meant for general overridebuffer_previewer_maker = require'telescope.previewers'.buffer_previewer_maker}}vim.api.nvim_set_keymap("n", "<C-F>", "<cmd>Telescope find_files<CR>", {noremap=true;})vim.api.nvim_set_keymap("n", "<C-G>", "<cmd>Telescope live_grep<CR>", {noremap=true;})
require'nvim-treesitter.configs'.setup {ensure_installed = {"rust", "lua"},ignore_install = {},highlight = {enable = true,},}