my-nvim-lua/install.sh

149 lines
3.1 KiB
Bash
Raw Normal View History

2021-03-19 01:42:44 +00:00
#!/usr/bin/env bash
BASE=$(git rev-parse --show-toplevel)
LSP_BIN_PATH=$HOME/.local/bin
2021-05-09 08:19:16 +00:00
default_lsp_langs="css html ts rust python bash json"
lsp_langs=""
choose_langs() {
read -p "Would you like to install $1 lsp?(y/n)" lang
2021-04-08 01:59:39 +00:00
if [ "$lang" = "y" ]; then
lsp_langs+="$1 "
fi
}
2021-04-08 01:59:39 +00:00
for lang in $default_lsp_langs; do
choose_langs $lang
done
2021-03-19 01:42:44 +00:00
2021-05-06 14:19:02 +00:00
# install npm pkg global
npm config set prefix=~/.node_modules
2021-03-19 01:42:44 +00:00
pfx="~~~~~ "
heading() {
echo
echo $pfx $1
}
get_platform() {
case "$(uname -s)" in
2021-04-08 01:59:39 +00:00
Linux*) platform=Linux ;;
Darwin*) platform=Mac ;;
CYGWIN*) platform=Cygwin ;;
MINGW*) platform=MinGw ;;
*) platform="UNKNOWN:${unameOut}" ;;
2021-03-19 01:42:44 +00:00
esac
echo $platform
}
2021-03-28 17:50:53 +00:00
heading "installing packer"
if [[ ! -e ~/.local/share/nvim/site/pack/packer/start/packer.nvim ]]; then
heading "Installing packer"
2021-04-08 01:59:39 +00:00
git clone https://github.com/wbthomason/packer.nvim \
2021-03-28 17:50:53 +00:00
~/.local/share/nvim/site/pack/packer/start/packer.nvim
fi
2021-03-19 01:42:44 +00:00
heading "Linking config"
2021-03-28 17:50:53 +00:00
heading "old nvim config will be deleted so watchout :0"
2021-03-27 02:50:15 +00:00
2021-04-08 01:59:39 +00:00
# copying config
2021-03-27 02:50:15 +00:00
2021-04-01 12:00:32 +00:00
rm -rf ~/.config/nvim/ && mkdir -p ~/.config/nvim
2021-04-08 01:59:39 +00:00
cp -r init.lua ~/.config/nvim && cp -r lua ~/.config/nvim
2021-03-27 02:50:15 +00:00
2021-04-06 04:05:22 +00:00
# change shell for nvim
read -p "which shell do you use?: " shellname
echo "$shellname"
2021-04-24 12:51:13 +00:00
if [ "$(get_platform)" = "Mac" ]; then
gsed -i "s/bash/$shellname/g" ~/.config/nvim/lua/mappings.lua
2021-04-24 12:51:13 +00:00
else
sed -i "s/bash/$shellname/g" ~/.config/nvim/lua/mappings.lua
2021-04-24 12:51:13 +00:00
fi
2021-04-06 04:05:22 +00:00
echo "shell changed to $shellname on nvim successfully!"
2021-03-27 02:50:15 +00:00
#for f in `find -E . -regex ".*\.vim$|.*\.lua$"`; do
# p=${f#*/}
# echo -e '\t' ${p}
# path=~/.config/nvim/${p}
# rm -rf ~/.config/nvim/${p}
# mkdir -p $(dirname "${path}")
# ln -s ${BASE}/${p} ~/.config/nvim/${p}
#done
2021-03-19 01:42:44 +00:00
2021-03-28 17:50:53 +00:00
#heading "Installing plugins"
2021-03-27 02:50:15 +00:00
#nvim --headless +PackerInstall +qa
#nvim --headless +TSUpdate +qa
2021-03-19 01:42:44 +00:00
echo
2021-04-08 01:59:39 +00:00
fn_exists() { declare -F "$1" >/dev/null; }
2021-03-19 01:42:44 +00:00
warn_path=false
2021-04-08 01:59:39 +00:00
install_node_deps() {
2021-03-19 01:42:44 +00:00
if [[ -z $(which npm) ]]; then
echo "npm not installed"
return
fi
npm install -g $@
}
2021-04-26 08:26:27 +00:00
# install languages
install_ts() {
install_node_deps typescript typescript-language-server prettier
}
install_html() {
install_node_deps vscode-html-languageserver-bin
}
install_css() {
install_node_deps vscode-css-languageserver-bin
2021-03-19 01:42:44 +00:00
}
2021-05-09 08:19:16 +00:00
install_json() {
install_node_deps vscode-json-languageserver
}
2021-03-19 01:42:44 +00:00
install_rust() {
if [[ ! -e ~/.local/bin/rust-analyzer ]]; then
mkdir -p ${LSP_BIN_PATH}
curl -L https://github.com/rust-analyzer/rust-analyzer/releases/latest/download/rust-analyzer-$(get_platform) -o ~/.local/bin/rust-analyzer
chmod +x ~/.local/bin/rust-analyzer
warn_path=true
else
echo "already installed"
fi
}
2021-04-08 01:59:39 +00:00
install_python() {
install_node_deps pyright
}
2021-04-26 08:26:27 +00:00
install_bash() {
install_node_deps bash-language-server
}
2021-03-19 01:42:44 +00:00
for lang in ${lsp_langs}; do
2021-04-08 01:59:39 +00:00
if fn_exists install_$lang; then
2021-03-19 01:42:44 +00:00
heading "Installing $lang language server"
install_$lang
else
echo $lang setup not implemented
2021-04-08 01:59:39 +00:00
echo
2021-03-19 01:42:44 +00:00
fi
done
2021-04-08 01:59:39 +00:00
if [[ ${warn_path} == true ]]; then
2021-03-19 01:42:44 +00:00
echo ""
echo "Ensure ${LSP_BIN_PATH} is available in your \$PATH variable"
fi
2021-04-12 11:07:15 +00:00
echo "add ~/.node_modules/bin at PATH!"
2021-04-12 11:07:15 +00:00
# install all plugins via packer
nvim +PackerInstall