Ostatnio aktywny 1 month ago

vscode 开发必选扩展

Rewizja 288d8b8eb4e97c71765e58c2b8be58065fa22031

README.md Surowy

VS Code 扩展推荐

扩展列表

名称 扩展 ID (官方) 扩展 ID() 描述
Even Better TOML tamasfe.even-better-toml - 功能齐全的 TOML 支持
Choose a License ultram4rine.vscode-choosealicense - 为你的项目选择一个许可证
gitignore codezombiech.gitignore - https://github.com/github/gitignore 仓库拉取 .gitignore 模板。支持.gitignore 文件的语言。
index.txt Surowy
1tamasfe.even-better-toml
2ultram4rine.vscode-choosealicense
3codezombiech.gitignore
4
install Surowy
1#!/usr/bin/env bash
2
3BASE_URL="https://gist.asfd.cn/jetsung/vscode/raw/HEAD/"
4LIST_FILE="index.txt" # 默认扩展 ID 列表文件
5DESC_FILE="README.md" # 描述 Markdown 文件
6IDE_CMD="code" # 默认 VSCode
7FORCE=false
8EXTRA=""
9VERBOSE=false # -v: 只显示详细扩展信息(分块格式),不安装
10
11# 参数解析函数
12parameters() {
13 while getopts "s:f e:n:v" opt; do
14 case $opt in
15 s) IDE_CMD="$OPTARG" ;;
16 f) FORCE=true ;;
17 e) EXTRA="$OPTARG" ;;
18 n) LIST_FILE="$OPTARG" ;;
19 v) VERBOSE=true ;;
20 \?) echo "无效参数: -$OPTARG" >&2; exit 1 ;;
21 esac
22 done
23 shift $((OPTIND-1))
24 EXTRA="$EXTRA $@"
25}
26
27# 主函数
28main() {
29 parameters "$@"
30
31 # 处理 LIST_FILE
32 if [[ "$LIST_FILE" != "*.*" ]] && [[ "$LIST_FILE" != *.* ]]; then
33 LIST_FILE="${LIST_FILE}.txt"
34 fi
35
36 URL_DESC="${BASE_URL}${DESC_FILE}"
37
38 if $VERBOSE; then
39 # -v 模式:下载 README.md,提取每个扩展的信息,按指定分块格式输出(每个扩展一组,空行分隔)
40 echo "" # 开头空一行(可选,如果你不要可以删)
41 curl -s --fail "$URL_DESC" | awk '
42 /^\| \[\*\*[^*]+\*\*\]\[\d+\] \| `/ {
43 split($0, fields, "|")
44
45 # 名称:去除 Markdown 链接和粗体
46 name = fields[2]
47 gsub(/^[ \t]+|[ \t]+$/, "", name)
48 gsub(/\[\*\*[^*]+\*\*\]\[\d+\]/, "", name)
49
50 # 扩展 ID(官方):去除 ` 和空格
51 id_official = fields[3]
52 gsub(/^[ \t]+|[ \t]+$|`/, "", id_official)
53
54 # 描述:去除空格
55 desc = fields[5]
56 gsub(/^[ \t]+|[ \t]+$/, "", desc)
57
58 # 输出指定格式
59 print "名称: " name
60 print "扩展 ID: " id_official
61 print "描述: " desc
62 print "" # 每个扩展后空一行分隔
63 }'
64 exit 0
65 fi
66
67 # 非 -v 模式:正常下载 index.txt 并安装
68 URL_LIST="${BASE_URL}${LIST_FILE}"
69
70 echo "从 $URL_LIST 下载扩展列表..."
71 EXTENSIONS=$(curl -s --fail "$URL_LIST" | grep -v '^#' | grep -v '^$' | sed '/^$/d')
72
73 if [ -z "$EXTENSIONS" ]; then
74 echo "错误: 未获取到扩展列表或文件为空!请检查文件名(当前: $LIST_FILE)。" >&2
75 exit 1
76 fi
77
78 BASE_CMD="$IDE_CMD --install-extension"
79 if $FORCE; then
80 EXTRA="--force $EXTRA"
81 fi
82
83 echo "开始为 $IDE_CMD 安装扩展(命令: $BASE_CMD ... $EXTRA)"
84 echo "扩展列表:"
85 echo "$EXTENSIONS" | tr ' ' '\n'
86 echo "-----------------"
87
88 echo "$EXTENSIONS" | tr ' ' '\n' | while read -r ext; do
89 [ -z "$ext" ] && continue
90 echo "安装: $ext"
91 $BASE_CMD "$ext" $EXTRA || echo "警告: 安装 $ext 失败(可能已安装或 ID 不兼容)"
92 done
93
94 echo "-----------------"
95 echo "所有扩展安装完成!请重启 IDE 以生效。"
96}
97
98main "$@"
python.txt Surowy
1ms-python.isort
2ms-python.autopep8
3ms-python.python
4ms-python.vscode-pylance
5ms-python.vscode-python-envs
6ms-python.debugpy
7charliermarsh.ruff
8