74 lines
2.4 KiB
Bash
Executable file
74 lines
2.4 KiB
Bash
Executable file
#!/usr/bin/env bash
|
|
# An example install script for people using `:h packages`
|
|
export NEOTREE_DATA_HOME="${XDG_DATA_HOME:-$HOME/.local/share}/${NVIM_APPNAME:-nvim}"
|
|
|
|
###########
|
|
# Options #
|
|
###########
|
|
|
|
# You can modify the /neo-tree*/ names here, depending on how you like to organize your packages.
|
|
export NEOTREE_DIR="${NEOTREE_DATA_HOME}/site/pack/neo-tree/start"
|
|
export NEOTREE_DEPS_DIR="${NEOTREE_DATA_HOME}/site/pack/neo-tree-deps/start"
|
|
export NEOTREE_OPTIONAL_DIR="${NEOTREE_DATA_HOME}/site/pack/neo-tree-optional/start"
|
|
|
|
# Modify the optional plugins you want below:
|
|
declare -a OPTIONAL_PLUGINS=(
|
|
"https://github.com/nvim-tree/nvim-web-devicons.git" # for file icons
|
|
# "https://github.com/antosha417/nvim-lsp-file-operations.git" # for LSP-enhanced renames/etc.
|
|
# "https://github.com/folke/snacks.nvim.git" # for image previews
|
|
# "https://github.com/3rd/image.nvim.git" # for image previews
|
|
# "https://github.com/s1n7ax/nvim-window-picker.git" # for _with_window_picker keymaps
|
|
)
|
|
|
|
###########################
|
|
# The rest of the script. #
|
|
###########################
|
|
|
|
ORIGINAL_DIR="$(pwd)"
|
|
|
|
clone_sparse() {
|
|
git clone --filter=blob:none "$@"
|
|
}
|
|
|
|
mkdir -p "${NEOTREE_DIR}" "${NEOTREE_DEPS_DIR}"
|
|
|
|
echo "Installing neo-tree..."
|
|
cd "${NEOTREE_DIR}"
|
|
clone_sparse -b v3.x https://github.com/nvim-neo-tree/neo-tree.nvim.git
|
|
|
|
echo "Installing core dependencies..."
|
|
cd "${NEOTREE_DEPS_DIR}"
|
|
clone_sparse https://github.com/nvim-lua/plenary.nvim.git
|
|
clone_sparse https://github.com/MunifTanjim/nui.nvim.git
|
|
|
|
if [ ${#OPTIONAL_PLUGINS[@]} -gt 0 ]; then
|
|
echo "Installing optional plugins..."
|
|
mkdir -p "${NEOTREE_OPTIONAL_DIR}"
|
|
cd "${NEOTREE_OPTIONAL_DIR}"
|
|
|
|
for repo in "${OPTIONAL_PLUGINS[@]}"; do
|
|
clone_sparse "$repo"
|
|
done
|
|
fi
|
|
|
|
echo "Regenerating help tags..."
|
|
declare -a PLUGIN_BASE_DIRS=(
|
|
"${NEOTREE_DIR}"
|
|
"${NEOTREE_DEPS_DIR}"
|
|
"${NEOTREE_OPTIONAL_DIR}"
|
|
)
|
|
|
|
# Loop through each base directory and find all 'doc' subdirectories using glob
|
|
shopt -s nullglob # Enable nullglob for safe globbing (empty array if no matches)
|
|
for base_dir in "${PLUGIN_BASE_DIRS[@]}"; do
|
|
# Check if the base directory exists
|
|
if [ -d "$base_dir" ]; then
|
|
for doc_path in "${base_dir}"/*/doc; do
|
|
nvim -u NONE --headless -c "helptags ${doc_path}" -c "q"
|
|
done
|
|
fi
|
|
done
|
|
shopt -u nullglob # Disable nullglob
|
|
|
|
echo "Installation complete!"
|
|
cd "${ORIGINAL_DIR}"
|