From a7caba6a6c754469204022bf155204c680e57d65 Mon Sep 17 00:00:00 2001 From: Gustaf Rydholm Date: Fri, 1 Apr 2022 00:28:18 +0200 Subject: feat(bootstrap): add bootstrap script --- lua/bootstrap.lua | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) create mode 100644 lua/bootstrap.lua (limited to 'lua/bootstrap.lua') 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 | PackerCompile + augroup end +]] + +-- Enable faster loading with impatient +require "impatient" + +-- Load fennel config +vim.g["aniseed#env"] = { + module = "init", + compile = true +} -- cgit v1.2.3-70-g09d2