diff --git a/lua/config/plugins.lua b/lua/config/plugins.lua index ab4dca8..9a192c3 100644 --- a/lua/config/plugins.lua +++ b/lua/config/plugins.lua @@ -10,112 +10,12 @@ local packer = require('packer') packer.startup(function(use) use 'wbthomason/packer.nvim' - -- files - use { - 'nvim-telescope/telescope.nvim', - tag = '0.1.0', - requires = { 'nvim-lua/plenary.nvim' }, - config = function() require 'config.plugins.telescope' end - } - use { - 'nvim-telescope/telescope-fzf-native.nvim', - run = 'make', - requires = { 'nvim-telescope/telescope.nvim' }, - -- doesn't work? - -- config = function() require 'telescope'.load_extension('fzf') end - } - use { - 'nvim-telescope/telescope-ui-select.nvim', - requires = { 'nvim-telescope/telescope.nvim' }, - config = function() require 'telescope'.load_extension('ui-select') end - } - use { - 'nvim-neo-tree/neo-tree.nvim', - branch = "v2.x", - requires = { - 'nvim-lua/plenary.nvim', - 'kyazdani42/nvim-web-devicons', - 'MunifTanjim/nui.nvim' - }, - config = function() require 'config.plugins.neotree' end - } - - -- syntax highlighting - use { - 'nvim-treesitter/nvim-treesitter', - run = function() - require('nvim-treesitter.install').update { with_sync = true } - end, - config = function() - require 'nvim-treesitter.configs'.setup { - highlight = { enable = true } - } - end, - } - - -- autocomplete - use 'hrsh7th/cmp-nvim-lsp' - use 'hrsh7th/cmp-buffer' - use 'hrsh7th/cmp-path' - use 'hrsh7th/cmp-cmdline' - use { - 'hrsh7th/nvim-cmp', - config = function() - require 'config.plugins.cmp' - end - } - - -- snippets - use 'L3MON4D3/LuaSnip' - use 'saadparwaiz1/cmp_luasnip' - - -- autopairs - use { - 'windwp/nvim-autopairs', - config = function() require 'nvim-autopairs'.setup {} end - } - - -- lsp - use { - 'neovim/nvim-lspconfig', - config = function() - require 'config.plugins.lspconfig' - end - } - use { - 'simrat39/rust-tools.nvim', - requires = { - 'nvim-lua/plenary.nvim', - 'mfussenegger/nvim-dap', - } - } - use 'tjdevries/nlua.nvim' - - -- visual - use { - 'navarasu/onedark.nvim', - config = function() - require 'onedark'.setup { style = 'darker' } - require 'onedark'.load() - end - } - use { - 'norcalli/nvim-colorizer.lua', - config = function() - if vim.o.termguicolors then - require 'colorizer'.setup() - end - end - } - use { - 'nvim-lualine/lualine.nvim', - requires = { 'kyazdani42/nvim-web-devicons', opt = true }, - config = function() require 'lualine'.setup() end - } - use { - 'lewis6991/gitsigns.nvim', - config = function() require 'gitsigns'.setup() end - } + require 'config.plugins.telescope'(use) + require 'config.plugins.tree'(use) + require 'config.plugins.syntax'(use) + require 'config.plugins.cmp'(use) + require 'config.plugins.lsp'(use) + require 'config.plugins.visual'(use) -- sync if bootstrapped if PACKER_BOOTSTRAP then diff --git a/lua/config/plugins/cmp.lua b/lua/config/plugins/cmp.lua index 0b475c9..37b2b06 100644 --- a/lua/config/plugins/cmp.lua +++ b/lua/config/plugins/cmp.lua @@ -1,22 +1,35 @@ -local cmp = require 'cmp' -cmp.setup({ - snippet = { - expand = function(args) - require('luasnip').lsp_expand(args.body) +return function(use) + use 'hrsh7th/cmp-nvim-lsp' + use 'hrsh7th/cmp-buffer' + use 'hrsh7th/cmp-path' + use 'hrsh7th/cmp-cmdline' + use { + 'hrsh7th/nvim-cmp', + config = function() + local cmp = require 'cmp' + cmp.setup({ + snippet = { + expand = function(args) + require('luasnip').lsp_expand(args.body) + end + }, + 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 }), + [''] = cmp.mapping.select_next_item(), + }), + sources = cmp.config.sources({ + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + { name = 'path' }, + }), + }) end - }, - 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 }), - [''] = cmp.mapping.select_next_item(), - }), - sources = cmp.config.sources({ - { name = 'nvim_lsp' }, - { name = 'luasnip' }, - { name = 'path' }, - }), -}) + } + use 'L3MON4D3/LuaSnip' + use 'saadparwaiz1/cmp_luasnip' +end diff --git a/lua/config/plugins/lsp.lua b/lua/config/plugins/lsp.lua new file mode 100644 index 0000000..72bfdd9 --- /dev/null +++ b/lua/config/plugins/lsp.lua @@ -0,0 +1,83 @@ +local config = function() + local u = require 'config.utils' + + u.nmap('E', vim.diagnostic.open_float) + u.nmap('[d', vim.diagnostic.goto_prev) + u.nmap(']d', vim.diagnostic.goto_next) + u.nmap('q', vim.diagnostic.setloclist) + + local on_attach = function(_, bufnr) + vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') + vim.o.signcolumn = 'yes' + + local map = function(from, to) + vim.keymap.set('n', from, to, { noremap = true, silent = true, buffer = bufnr }) + end + + map('gd', vim.lsp.buf.definition) + map('gr', vim.lsp.buf.references) + map('gi', vim.lsp.buf.implementation) + map('gD', vim.lsp.buf.declaration) + + map('K', vim.lsp.buf.hover) + map('', vim.lsp.buf.signature_help) + + map('wa', vim.lsp.buf.add_workspace_folder) + map('wr', vim.lsp.buf.remove_workspace_folder) + map('wl', function() + print(vim.inspect(vim.lsp.buf.list_workspace_folders())) + end) + map('D', vim.lsp.buf.type_definition) + map('rn', vim.lsp.buf.rename) + map('ca', vim.lsp.buf.code_action) + map('fm', vim.lsp.buf.formatting) + end + + local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) + + require 'lspconfig'.sumneko_lua.setup { + on_attach = on_attach, + capabilities = capabilities, + settings = { + Lua = { + diagnostics = { + globals = { 'vim' }, + }, + }, + }, + } + + require 'rust-tools'.setup { + server = { + on_attach = on_attach, + capabilities = capabilities, + } + } + + vim.g.markdown_fenced_languages = { + "ts=typescript" + } + require 'lspconfig'.denols.setup { + on_attach = on_attach, + capabilities = capabilities, + } +end + +return function(use) + use { + 'neovim/nvim-lspconfig', + config = config + } + use { + 'simrat39/rust-tools.nvim', + requires = { + 'nvim-lua/plenary.nvim', + 'mfussenegger/nvim-dap', + } + } + use 'tjdevries/nlua.nvim' + use { + 'windwp/nvim-autopairs', + config = function() require 'nvim-autopairs'.setup {} end + } +end diff --git a/lua/config/plugins/lspconfig.lua b/lua/config/plugins/lspconfig.lua deleted file mode 100644 index 8e4b050..0000000 --- a/lua/config/plugins/lspconfig.lua +++ /dev/null @@ -1,63 +0,0 @@ -local u = require 'config.utils' - -u.nmap('E', vim.diagnostic.open_float) -u.nmap('[d', vim.diagnostic.goto_prev) -u.nmap(']d', vim.diagnostic.goto_next) -u.nmap('q', vim.diagnostic.setloclist) - -local on_attach = function(_, bufnr) - vim.api.nvim_buf_set_option(bufnr, 'omnifunc', 'v:lua.vim.lsp.omnifunc') - vim.o.signcolumn = 'yes' - - local map = function(from, to) - vim.keymap.set('n', from, to, { noremap = true, silent = true, buffer = bufnr }) - end - - map('gd', vim.lsp.buf.definition) - map('gr', vim.lsp.buf.references) - map('gi', vim.lsp.buf.implementation) - map('gD', vim.lsp.buf.declaration) - - map('K', vim.lsp.buf.hover) - map('', vim.lsp.buf.signature_help) - - map('wa', vim.lsp.buf.add_workspace_folder) - map('wr', vim.lsp.buf.remove_workspace_folder) - map('wl', function() - print(vim.inspect(vim.lsp.buf.list_workspace_folders())) - end) - map('D', vim.lsp.buf.type_definition) - map('rn', vim.lsp.buf.rename) - map('ca', vim.lsp.buf.code_action) - map('fm', vim.lsp.buf.formatting) -end - -local capabilities = require('cmp_nvim_lsp').update_capabilities(vim.lsp.protocol.make_client_capabilities()) - -require 'lspconfig'.sumneko_lua.setup { - on_attach = on_attach, - capabilities = capabilities, - settings = { - Lua = { - diagnostics = { - globals = { 'vim' }, - }, - }, - }, -} - -require 'rust-tools'.setup { - server = { - on_attach = on_attach, - capabilities = capabilities, - } -} - -vim.g.markdown_fenced_languages = { - "ts=typescript" -} -require'lspconfig'.denols.setup{ - on_attach = on_attach, - capabilities = capabilities, -} - diff --git a/lua/config/plugins/neotree.lua b/lua/config/plugins/neotree.lua deleted file mode 100644 index e1728f5..0000000 --- a/lua/config/plugins/neotree.lua +++ /dev/null @@ -1,14 +0,0 @@ -local u = require 'config.utils' - -vim.cmd [[ let g:neo_tree_remove_legacy_commands = 1 ]] -require 'neo-tree'.setup { - filesystem = { - filtered_items = { - visible = true, - } - }, - window = { - width = 30, - }, -} -u.nmap('e', u.cmd('Neotree toggle')) diff --git a/lua/config/plugins/syntax.lua b/lua/config/plugins/syntax.lua new file mode 100644 index 0000000..d73f981 --- /dev/null +++ b/lua/config/plugins/syntax.lua @@ -0,0 +1,15 @@ +return function(use) + use { + 'nvim-treesitter/nvim-treesitter', + run = function() + require 'nvim-treesitter.install'.update { + with_sync = true + } + end, + config = function() + require 'nvim-treesitter.configs'.setup { + highlight = { enable = true } + } + end, + } +end diff --git a/lua/config/plugins/telescope.lua b/lua/config/plugins/telescope.lua index 7c5fc00..cc07c47 100644 --- a/lua/config/plugins/telescope.lua +++ b/lua/config/plugins/telescope.lua @@ -1,9 +1,30 @@ -local u = require 'config.utils' +return function(use) + use { + 'nvim-telescope/telescope.nvim', + tag = '0.1.0', + requires = { 'nvim-lua/plenary.nvim' }, + config = function() + require 'telescope'.setup {} -require 'telescope'.setup {} + local u = require 'config.utils' -u.nmap('ff', u.cmd('Telescope find_files')) -u.nmap('fg', u.cmd('Telescope live_grep')) -u.nmap('fb', u.cmd('Telescope buffers')) -u.nmap('fh', u.cmd('Telescope help_tags')) + u.nmap('ff', u.cmd('Telescope find_files')) + u.nmap('fg', u.cmd('Telescope live_grep')) + u.nmap('fb', u.cmd('Telescope buffers')) + u.nmap('fh', u.cmd('Telescope help_tags')) + end + } + use { + 'nvim-telescope/telescope-fzf-native.nvim', + run = 'make', + requires = { 'nvim-telescope/telescope.nvim' }, + -- doesn't work? + -- config = function() require 'telescope'.load_extension('fzf') end + } + use { + 'nvim-telescope/telescope-ui-select.nvim', + requires = { 'nvim-telescope/telescope.nvim' }, + config = function() require 'telescope'.load_extension('ui-select') end + } +end diff --git a/lua/config/plugins/tree.lua b/lua/config/plugins/tree.lua new file mode 100644 index 0000000..06beca9 --- /dev/null +++ b/lua/config/plugins/tree.lua @@ -0,0 +1,27 @@ +return function(use) + use { + 'nvim-neo-tree/neo-tree.nvim', + branch = "v2.x", + requires = { + 'nvim-lua/plenary.nvim', + 'kyazdani42/nvim-web-devicons', + 'MunifTanjim/nui.nvim' + }, + config = function() + vim.cmd [[ let g:neo_tree_remove_legacy_commands = 1 ]] + require 'neo-tree'.setup { + filesystem = { + filtered_items = { + visible = true, + } + }, + window = { + width = 30, + }, + } + + local u = require 'config.utils' + u.nmap('e', u.cmd('Neotree toggle')) + end + } +end diff --git a/lua/config/plugins/visual.lua b/lua/config/plugins/visual.lua new file mode 100644 index 0000000..93348ac --- /dev/null +++ b/lua/config/plugins/visual.lua @@ -0,0 +1,26 @@ +return function(use) + use { + 'navarasu/onedark.nvim', + config = function() + require 'onedark'.setup { style = 'darker' } + require 'onedark'.load() + end + } + use { + 'norcalli/nvim-colorizer.lua', + config = function() + if vim.o.termguicolors then + require 'colorizer'.setup() + end + end + } + use { + 'nvim-lualine/lualine.nvim', + requires = { 'kyazdani42/nvim-web-devicons', opt = true }, + config = function() require 'lualine'.setup() end + } + use { + 'lewis6991/gitsigns.nvim', + config = function() require 'gitsigns'.setup() end + } +end