summaryrefslogtreecommitdiff
path: root/lua/plugins/installer.lua
diff options
context:
space:
mode:
Diffstat (limited to 'lua/plugins/installer.lua')
-rw-r--r--lua/plugins/installer.lua55
1 files changed, 55 insertions, 0 deletions
diff --git a/lua/plugins/installer.lua b/lua/plugins/installer.lua
new file mode 100644
index 0000000..6c3b14a
--- /dev/null
+++ b/lua/plugins/installer.lua
@@ -0,0 +1,55 @@
+-- Neovim packer installer.
+
+local fn = vim.fn
+local plugins = require("plugins.plugins")
+
+-- Automatically install packer
+local install_path = fn.stdpath("data") .. "/site/pack/packer/start/packer.nvim"
+if fn.empty(fn.glob(install_path)) > 0 then
+ PACKER_BOOTSTRAP = fn.system({
+ "git",
+ "clone",
+ "--depth",
+ "1",
+ "https://github.com/wbthomason/packer.nvim",
+ install_path,
+ })
+ print("Installing packer close and reopen Neovim...")
+ vim.cmd([[packadd packer.nvim]])
+end
+
+-- Autocommand that reloads neovim whenever you save the plugins.lua file
+vim.cmd([[
+ augroup packer_user_config
+ autocmd!
+ autocmd BufWritePost plugins.lua source <afile> | PackerSync
+ augroup end
+]])
+
+-- Use a protected call so we don't error out on first use
+local status_ok, packer = pcall(require, "packer")
+if not status_ok then
+ return
+end
+
+-- Have packer use a popup window
+packer.init({
+ display = {
+ open_fn = function()
+ return require("packer.util").float({ border = "rounded" })
+ end,
+ },
+})
+
+-- Install your plugins here
+return packer.startup(function(use)
+ for _, plugin in ipairs(plugins) do
+ use(plugin)
+ end
+
+ -- Automatically set up your configuration after cloning packer.nvim
+ -- Put this at the end after all plugins
+ if PACKER_BOOTSTRAP then
+ require("packer").sync()
+ end
+end)