return { { "ellisonleao/dotenv.nvim", config = function() require('dotenv').setup({ enable_on_load = true, -- will load your .env file upon loading a buffer }) vim.api.nvim_create_autocmd("BufEnter", { pattern = "*", callback = require('dotenv').autocmd }) end }, { "ThePrimeagen/refactoring.nvim", dependencies = { "nvim-lua/plenary.nvim", "nvim-treesitter/nvim-treesitter", }, config = function() require("telescope").load_extension("refactoring") end, keys = { { "rr", ":lua require('refactoring').select_refactor()", desc = "Select refactoring", mode = {"n", "x"}, }, -- Refactoring operations { "re", "lua require('refactoring').refactor('Extract Function')", desc = "Extract Function", mode = "x", }, { "rf", "lua require('refactoring').refactor('Extract Function To File')", desc = "Extract Function To File", mode = "x", }, { "rv", "lua require('refactoring').refactor('Extract Variable')", desc = "Extract Variable", mode = "x", }, { "rI", "lua require('refactoring').refactor('Inline Function')", desc = "Inline Function", mode = "n", }, { "ri", "lua require('refactoring').refactor('Inline Variable')", desc = "Inline Variable", mode = {"n", "x"}, }, -- Extract block { "rb", "lua require('refactoring').refactor('Extract Block')", desc = "Extract Block", mode = "n", }, { "rbf", "lua require('refactoring').refactor('Extract Block To File')", desc = "Extract Block To File", mode = "n", }, -- Telescope { "fr", "lua require('telescope').extensions.refactoring.refactors()", mode = "n", } } }, { 'folke/neodev.nvim', ft = {'lua'}, dependencies = { 'neovim/nvim-lspconfig' }, config = function() require('neodev').setup() require('lspconfig').lua_ls.setup({ settings = { Lua = { completion = { callSnippet = "Replace" } } } }) end }, { 'folke/trouble.nvim', dependencies = { 'kyazdani42/nvim-web-devicons' }, config = function() require("trouble").setup() local function set_trouble_keymap(key, cmd) vim.keymap.set( "n", string.format("x%s", key), string.format("Trouble %s", cmd) ) end set_trouble_keymap("x", "diagnostics toggle") set_trouble_keymap("X", "diagnostics toggle filter.buf=0") set_trouble_keymap("Q", "qflist toggle") set_trouble_keymap("l", "lsp toggle focus=false win.position=right") end }, { 'lewis6991/gitsigns.nvim', event = "BufReadPost", enabled = vim.fn.executable "git" == 1, config = function() require("gitsigns").setup({ signs = { add = { text = "+" }, change = { text = "|" }, delete = { text = "-" }, topdelete = { text = "^" }, changedelete = { text = "~" }, untracked = { text = "0" }, } }) local function set_gitsigns_keymap(key, cmd) vim.keymap.set( "n", string.format("g%s", key), string.format("Gitsigns %s", cmd) ) end set_gitsigns_keymap('p', 'preview_hunk') -- show diff set_gitsigns_keymap('b', 'blame_line') -- show author, hash, date and message of current line commit set_gitsigns_keymap('n', 'next_hunk') -- go to next unstaged changes set_gitsigns_keymap('N', 'prev_hunk') -- go to prev unstaged changes set_gitsigns_keymap('r', 'reset_hunk') -- reset hunk under cursor set_gitsigns_keymap('h', 'toggle_linehl') -- line highlighting end }, { "aznhe21/actions-preview.nvim", dependencies = { 'nvim-telescope/telescope.nvim', 'MunifTanjim/nui.nvim' }, config = function() require("actions-preview").setup { telescope = { sorting_strategy = "ascending", layout_strategy = "vertical", layout_config = { width = 0.8, height = 0.9, prompt_position = "top", preview_cutoff = 20, preview_height = function(_, _, max_lines) return max_lines - 15 end, }, }, } vim.keymap.set("n", "ca", require("actions-preview").code_actions) end, }, }