Applying Consistent Formatting Across JavaScript Files

Implement tools and practices that ensure consistent code formatting across all JavaScript files in a project.

0 likes
4 views

Rule Content

{
  "title": "Applying Consistent Formatting Across JavaScript Files",
  "description": "Implement tools and practices that ensure consistent code formatting across all JavaScript files in a project.",
  "category": "JavaScript Cursor Rules",
  "rules": [
    {
      "name": "Enforce Code Formatting with Prettier",
      "description": "Integrate Prettier into the development workflow to automatically format JavaScript code according to a consistent style guide.",
      "implementation": [
        "Install Prettier as a development dependency: `npm install --save-dev prettier`.",
        "Create a `.prettierrc` configuration file in the project root with the desired formatting rules.",
        "Add a format script to `package.json`: `{ \"scripts\": { \"format\": \"prettier --write .\" } }`.",
        "Run `npm run format` to apply consistent formatting across all JavaScript files."
      ]
    },
    {
      "name": "Configure ESLint for Linting and Formatting",
      "description": "Set up ESLint to enforce coding standards and integrate it with Prettier to handle code formatting.",
      "implementation": [
        "Install ESLint and the Prettier plugin: `npm install --save-dev eslint eslint-plugin-prettier`.",
        "Create an `.eslintrc.js` configuration file with the following content:",
        "{",
        "  \"extends\": [\"eslint:recommended\", \"plugin:prettier/recommended\"],",
        "  \"rules\": {",
        "    \"prettier/prettier\": \"error\"",
        "  }",
        "}",
        "Add a lint script to `package.json`: `{ \"scripts\": { \"lint\": \"eslint .\" } }`.",
        "Run `npm run lint` to check for code style issues."
      ]
    },
    {
      "name": "Use EditorConfig for Editor Consistency",
      "description": "Implement an `.editorconfig` file to maintain consistent coding styles between different editors and IDEs.",
      "implementation": [
        "Create an `.editorconfig` file in the project root with the following content:",
        "[*.js]",
        "indent_style = space",
        "indent_size = 2",
        "end_of_line = lf",
        "charset = utf-8",
        "trim_trailing_whitespace = true",
        "insert_final_newline = true"
      ]
    },
    {
      "name": "Adopt a Standard JavaScript Style Guide",
      "description": "Follow a recognized JavaScript style guide, such as the Airbnb JavaScript Style Guide, to ensure code consistency.",
      "implementation": [
        "Install the Airbnb ESLint configuration: `npx install-peerdeps --dev eslint-config-airbnb`.",
        "Update the `.eslintrc.js` file to extend the Airbnb configuration:",
        "{",
        "  \"extends\": [\"airbnb\", \"plugin:prettier/recommended\"],",
        "  \"rules\": {",
        "    \"prettier/prettier\": \"error\"",
        "  }",
        "}"
      ]
    },
    {
      "name": "Implement Git Hooks for Automated Formatting",
      "description": "Use Husky and lint-staged to automatically format code before commits.",
      "implementation": [
        "Install Husky and lint-staged: `npm install --save-dev husky lint-staged`.",
        "Add the following configuration to `package.json`:",
        "{",
        "  \"husky\": {",
        "    \"hooks\": {",
        "      \"pre-commit\": \"lint-staged\"",
        "    }",
        "  },",
        "  \"lint-staged\": {",
        "    \"*.js\": [",
        "      \"prettier --write\",",
        "      \"eslint --fix\"",
        "    ]",
        "  }",
        "}"
      ]
    }
  ]
}