{"id":19750,"library":"eslint-plugin-ext","title":"eslint-plugin-ext","description":"eslint-plugin-ext is an ESLint plugin (version 0.1.0) that provides additional lint rules, starting with 'lines-between-object-properties' which enforces blank lines between object properties, based on eslint's built-in 'lines-between-class-members'. The rule allows standard options plus an extra 'exceptBetweenSingleLines' option. The package is minimal and likely low maintenance; it is not part of a broader ecosystem and has no recent updates. It differentiates by offering a specific rule for object literals that is missing from core ESLint.","status":"active","version":"0.1.0","language":"javascript","source_language":"en","source_url":"https://github.com/jiangfengming/eslint-plugin-ext","tags":["javascript","eslint","eslintplugin"],"install":[{"cmd":"npm install eslint-plugin-ext","lang":"bash","label":"npm"},{"cmd":"yarn add eslint-plugin-ext","lang":"bash","label":"yarn"},{"cmd":"pnpm add eslint-plugin-ext","lang":"bash","label":"pnpm"}],"dependencies":[],"imports":[{"note":"ESLint plugin naming convention: omit the 'eslint-plugin-' prefix. This is required for ESLint to resolve the plugin.","wrong":"plugins: ['eslint-plugin-ext']","symbol":"eslint-plugin-ext (plugin)","correct":"plugins: ['ext']"},{"note":"Rules must be namespaced with the plugin name (ext/). Missing the namespace is the most common mistake.","wrong":"\"lines-between-object-properties\": \"error\"","symbol":"lines-between-object-properties rule","correct":"\"ext/lines-between-object-properties\": [\"error\", \"always\", { \"exceptBetweenSingleLines\": true }]"},{"note":"Common mistake: using full package name in plugins array and not prefixing the rule with 'ext/'.","wrong":"{\n  \"plugins\": [\"eslint-plugin-ext\"],\n  \"rules\": {\n    \"lines-between-object-properties\": \"error\"\n  }\n}","symbol":"ESLint config (JSON)","correct":"{\n  \"plugins\": [\"ext\"],\n  \"rules\": {\n    \"ext/lines-between-object-properties\": [\"error\", \"always\"]\n  }\n}"}],"quickstart":{"code":"// .eslintrc.json\n{\n  \"plugins\": [\"ext\"],\n  \"rules\": {\n    \"ext/lines-between-object-properties\": [\"error\", \"always\", { \"exceptBetweenSingleLines\": true }]\n  }\n}\n\n// Example object (bad): no blank lines between properties\nexport const bad = {\n  a: 1,\n  b: 2,\n  c() {}\n}\n\n// Example object (good): blank lines between logical groups\nexport const good = {\n  a: 1,\n  b: 2,\n\n  c() {}\n}","lang":"javascript","description":"Shows how to configure the plugin in .eslintrc.json and demonstrates the rule behavior with bad/good object examples."},"warnings":[{"fix":"Add 'plugins: [\"ext\"]' to your ESLint configuration.","message":"Plugin must be configured in ESLint's 'plugins' array, not 'extends' or 'rules' directly.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Use 'ext/lines-between-object-properties' as the rule key.","message":"Rule name must be prefixed with 'ext/'. Using just 'lines-between-object-properties' will not work.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Ensure this option is only used with this plugin's rule.","message":"The 'exceptBetweenSingleLines' option is specific to this plugin and not available in ESLint core.","severity":"gotcha","affected_versions":">=0.0.0"},{"fix":"Use legacy .eslintrc format or check plugin documentation for flat config support.","message":"ESLint flat config (eslint.config.js) does not support the legacy 'plugins' array format. This plugin may not be compatible with flat config.","severity":"deprecated","affected_versions":"0.1.0"}],"env_vars":null,"search_vec":"'0.1.0':14 'addit':17 'allow':48 'base':34 'blank':29 'broader':70 'built':39 'built-in':38 'class':44 'core':91 'differenti':78 'ecosystem':71 'enforc':28 'eslint':2,6,11,36,92,94 'eslint-plugin-ext':1,5 'eslintplugin':95 'exceptbetweensinglelin':54 'ext':4,8 'extra':53 'javascript':93 'like':61 'line':23,30,42 'lines-between-class-memb':41 'lines-between-object-properti':22 'lint':18 'liter':86 'low':62 'mainten':63 'member':45 'minim':59 'miss':89 'object':25,32,85 'offer':80 'option':50,55 'packag':57 'part':67 'plugin':3,7,12 'plus':51 'properti':26,33 'provid':16 'recent':75 'rule':19,47,83 'specif':82 'standard':49 'start':20 'updat':76 'version':13","created_at":"2026-04-25T11:19:27.003412+00:00","updated_at":"2026-04-25T11:19:27.003412+00:00","problems":[{"fix":"Run 'npm install eslint-plugin-ext --save-dev' and ensure 'plugins' array uses 'ext' (without prefix).","cause":"Package not installed, or wrong plugin name in ESLint config.","error":"Error: Failed to load plugin 'ext' declared in '.eslintrc.json': Cannot find module 'eslint-plugin-ext'"},{"fix":"Use 'exceptBetweenSingleLines' (note: 'single' not 'single'). Option must be inside an object as third element of the array.","cause":"The option was misspelled or placed at wrong level.","error":"Configuration for rule 'ext/lines-between-object-properties' is invalid: Unknown option 'exceptBetweenSingleLines'"},{"fix":"Change 'plugins' to [\"ext\"] (omit 'eslint-plugin-' prefix).","cause":"Using full package name in plugins array.","error":"ESLint couldn't find the plugin 'eslint-plugin-ext' in the configuration."}],"ecosystem":"npm","meta_description":null,"install_score":null,"quickstart_score":null,"quickstart_tag":null,"pypi_latest":null,"cli_name":"","cli_version":null,"type":"library","homepage":null,"github":"https://github.com/jiangfengming/eslint-plugin-ext","docs":null,"changelog":null,"pypi":null,"npm":"https://www.npmjs.com/package/eslint-plugin-ext","openapi_spec":null,"status_page":null,"smithery":null,"categories":["testing"],"base_url":null,"auth_type":null,"provenance":{"verified_status":null,"verified_at":null,"last_verified":"2026-06-17","next_check":"2026-07-24","install_tag":null}}