code-formatter-installer

安装量: 42
排名: #17391

安装

npx skills add https://github.com/patricio0312rev/skills --skill code-formatter-installer

Code Formatter & Linter Installer

Establish consistent code formatting and linting across your project.

Core Workflow Detect stack: Identify language/framework (JS/TS, Python, Go, Rust) Choose tools: Select appropriate formatters and linters Generate configs: Create config files with best-practice rules Add scripts: Include npm/package scripts for format/lint Configure editor: Provide VS Code, IntelliJ, Vim settings Setup pre-commit: Add git hooks for automatic formatting CI integration: Suggest GitHub Actions or CI config Tool Selection by Stack JavaScript/TypeScript Formatter: Prettier Linter: ESLint + typescript-eslint Editor: EditorConfig Hooks: Husky + lint-staged Python Formatter: Black + isort Linter: Ruff or Flake8 + mypy Hooks: pre-commit Go Formatter: gofmt + goimports Linter: golangci-lint Rust Formatter: rustfmt Linter: clippy Configuration Templates Prettier (.prettierrc.json) { "semi": true, "trailingComma": "es5", "singleQuote": true, "printWidth": 100, "tabWidth": 2, "arrowParens": "avoid" }

ESLint (.eslintrc.json) { "extends": [ "eslint:recommended", "plugin:@typescript-eslint/recommended", "plugin:react/recommended", "prettier" ], "rules": { "no-console": "warn", "@typescript-eslint/no-unused-vars": "error" } }

EditorConfig (.editorconfig) root = true

[*] indent_style = space indent_size = 2 end_of_line = lf charset = utf-8 trim_trailing_whitespace = true insert_final_newline = true

[*.py] indent_size = 4

[*.md] trim_trailing_whitespace = false

Python (pyproject.toml) [ tool.black ] line-length = 100 target-version = ['py311']

[ tool.isort ] profile = "black" line_length = 100

[ tool.mypy ] strict = true warn_return_any = true

Package Scripts JavaScript/TypeScript (package.json) { "scripts": { "format": "prettier --write .", "format:check": "prettier --check .", "lint": "eslint . --ext .ts,.tsx,.js,.jsx", "lint:fix": "eslint . --ext .ts,.tsx,.js,.jsx --fix", "typecheck": "tsc --noEmit" } }

Python

Makefile or scripts

format: black . isort .

lint: ruff check . mypy .

format-check: black --check . isort --check .

Git Hooks Setup Husky + lint-staged (Node.js) Install dependencies: npm install --save-dev husky lint-staged npx husky init

Configure lint-staged (.lintstagedrc.json): { ".{ts,tsx,js,jsx}": ["eslint --fix", "prettier --write"], ".{json,md,yml}": ["prettier --write"] }

Add pre-commit hook (.husky/pre-commit):

!/bin/sh

npx lint-staged

pre-commit (Python) Create .pre-commit-config.yaml: repos: - repo: https://github.com/psf/black rev: 24.1.1 hooks: - id: black

  • repo: https://github.com/pycqa/isort rev: 5.13.2 hooks:

    • id: isort
  • repo: https://github.com/astral-sh/ruff-pre-commit rev: v0.2.0 hooks:

    • id: ruff args: [--fix]
  • repo: https://github.com/pre-commit/mirrors-mypy rev: v1.8.0 hooks:

    • id: mypy

Install: pip install pre-commit pre-commit install

Editor Configuration VS Code (settings.json) { "editor.defaultFormatter": "esbenp.prettier-vscode", "editor.formatOnSave": true, "editor.codeActionsOnSave": { "source.fixAll.eslint": true }, "[python]": { "editor.defaultFormatter": "ms-python.black-formatter" } }

VS Code Extensions (.vscode/extensions.json) { "recommendations": [ "esbenp.prettier-vscode", "dbaeumer.vscode-eslint", "editorconfig.editorconfig", "ms-python.black-formatter" ] }

IntelliJ/WebStorm Enable: Settings → Languages & Frameworks → JavaScript → Prettier → On save Enable: Settings → Tools → Actions on Save → Reformat code CI Integration GitHub Actions (.github/workflows/lint.yml) name: Lint

on: [push, pull_request]

jobs: lint: runs-on: ubuntu-latest steps: - uses: actions/checkout@v4 - uses: actions/setup-node@v4 with: node-version: 20 - run: npm ci - run: npm run format:check - run: npm run lint - run: npm run typecheck

Pre-merge checks

.github/workflows/pr-checks.yml

  • name: Check formatting run: | npm run format:check || { echo "Code is not formatted. Run 'npm run format' locally." exit 1 }

Installation Checklist

For every setup, provide:

Config files (.prettierrc, .eslintrc, .editorconfig, etc.) Ignore files (.prettierignore, .eslintignore) Package scripts (format, lint, format:check, lint:fix) Git hooks (husky/pre-commit) Editor settings (.vscode/settings.json) CI workflow (.github/workflows/lint.yml) Documentation (README section on running lint/format) Best Practices Run formatter last: Prettier should override other formatting rules Extend configs: Use popular presets (Airbnb, Standard, etc.) Ignore generated files: Add build outputs to ignore files Make hooks skippable: Allow git commit --no-verify for emergencies Document process: Add "Code Style" section to CONTRIBUTING.md Test on clean install: Ensure configs work without local editor setup Keep rules minimal: Start strict, relax if needed Common Configurations

See assets/configs/ for ready-to-use config files:

Next.js + TypeScript React + TypeScript Node.js + TypeScript Python FastAPI Python Django Bypass Instructions (Emergencies)

Skip pre-commit hooks

git commit --no-verify

Skip CI checks (not recommended)

git push --no-verify

Document when bypass is acceptable (hotfixes, emergencies only).

返回排行榜