summaryrefslogtreecommitdiff
path: root/lua/bootstrap.lua
diff options
context:
space:
mode:
authorGustaf Rydholm <gustaf.rydholm@gmail.com>2022-04-01 00:28:18 +0200
committerGustaf Rydholm <gustaf.rydholm@gmail.com>2022-04-01 00:28:18 +0200
commita7caba6a6c754469204022bf155204c680e57d65 (patch)
tree54494506b4e84ff68353cfdf9204f33b0eae9e02 /lua/bootstrap.lua
parent80590ded756588960e90050fc328f0bd2b9e5692 (diff)
feat(bootstrap): add bootstrap script
Diffstat (limited to 'lua/bootstrap.lua')
-rw-r--r--lua/bootstrap.lua50
1 files changed, 50 insertions, 0 deletions
diff --git a/lua/bootstrap.lua b/lua/bootstrap.lua
new file mode 100644
index 0000000..6e49324
--- /dev/null
+++ b/lua/bootstrap.lua
@@ -0,0 +1,50 @@
+-- Bootstrap nvim with essential plugins.
+
+local fn = vim.fn
+local fmt = string.format
+local execute = vim.api.nvim_command
+
+local function ensure(user, repository)
+ local packer_path = fn.stdpath "data" .. "/site/pack"
+ local ensure_path = fmt("%s/packer/start/%s", packer_path, repository)
+ if fn.empty(fn.glob(ensure_path)) > 0 then
+ execute(fmt("!git clone --depth 1 https://github.com/%s/%s %s", user, repository, ensure_path))
+ execute(fmt("packadd %s", repository))
+ end
+end
+
+-- Bootstrap install essential modules if not present
+ensure("wbthomason", "packer.nvim")
+ensure("Olical", "aniseed")
+ensure("lewis6991", "impatient.nvim")
+
+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,
+ },
+}
+
+-- Autocommand that reloads neovim whenever plugins.fnl file is saved
+vim.cmd [[
+ augroup packer_user_config
+ autocmd!
+ autocmd BufWritePost plugins.fnl source <afile> | PackerCompile
+ augroup end
+]]
+
+-- Enable faster loading with impatient
+require "impatient"
+
+-- Load fennel config
+vim.g["aniseed#env"] = {
+ module = "init",
+ compile = true
+}