local Plug = vim.fn['plug#'] vim.call('plug#begin', '~/.local/share/nvim/site/plugins') -- enhanced commenting Plug 'tpope/vim-commentary' -- enhanced single-repeat '.' Plug 'tpope/vim-repeat' -- enhanced surrounding Plug 'tpope/vim-surround' -- session management Plug 'tpope/vim-obsession' -- enhanced text objects Plug 'wellle/targets.vim' -- enhanced yank Plug 'gbprod/yanky.nvim' -- auto close brackets Plug 'Raimondi/delimitMate' -- start page Plug 'mhinz/vim-startify' -- alignment Plug 'junegunn/vim-easy-align' -- swap windows Plug 'wesQ3/vim-windowswap' -- LSP Plug 'neovim/nvim-lspconfig' Plug('nvim-treesitter/nvim-treesitter', {['do'] = ':TSUpdate'}) -- command completion Plug 'hrsh7th/cmp-nvim-lsp' Plug 'hrsh7th/cmp-buffer' Plug 'hrsh7th/cmp-path' Plug 'hrsh7th/cmp-cmdline' Plug 'hrsh7th/nvim-cmp' -- prettify command completion Plug 'onsails/lspkind.nvim' -- snippets Plug 'hrsh7th/cmp-vsnip' Plug 'hrsh7th/vim-vsnip' -- fuzzy finder Plug 'nvim-lua/plenary.nvim' Plug('nvim-telescope/telescope.nvim', {branch = '0.1.x'}) -- status line and theme Plug 'bling/vim-airline' Plug 'vim-airline/vim-airline-themes' Plug 'jonathanfilip/vim-lucius' Plug 'altercation/vim-colors-solarized' -- filetype Plug 'towolf/vim-helm' vim.call('plug#end') -- " Plug 'mhinz/neovim-remote' -- Plug 'junegunn/fzf', { 'dir': '~/.fzf', 'do': './install --all' } | Plug 'junegunn/fzf.vim' -- Plug 'rking/ag.vim' local cmp = require('cmp') local lspkind = require('lspkind') cmp.setup { -- As currently, i am not using any snippet manager, thus disabled it. -- snippet = { -- expand = function(args) -- require("luasnip").lsp_expand(args.body) -- end, -- }, -- mapping = { -- [""] = cmp.mapping.scroll_docs(-4), -- [""] = cmp.mapping.scroll_docs(4), -- [""] = cmp.mapping.close(), -- [""] = cmp.mapping.confirm { -- behavior = cmp.ConfirmBehavior.Insert, -- select = true, -- }, -- } mapping = cmp.mapping.preset.insert({ [''] = cmp.mapping.scroll_docs(-4), [''] = cmp.mapping.scroll_docs(4), [''] = cmp.mapping.complete(), [''] = cmp.mapping.abort(), [''] = cmp.mapping.confirm({ select = true }), -- Accept currently selected item. Set `select` to `false` to only confirm explicitly selected items. }), formatting = { format = lspkind.cmp_format { mode = 'symbol_text', menu = { buffer = "[buf]", nvim_lsp = "[LSP]", path = "[path]", }, }, }, sources = { { name = "nvim_lsp"}, { name = "path" }, { name = "buffer" , keyword_length = 2}, }, experimental = { ghost_text = true } } cmp.setup.cmdline({ '/', '?' }, { mapping = cmp.mapping.preset.cmdline(), sources = { { name = 'buffer' } } }) -- Use cmdline & path source for ':' (if you enabled `native_menu`, this won't work anymore). cmp.setup.cmdline(':', { mapping = cmp.mapping.preset.cmdline(), sources = cmp.config.sources({ { name = 'path' } }, { { name = 'cmdline' } }) }) require'nvim-treesitter.configs'.setup { -- A list of parser names, or "all" (the four listed parsers should always be installed) ensure_installed = { "lua", "vim", "help" }, -- Install parsers synchronously (only applied to `ensure_installed`) sync_install = false, -- Automatically install missing parsers when entering buffer -- Recommendation: set to false if you don't have `tree-sitter` CLI installed locally auto_install = false, ---- If you need to change the installation directory of the parsers (see -> Advanced Setup) -- parser_install_dir = "/some/path/to/store/parsers", -- Remember to run vim.opt.runtimepath:append("/some/path/to/store/parsers")! highlight = { -- `false` will disable the whole extension enable = true, -- NOTE: these are the names of the parsers and not the filetype. (for example if you want to -- disable highlighting for the `tex` filetype, you need to include `latex` in this list as this is -- the name of the parser) -- list of language that will be disabled -- disable = { "c", "rust" }, -- Or use a function for more flexibility, e.g. to disable slow treesitter highlight for large files disable = function(lang, buf) local max_filesize = 100 * 1024 -- 100 KB local ok, stats = pcall(vim.loop.fs_stat, vim.api.nvim_buf_get_name(buf)) if ok and stats and stats.size > max_filesize then return true end end, -- Setting this to true will run `:h syntax` and tree-sitter at the same time. -- Set this to `true` if you depend on 'syntax' being enabled (like for indentation). -- Using this option may slow down your editor, and you may see some duplicate highlights. -- Instead of true it can also be a list of languages additional_vim_regex_highlighting = false, }, } require("yanky").setup({ ring = { history_length = 100, storage = "shada", sync_with_numbered_registers = true, cancel_event = "update", }, system_clipboard = { sync_with_ring = true, }, preserve_cursor_position = { enabled = true, }, }) -- require("telescope").load_extension("yank_history")