diff options
Diffstat (limited to 'lua/aotrix/plugins')
| -rw-r--r-- | lua/aotrix/plugins/nvim_cmp.lua | 112 | ||||
| -rw-r--r-- | lua/aotrix/plugins/telescope.lua | 15 |
2 files changed, 121 insertions, 6 deletions
diff --git a/lua/aotrix/plugins/nvim_cmp.lua b/lua/aotrix/plugins/nvim_cmp.lua new file mode 100644 index 0000000..01887dd --- /dev/null +++ b/lua/aotrix/plugins/nvim_cmp.lua @@ -0,0 +1,112 @@ + return { -- Autocompletion + 'hrsh7th/nvim-cmp', + event = 'InsertEnter', + dependencies = { + -- Snippet Engine & its associated nvim-cmp source + { + 'L3MON4D3/LuaSnip', + build = (function() + -- Build Step is needed for regex support in snippets. + -- This step is not supported in many windows environments. + -- Remove the below condition to re-enable on windows. + if vim.fn.has 'win32' == 1 or vim.fn.executable 'make' == 0 then + return + end + return 'make install_jsregexp' + end)(), + dependencies = { + -- `friendly-snippets` contains a variety of premade snippets. + -- See the README about individual language/framework/plugin snippets: + -- https://github.com/rafamadriz/friendly-snippets + -- { + -- 'rafamadriz/friendly-snippets', + -- config = function() + -- require('luasnip.loaders.from_vscode').lazy_load() + -- end, + -- }, + }, + }, + 'saadparwaiz1/cmp_luasnip', + + -- Adds other completion capabilities. + -- nvim-cmp does not ship with all sources by default. They are split + -- into multiple repos for maintenance purposes. + 'hrsh7th/cmp-nvim-lsp', + 'hrsh7th/cmp-path', + 'hrsh7th/cmp-nvim-lsp-signature-help', + }, + config = function() + -- See `:help cmp` + local cmp = require 'cmp' + local luasnip = require 'luasnip' + luasnip.config.setup {} + + cmp.setup { + snippet = { + expand = function(args) + luasnip.lsp_expand(args.body) + end, + }, + completion = { completeopt = 'menu,menuone,noinsert' }, + + -- For an understanding of why these mappings were + -- chosen, you will need to read `:help ins-completion` + -- + -- No, but seriously. Please read `:help ins-completion`, it is really good! + mapping = cmp.mapping.preset.insert { + -- Select the [n]ext item + ['<C-n>'] = cmp.mapping.select_next_item(), + -- Select the [p]revious item + ['<C-p>'] = cmp.mapping.select_prev_item(), + + -- Scroll the documentation window [b]ack / [f]orward + ['<C-b>'] = cmp.mapping.scroll_docs(-4), + ['<C-f>'] = cmp.mapping.scroll_docs(4), + + -- Accept ([y]es) the completion. + -- This will auto-import if your LSP supports it. + -- This will expand snippets if the LSP sent a snippet. + ['<C-y>'] = cmp.mapping.confirm { select = true }, + + -- If you prefer more traditional completion keymaps, + -- you can uncomment the following lines + --['<CR>'] = cmp.mapping.confirm { select = true }, + --['<Tab>'] = cmp.mapping.select_next_item(), + --['<S-Tab>'] = cmp.mapping.select_prev_item(), + + -- Manually trigger a completion from nvim-cmp. + -- Generally you don't need this, because nvim-cmp will display + -- completions whenever it has completion options available. + ['<C-Space>'] = cmp.mapping.complete {}, + + -- Think of <c-l> as moving to the right of your snippet expansion. + -- So if you have a snippet that's like: + -- function $name($args) + -- $body + -- end + -- + -- <c-l> will move you to the right of each of the expansion locations. + -- <c-h> is similar, except moving you backwards. + ['<C-l>'] = cmp.mapping(function() + if luasnip.expand_or_locally_jumpable() then + luasnip.expand_or_jump() + end + end, { 'i', 's' }), + ['<C-h>'] = cmp.mapping(function() + if luasnip.locally_jumpable(-1) then + luasnip.jump(-1) + end + end, { 'i', 's' }), + + -- For more advanced Luasnip keymaps (e.g. selecting choice nodes, expansion) see: + -- https://github.com/L3MON4D3/LuaSnip?tab=readme-ov-file#keymaps + }, + sources = { + { name = 'nvim_lsp' }, + { name = 'luasnip' }, + { name = 'path' }, + { name = 'nvim_lsp_signature_help' }, + }, + } + end, + } diff --git a/lua/aotrix/plugins/telescope.lua b/lua/aotrix/plugins/telescope.lua index 780fde5..5abb62c 100644 --- a/lua/aotrix/plugins/telescope.lua +++ b/lua/aotrix/plugins/telescope.lua @@ -6,10 +6,10 @@ return { 'nvim-telescope/telescope-live-grep-args.nvim', 'nvim-telescope/telescope-file-browser.nvim', {'nvim-telescope/telescope-fzf-native.nvim', build = 'make'}, + 'nvim-telescope/telescope-ui-select.nvim', }, config = function() - require('telescope').load_extension('fzf') local actions = require("telescope.actions") require("telescope").setup({ defaults = { @@ -20,21 +20,24 @@ return { -- map actions.which_key to <C-h> (default: <C-/>) -- actions.which_key shows the mappings for your picker, -- e.g. git_{create, delete, ...}_branch for the git_branches picker - ["<C-j>"] = actions.move_selection_next, - ["<C-k>"] = actions.move_selection_previous, - ["<C-n>"] = actions.preview_scrolling_down, - ["<C-p>"] = actions.preview_scrolling_up, ["<esc>"] = actions.close, } } }, extensions = { - fzf = {} + fzf = {}, + ['ui-select'] = { + require('telescope.themes').get_dropdown(), + }, }, }) + pcall(require('telescope').load_extension, 'fzf') + pcall(require('telescope').load_extension, 'ui-select') + vim.keymap.set("n", "<leader>pv", function() require("telescope").extensions.file_browser.file_browser() end) vim.keymap.set("n", "<leader>pf", function() require("telescope.builtin").find_files() end) + vim.keymap.set("n", "gd", function() require("telescope.builtin").lsp_definitions() end) require('aotrix.multigrep').setup() end |
