Awesome Neovim
精选的Neovim插件集合,主要针对Neovim特有功能。这意味着Vim兼容的插件不在此列出。
Neovim 是一个基于Vim的文本编辑器,专为可扩展性和可用性而设计,鼓励新的应用和贡献。
功能特性
- 插件管理器 - 多种插件管理解决方案
- LSP支持 - 语言服务器协议集成
- 智能补全 - 代码自动补全功能
- 语法高亮 - 基于Tree-sitter的语法解析
- 文件浏览 - 高效的文件管理系统
- 色彩方案 - 丰富的主题和配色方案
- 状态栏 - 可定制的状态显示
- 模糊查找 - 快速文件内容搜索
- 终端集成 - 内置终端支持
安装指南
前置要求
确保已安装以下工具:
# 安装必要依赖
sudo apt install jq git
# 安装GitHub CLI
gh auth login
环境配置
- 确保已安装Neovim最新版本
- 配置GitHub CLI进行身份验证
- 克隆项目仓库:
git clone https://github.com/rockerBOO/awesome-neovim.git
cd awesome-neovim
使用说明
查看插件列表
项目按功能分类组织插件,包括:
- 插件管理器 - 管理Neovim插件安装
- LSP - 语言服务器协议支持
- 补全 - 代码自动补全引擎
- 语法 - 语法高亮和解析
- 文件浏览器 - 文件系统导航
- 色彩方案 - 界面主题定制
自动化脚本使用
项目提供多个实用脚本:
# 检查PR合规性
./scripts/batch_pr_compliance.sh <PR编号>
# 分析仓库质量
# 强制重新分析
核心代码
#!/bin/bash
local repo_url="$1"
local temp_dir=$(mktemp -d)
# 移除尾部.git
repo_url=$(echo "$repo_url" | sed 's/\.git$//')
# 克隆仓库
if git clone --depth 1 "$repo_url" "$temp_dir"; then
)
echo "Total Lines: $line_count"
if [ "$line_count" -lt 5 ]; then
fi
# 检查描述信息
echo "⚠️ WARNING: No clear project description found"
fi
rm -rf "$temp_dir"
return 0
fi
done
rm -rf "$temp_dir"
return 1
else
echo "❌ Failed to clone repository"
rm -rf "$temp_dir"
return 1
fi
}
PR审查状态检查
#!/bin/bash
# 函数:检查PR审查状态
check_review_status() {
local pr_number="$1"
# 获取PR审查和提交数据
local pr_data=$(gh pr view "$pr_number" --json reviews,commits --jq '{
reviews: [.reviews[] | select(.state != "PENDING") | {
state: .state,
submittedAt: .submittedAt,
author: .author.login
}],
commits: [.commits[] | {
oid: .oid,
authoredDate: .authoredDate
}]
}')
# 检查是否有非待处理的审查
local review_count=$(echo "$pr_data" | jq '.reviews | length')
if [ "$review_count" -eq 0 ]; then
echo "ℹ️ PR $pr_number: No reviews yet"
return 0
fi
# 获取最新审查日期
local latest_review_date=$(echo "$pr_data" | jq -r '.reviews | map(.submittedAt) | max')
if [ "$latest_review_date" == "null" ]; then
echo "ℹ️ PR $pr_number: Reviews exist but no submission date available"
return 0
fi
# 检查审查后是否有新提交
local commits_after_review=$(echo "$pr_data" | jq --arg date "$latest_review_date" \
'.commits | map(select(.authoredDate > $date)) | length')
if [ "$commits_after_review" -gt 0 ]; then
echo "🚨 PR $pr_number: Has new commits after latest review - needs re-review"
else
echo "✅ PR $pr_number: No new commits after latest review"
fi
}
YAML文件修复工具
#!/bin/bash
# 修复GitHub workflows中常见yamllint问题的脚本
fix_yaml_file() {
local file="$1"
echo "Fixing $file..."
# 创建备份
cp "$file" "${file}.bak"
# 修复尾部空格
sed -i 's/[[:space:]]*$//' "$file"
# 如果缺少文档起始标记则添加
if ! head -1 "$file" | grep -q "^---"; then
sed -i '1i---' "$file"
fi
# 如果文件末尾缺少换行符则添加
if [ -n "$(tail -c1 "$file")" ]; then
echo "" >> "$file"
fi
echo "Fixed $file"
}
# 修复所有workflow文件
for file in .github/workflows/*.yml; do
if [ -f "$file" ]; then
fix_yaml_file "$file"
fi
done
echo "All YAML files processed. Checking yamllint again..."
yamllint .github/workflows/ --format parsable | head -20