-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathlsp.bash
executable file
·106 lines (88 loc) · 2.91 KB
/
lsp.bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
#!/bin/bash
# Function to check if a command exists
command_exists() {
command -v "$1" >/dev/null 2>&1
}
# Function to install npm packages globally
install_npm_package() {
if ! command_exists npm; then
echo "npm is not installed. Please install Node.js and npm first."
exit 1
fi
npm install -g "$1"
}
# Function to install Go packages
install_go_package() {
if ! command_exists go; then
echo "Go is not installed. Please install Go first."
exit 1
fi
go install "$1"@latest
}
# Install Fisher (Fish package manager)
curl -sL https://git.io/fisher | source && fisher install jorgebucaran/fisher
# Install Fish plugins
fisher install jorgebucaran/nvm.fish
fisher install jethrokuan/z
fisher install PatrickF1/fzf.fish
fisher install franciscolourenco/done
fisher install jorgebucaran/autopair.fish
# Install apt-fast for faster package downloads
if command_exists apt-get; then
sudo add-apt-repository -y ppa:apt-fast/stable
sudo apt-get update && sudo apt-get install -y apt-fast
fi
# Install FZF (Fuzzy Finder)
if command_exists apt-get; then
sudo apt-get install -y fzf
elif command_exists brew; then
brew install fzf
else
echo "Please install fzf manually."
fi
# Install exa (Better ls replacement)
if command_exists apt-get; then
sudo apt-get install -y exa
elif command_exists brew; then
brew install exa
else
echo "Please install exa manually."
fi
# Install Starship prompt
curl -sS https://starship.rs/install.sh | sh
echo 'starship init fish | source' >> ~/.config/fish/config.fish
# Install Git Delta (Better Git Diffs)
if command_exists apt-get; then
sudo apt-get install -y git-delta
elif command_exists brew; then
brew install git-delta
else
echo "Please install git-delta manually."
fi
# Install various language servers
install_npm_package "vscode-langservers-extracted"
install_npm_package "tailwindcss-language-server"
install_npm_package "vscode-eslint-language-server"
install_npm_package "pyright"
install_npm_package "typescript-language-server"
install_npm_package "prettier"
install_npm_package "svelte-language-server"
# Install gopls & goimports
install_go_package "golang.org/x/tools/gopls"
install_go_package "golang.org/x/tools/cmd/goimports"
# Install Python tools
pip install ruff-lsp black debugpy
# Install C/C++ language servers & formatters
if command_exists apt-get; then
sudo apt-get install -y ccls clang-format lldb
elif command_exists brew; then
brew install ccls clang-format llvm
else
echo "Please install C/C++ tools manually."
fi
# Optimize system swappiness for better performance
echo "vm.swappiness=10" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p
# Add cron job to auto-update system weekly
(crontab -l 2>/dev/null; echo "0 0 * * 7 sudo apt update && sudo apt upgrade -y && sudo apt autoremove -y") | crontab -
echo "Installation complete. Please ensure that all installed binaries are in your PATH."