local lazypath = vim.fn.stdpath('data') .. '/lazy/lazy.nvim' if not (vim.uv or vim.loop).fs_stat(lazypath) then local lazyrepo = 'https://github.com/folke/lazy.nvim.git' local out = vim.fn.system({'git', 'clone', '--filter=blob:none', '--branch=stable', lazyrepo, lazypath}) if vim.v.shell_error ~= 0 then vim.api.nvim_echo({ {'Failed to clone lazy.nvim:\n', 'ErrorMsg'}, {out, 'WarningMsg'}, {'\nPress any key to exit...'}, }, true, {}) vi.fn.getchar() -- let user ack os.exit(1) end end vim.opt.rtp:prepend(lazypath) vim.g.mapleader = " " vim.g.maplocalleader = "\\" require('lazy').setup({ -- load plugin specs from ./plugins spec = { { import = 'plugins' } }, -- colorscheme for installing plugins install = { colorscheme = { 'default' } }, -- automatically check for plugin updates checker = { enabled = true, frequency = (3600 * 24 * 3), -- 3 days }, }) vim.keymap.set({'n'}, 'l', '', { desc = 'lazy' }) vim.keymap.set({'n'}, 'lz', 'Lazy', { desc = 'lazy: open ui' }) vim.keymap.set({'n'}, 'ln', function() local pname = 'TODO' local ppath = vim.fn.stdpath('config') .. '/lua/plugins' vim.ui.input({ prompt = 'Plugin name: ' }, function(input) pname = input end) vim.cmd.cd(ppath) vim.fn.setreg('a', [[return { { '$name', cmd = {'$cmd'}, opts = {$opts}, keys = { { mode = {'n'}, '$lhs', '$rhs', desc = '$desc' }, }, } }]]) local buf = vim.api.nvim_create_buf(true, false) vim.api.nvim_buf_set_name(buf, pname .. '.lua') vim.api.nvim_set_option_value('filetype', 'lua', { buf = buf }) vim.api.nvim_win_set_buf(0, buf) require('luasnip.extras.otf').on_the_fly('a') end, { desc = 'lazy: new plugin' })