summary refs log tree commit diff
path: root/.config/nvim/lua/config/lazy.lua
blob: 5f859f017b2e3307b56102efb4df437a07a93898 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
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' })