local au = vim.api.nvim_create_autocmd
local map = vim.keymap.set
local pluginOptions = require 'plugindata'
function Load_plugin(plugname)
if pluginOptions[plugname] then
local url = 'https://github.com/' .. plugname
local modname = pluginOptions[plugname].modname
local opts = pluginOptions[plugname].opts
local callback = pluginOptions[plugname].callback
local dependencies = pluginOptions[plugname].dependencies
if dependencies then
for _, dep in ipairs(dependencies) do
Load_plugin(dep)
end
end
vim.pack.add({ url })
if opts and modname then require(modname).setup(opts) end
if callback then callback() end
pluginOptions[plugname] = nil
end
end
au({ 'UIEnter' }, {
callback = function()
Load_plugin 'folke/flash.nvim'
Load_plugin 'gbprod/substitute.nvim'
Load_plugin 'kylechui/nvim-surround'
Load_plugin 'andersevenrud/nvim_context_vt'
end
})
local function Load_cmdln()
require 'command'
require 'fzf'
Load_plugin 'vim-jp/vimdoc-ja'
Load_plugin 'vim-jp/nvimdoc-ja'
Load_plugin 'stevearc/oil.nvim'
end
local cmdlnc = { ':', '/', '?' }
for _, c in ipairs(cmdlnc) do
map({ 'n', 'v', }, c, function()
Load_cmdln()
for _, cc in ipairs(cmdlnc) do
vim.keymap.del({ 'n', 'v' }, cc)
end
vim.fn.feedkeys(c)
end)
end
map('n', '^a', function()
Load_plugin 'zbirenbaum/copilot.lua'
local sug = require 'copilot.suggestion'
map('n', '^a', sug.toggle_auto_trigger)
sug.toggle_auto_trigger()
end)
map('n', 'g/', function()
Load_plugin 'nvim-telescope/telescope.nvim'
local tb = require 'telescope.builtin'
map('n', 'g/', tb.live_grep)
tb.live_grep()
end)
map('n', 'm', function()
Load_plugin 'niuiic/track.nvim'
vim.keymap.del('n', 'm')
vim.fn.feedkeys 'm'
end)
map('n', '<A-n>', function()
Load_plugin 'SmiteshP/nvim-navbuddy'
map('n', '<A-n>', vim.cmd.Navbuddy)
vim.cmd.Navbuddy()
end)
au({ 'InsertEnter', 'CmdlineEnter' }, {
once = true,
callback = function()
if vim.bo.filetype ~= 'markdown' then Load_plugin 'altermo/ultimate-autopair.nvim' end
end
})
au({ 'CursorMoved' }, {
once = true,
callback = function()
Load_plugin 'mini.indentscope'
Load_plugin 'utilyre/sentiment.nvim'
Load_plugin 'hadronized/hop.nvim'
end
})