Skip to content

feat: LSP and keymap updates #1

feat: LSP and keymap updates

feat: LSP and keymap updates #1

Workflow file for this run

name: Validate Neovim Config
on:
push:
branches: [main, master]
paths:
- "**.lua"
- "init.lua"
- ".github/workflows/validate.yml"
pull_request:
branches: [main, master]
paths:
- "**.lua"
- "init.lua"
workflow_dispatch:
jobs:
validate:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Install Neovim
uses: rhysd/action-setup-vim@v1
with:
neovim: true
version: stable
- name: Install Lua
uses: leafo/gh-actions-lua@v10
with:
luaVersion: "5.1"
- name: Check Lua syntax
run: |
echo "Checking Lua syntax..."
errors=0
while IFS= read -r -d '' file; do
if ! luac -p "$file" 2>/dev/null; then
echo "❌ Syntax error in: $file"
errors=$((errors + 1))
fi
done < <(find lua -name "*.lua" -print0)
if [ $errors -gt 0 ]; then
echo "Found $errors Lua syntax errors"
exit 1
fi
echo "✅ All Lua files have valid syntax"
- name: Validate Neovim startup
run: |
echo "Testing Neovim startup..."
# Create minimal config to test
export XDG_CONFIG_HOME=$(pwd)/test_config
export XDG_DATA_HOME=$(pwd)/test_data
export XDG_STATE_HOME=$(pwd)/test_state
export XDG_CACHE_HOME=$(pwd)/test_cache
mkdir -p "$XDG_CONFIG_HOME/nvim"
mkdir -p "$XDG_DATA_HOME"
mkdir -p "$XDG_STATE_HOME"
mkdir -p "$XDG_CACHE_HOME"
# Copy config
cp -r . "$XDG_CONFIG_HOME/nvim/"
# Test startup (allow plugin download to fail in CI)
timeout 60 nvim --headless -c "lua print('STARTUP_OK')" -c "qa!" 2>&1 || true
echo "✅ Neovim startup check completed"
- name: Check for common issues
run: |
echo "Checking for common issues..."
# Check for deprecated API usage
if grep -r "vim.lsp.diagnostic" lua/ 2>/dev/null; then
echo "⚠️ Warning: Found deprecated vim.lsp.diagnostic usage"
fi
# Check for vim.fn.input without proper escaping
if grep -r 'vim.fn.input.*vim.lsp.get_client' lua/ 2>/dev/null; then
echo "⚠️ Warning: Found potentially unsafe input usage"
fi
# Check for duplicate leader key settings
leader_count=$(grep -r "vim.g.mapleader" lua/ init.lua 2>/dev/null | wc -l)
if [ "$leader_count" -gt 2 ]; then
echo "⚠️ Warning: mapleader set multiple times ($leader_count occurrences)"
fi
echo "✅ Common issues check completed"
stylua:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Check formatting with StyLua
uses: JohnnyMorganz/stylua-action@v4
with:
token: ${{ secrets.GITHUB_TOKEN }}
version: latest
args: --check lua/