summaryrefslogtreecommitdiff
path: root/lua
diff options
context:
space:
mode:
authorAotrix <[email protected]>2025-02-23 04:23:42 +0100
committerAotrix <[email protected]>2025-02-23 04:23:42 +0100
commit5c623620a00a72614bd166396e3f2ae67f640a0c (patch)
treec54791fc9050b165c080d19bb34ca2cc1f2349cd /lua
parent332716c04734a4f8afc273f9bee9f3fc3c7c2402 (diff)
autocompletion worksgit add -A
Diffstat (limited to 'lua')
-rw-r--r--lua/aotrix/plugins/nvim_cmp.lua112
-rw-r--r--lua/aotrix/plugins/telescope.lua15
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