Overview#

Manages all external extensions, ensures their automatic installation (Bootstrap), and keeps them updated in the background (Checker).
 
 

-- Bootstrap lazy.nvim
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.notify("Failed to clone lazy.nvim:\n" .. out, vim.log.levels.ERROR)
    vim.fn.getchar()
    os.exit(1)
  end
end
vim.opt.rtp:prepend(lazypath)

-- Plugin Setup
require("lazy").setup({
  spec = {
    -- MDVim plugins
    { import = "plugins.treesitter" },
    { import = "plugins.screensaver" },
    { import = "plugins.mdcanvas" },
    { import = "plugins.fugitive" },
    { import = "plugins.flash" },
    { import = "plugins.pomo" },
    { import = "plugins.img-clip" },
    { import = "plugins.snacks" },
    { import = "plugins.obsidian" },
    { import = "plugins.todo" },
    { import = "plugins.easytables" },
    { import = "plugins.vim-autoread" },
    { import = "plugins.render-markdown" },
    { import = "plugins.which-key" },
    { import = "plugins.footnote" },
    { import = "plugins.pencil" },
    { import = "plugins.vim-markdown" },
    { import = "plugins.cmp" },
    { import = "plugins.cmp-rg" },
    { import = "plugins.stay-centered" },
    { import = "plugins.lualine" },
    { import = "plugins.yazi" },
    { import = "plugins.telescope" },

    -- Own Plugins
    { import = "plugins.glossator-nvim" },
    { import = "plugins.ltqf" }, 
    { import = "plugins.md-toc" },
    { import = "plugins.recollect" },
    { import = "plugins.sioyek-highlights" },
    { import = "plugins.bibman" },
    { import = "plugins.hmw" },
    { import = "plugins.toce" },
    { import = "plugins.md2pdf" },
    { import = "plugins.prose-analyzer" },
    { import = "plugins.citation-nvim" },
    { import = "plugins.weblink_reader" },

    -- Personal Setup
    { import = "plugins.kitty-scrollback" },
    { import = "plugins.neopywal" },
  },
  checker = { 
    enabled = true,  -- automatically checks for plugin updates in the background.
    notify = false,  -- does it silently 
  },
})