summary refs log tree commit diff
path: root/.config/nvim/lua/config/lazy.lua
diff options
context:
space:
mode:
Diffstat (limited to '.config/nvim/lua/config/lazy.lua')
-rw-r--r--.config/nvim/lua/config/lazy.lua63
1 files changed, 63 insertions, 0 deletions
diff --git a/.config/nvim/lua/config/lazy.lua b/.config/nvim/lua/config/lazy.lua
new file mode 100644
index 0000000..5f859f0
--- /dev/null
+++ b/.config/nvim/lua/config/lazy.lua
@@ -0,0 +1,63 @@
+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'}, '<leader>l', '<nop>', { desc = 'lazy' })
+vim.keymap.set({'n'}, '<leader>lz', '<cmd>Lazy<cr>', { desc = 'lazy: open ui' })
+vim.keymap.set({'n'}, '<leader>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' })