eslint-plugin-code-style 1.5.2 → 1.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +879 -168
- package/README.md +38 -6
- package/index.d.ts +2 -0
- package/index.js +271 -60
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -1,68 +1,146 @@
|
|
|
1
1
|
# Changelog
|
|
2
2
|
|
|
3
|
-
All notable
|
|
3
|
+
All notable changes to this project are documented in this file.
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/),
|
|
6
|
+
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
|
+
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
## [1.6.1] - 2026-02-01
|
|
11
|
+
|
|
12
|
+
### Enhanced
|
|
13
|
+
|
|
14
|
+
- **`function-params-per-line`** - Handle callbacks with mixed params (destructured + simple like `({ item }, index)`)
|
|
15
|
+
- **`array-callback-destructure`** - Fix closing brace on same line as last property
|
|
16
|
+
- **`simple-call-single-line`** - Skip callbacks with 2+ params to avoid conflicts
|
|
17
|
+
- **`jsx-simple-element-one-line`** - Treat simple function calls (0-1 args) as simple expressions
|
|
18
|
+
- **`jsx-children-on-new-line`** - Treat simple function calls (0-1 args) as simple expressions
|
|
19
|
+
- **`jsx-element-child-new-line`** - Treat simple function calls (0-1 args) as simple expressions
|
|
20
|
+
|
|
21
|
+
### Docs
|
|
22
|
+
|
|
23
|
+
- Clarify version bump and tag workflow in AGENTS.md
|
|
24
|
+
|
|
25
|
+
---
|
|
26
|
+
|
|
27
|
+
## [1.6.0] - 2026-02-01
|
|
28
|
+
|
|
29
|
+
**New array-callback-destructure Rule & Multiple Enhancements**
|
|
30
|
+
|
|
31
|
+
**Version Range:** v1.5.1 → v1.6.0
|
|
32
|
+
|
|
33
|
+
### Added
|
|
34
|
+
|
|
35
|
+
**New Rules (1)**
|
|
36
|
+
- `array-callback-destructure` - Enforce multiline destructuring in array method callbacks (map, filter, find, etc.) when there are 2+ properties 🔧
|
|
37
|
+
|
|
38
|
+
### Enhanced
|
|
39
|
+
|
|
40
|
+
- **`function-naming-convention`** - Added "forgot" to verb prefixes list
|
|
41
|
+
- **`arrow-function-simplify`** - Extended to handle non-JSX expression statements (simple side-effect functions)
|
|
42
|
+
|
|
43
|
+
### Changed
|
|
44
|
+
|
|
45
|
+
- **`no-plusplus`** - Changed from "error" to "off" in all config files
|
|
46
|
+
|
|
47
|
+
### Stats
|
|
48
|
+
|
|
49
|
+
- Total Rules: 66 (was 65)
|
|
50
|
+
- Auto-fixable: 60 rules 🔧
|
|
51
|
+
- Report-only: 6 rules
|
|
52
|
+
|
|
53
|
+
**Full Changelog:** [v1.5.1...v1.6.0](https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.5.1...v1.6.0)
|
|
54
|
+
|
|
55
|
+
---
|
|
56
|
+
|
|
57
|
+
## [1.5.2] - 2026-02-01
|
|
58
|
+
|
|
59
|
+
- Version bump
|
|
60
|
+
|
|
61
|
+
---
|
|
62
|
+
|
|
63
|
+
## [1.5.1] - 2026-01-30
|
|
64
|
+
|
|
65
|
+
- Minor fixes
|
|
6
66
|
|
|
7
67
|
---
|
|
8
68
|
|
|
9
69
|
## [1.5.0] - 2026-01-30
|
|
10
70
|
|
|
11
|
-
**
|
|
71
|
+
**New if-else-spacing Rule & Enhanced Arrow/Class Method Support**
|
|
12
72
|
|
|
13
73
|
**Version Range:** v1.4.3 → v1.5.0
|
|
14
74
|
|
|
15
75
|
### Added
|
|
16
76
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
- Prevents empty lines between single-line if and else
|
|
77
|
+
**New Rules (1)**
|
|
78
|
+
- `if-else-spacing` - Enforce proper spacing between if statements 🔧
|
|
20
79
|
|
|
21
80
|
### Enhanced
|
|
22
81
|
|
|
23
|
-
- **`function-naming-convention`** - Now checks class methods for Handler suffix (skips constructors, getters, setters,
|
|
24
|
-
- **`arrow-function-simplify`** - Extended to handle ALL arrow functions with single return (not just JSX attributes)
|
|
82
|
+
- **`function-naming-convention`** - Now checks class methods for Handler suffix (skips constructors, getters, setters, React lifecycle)
|
|
83
|
+
- **`arrow-function-simplify`** - Extended to handle ALL arrow functions with single return (not just JSX attributes)
|
|
25
84
|
|
|
26
85
|
### Fixed
|
|
27
86
|
|
|
28
|
-
- **Circular fix conflict** between `opening-brackets-same-line` and `function-arguments-format` for multi-argument arrow function calls
|
|
87
|
+
- **Circular fix conflict** between `opening-brackets-same-line` and `function-arguments-format` for multi-argument arrow function calls
|
|
88
|
+
|
|
89
|
+
### Stats
|
|
90
|
+
|
|
91
|
+
- Total Rules: 65 (was 64)
|
|
92
|
+
- Auto-fixable: 59 rules 🔧
|
|
93
|
+
- Report-only: 6 rules
|
|
94
|
+
|
|
95
|
+
**Full Changelog:** [v1.4.3...v1.5.0](https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.4.3...v1.5.0)
|
|
96
|
+
|
|
97
|
+
---
|
|
98
|
+
|
|
99
|
+
## [1.4.5] - 2026-01-30
|
|
29
100
|
|
|
30
|
-
|
|
101
|
+
- Version bump
|
|
102
|
+
|
|
103
|
+
---
|
|
104
|
+
|
|
105
|
+
## [1.4.3] - 2026-01-30
|
|
106
|
+
|
|
107
|
+
### Documentation
|
|
108
|
+
|
|
109
|
+
- Add CHANGELOG for v1.4.0 release
|
|
31
110
|
|
|
32
111
|
---
|
|
33
112
|
|
|
34
113
|
## [1.4.2] - 2026-01-30
|
|
35
114
|
|
|
36
|
-
**
|
|
115
|
+
**New Rules, Enhanced Auto-Fix & Comprehensive Documentation**
|
|
37
116
|
|
|
38
117
|
**Version Range:** v1.3.1 → v1.4.2
|
|
39
118
|
|
|
40
119
|
### Added
|
|
41
120
|
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
121
|
+
**New Rules (3)**
|
|
122
|
+
- `index-exports-only` - Prevent type/interface definitions in index files (move to types file)
|
|
123
|
+
- `ternary-condition-multiline` - Format complex ternary conditions with each operand on its own line 🔧 ⚙️
|
|
124
|
+
- `no-inline-type-definitions` - Extract inline union types to named types in type files ⚙️
|
|
46
125
|
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
- Clear distinction: 58 auto-fixable rules, 6 report-only rules
|
|
126
|
+
**Auto-Fix Labels in Documentation**
|
|
127
|
+
- Added 🔧 label to indicate auto-fixable rules
|
|
128
|
+
- Added legend explaining 🔧 (auto-fixable) and ⚙️ (customizable) labels
|
|
51
129
|
|
|
52
130
|
### Enhanced
|
|
53
131
|
|
|
54
|
-
-
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
-
|
|
58
|
-
-
|
|
132
|
+
- **`function-naming-convention`** - Expanded verb list from ~50 to ~200+ verbs organized by category
|
|
133
|
+
- **`function-object-destructure`** - Added auto-fix: inserts destructuring at function body top
|
|
134
|
+
- **`component-props-destructure`** - Added auto-fix: converts `(props)` to `({ prop1, prop2 })` 🔧
|
|
135
|
+
- **`react-code-order`** - Added auto-fix for reordering code blocks in components/hooks
|
|
136
|
+
- **`variable-naming-convention`** - Added auto-fix for renaming variables to camelCase
|
|
59
137
|
|
|
60
138
|
### Fixed
|
|
61
139
|
|
|
62
|
-
-
|
|
63
|
-
-
|
|
64
|
-
-
|
|
65
|
-
-
|
|
140
|
+
- **`multiline-if-conditions`** - Fix indentation calculation for nested code
|
|
141
|
+
- **`classname-multiline`** - Fix template literal indentation for inline JSX attributes
|
|
142
|
+
- **`function-naming-convention`** - Skip React components (PascalCase + returns JSX)
|
|
143
|
+
- **`variable-naming-convention`** - Skip PascalCase arguments (component references)
|
|
66
144
|
- Add "poll" as recognized verb prefix in function-naming-convention
|
|
67
145
|
|
|
68
146
|
### Documentation
|
|
@@ -73,7 +151,6 @@ Format follows [Keep a Changelog](https://keepachangelog.com/) principles.
|
|
|
73
151
|
|
|
74
152
|
### Report-Only Rules (6)
|
|
75
153
|
|
|
76
|
-
These rules cannot be auto-fixed because they require file creation, movement, or cross-file changes:
|
|
77
154
|
- `absolute-imports-only` - Requires knowledge of project structure
|
|
78
155
|
- `index-exports-only` - Requires moving code to new files
|
|
79
156
|
- `jsx-prop-naming-convention` - Requires cross-file prop renaming
|
|
@@ -87,40 +164,187 @@ These rules cannot be auto-fixed because they require file creation, movement, o
|
|
|
87
164
|
- Auto-fixable: 58 rules 🔧
|
|
88
165
|
- Report-only: 6 rules
|
|
89
166
|
|
|
90
|
-
**Full Changelog:** https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.3.1...v1.4.2
|
|
167
|
+
**Full Changelog:** [v1.3.1...v1.4.2](https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.3.1...v1.4.2)
|
|
168
|
+
|
|
169
|
+
---
|
|
170
|
+
|
|
171
|
+
## [1.4.1] - 2026-01-30
|
|
172
|
+
|
|
173
|
+
### Documentation
|
|
174
|
+
|
|
175
|
+
- Add 🔧 label to indicate auto-fixable rules (57 of 64)
|
|
176
|
+
- 7 rules are report-only (require manual changes)
|
|
177
|
+
- Add legend explaining 🔧 (auto-fixable) and ⚙️ (customizable) labels
|
|
178
|
+
- Add new rules to Rules Categories table
|
|
179
|
+
|
|
180
|
+
---
|
|
181
|
+
|
|
182
|
+
## [1.4.0] - 2026-01-30
|
|
183
|
+
|
|
184
|
+
### Added
|
|
185
|
+
|
|
186
|
+
- New rule: `index-exports-only` - Prevent type/interface definitions in index files
|
|
187
|
+
- New rule: `ternary-condition-multiline` - Format complex ternary conditions
|
|
188
|
+
- New rule: `no-inline-type-definitions` - Extract inline union types to type files
|
|
189
|
+
|
|
190
|
+
### Enhanced
|
|
191
|
+
|
|
192
|
+
- `function-naming-convention` - Expanded verb list from ~50 to ~200+ verbs
|
|
193
|
+
- `function-object-destructure` - Added auto-fix for parameter dot notation
|
|
194
|
+
|
|
195
|
+
### Fixed
|
|
196
|
+
|
|
197
|
+
- `multiline-if-conditions` - Fix indentation calculation for nested code
|
|
198
|
+
- `classname-multiline` - Fix template literal indentation for inline attributes
|
|
199
|
+
|
|
200
|
+
### Stats
|
|
201
|
+
|
|
202
|
+
- Total Rules: 64 (was 61)
|
|
203
|
+
|
|
204
|
+
---
|
|
205
|
+
|
|
206
|
+
## [1.3.11] - 2026-01-30
|
|
207
|
+
|
|
208
|
+
### Enhanced
|
|
209
|
+
|
|
210
|
+
- Dependency-aware ordering: statements using variables must come after their declarations
|
|
211
|
+
- Auto-fix for module-level constants: moves camelCase constants inside component
|
|
212
|
+
- Auto-fix respects dependencies: initialResult declared before useRef(initialResult)
|
|
213
|
+
- SCREAMING_CASE constants allowed at module level
|
|
214
|
+
|
|
215
|
+
---
|
|
216
|
+
|
|
217
|
+
## [1.3.10] - 2026-01-30
|
|
218
|
+
|
|
219
|
+
### Fixed
|
|
220
|
+
|
|
221
|
+
- `function-naming-convention` - Skip React components (PascalCase + returns JSX)
|
|
222
|
+
- Prevents renaming components like Login to loginHandler
|
|
223
|
+
|
|
224
|
+
---
|
|
225
|
+
|
|
226
|
+
## [1.3.9] - 2026-01-29
|
|
227
|
+
|
|
228
|
+
### Enhanced
|
|
229
|
+
|
|
230
|
+
- `react-code-order` - Add auto-fix
|
|
231
|
+
- Auto-fix preserves control flow statements (if, for, while) in their relative positions
|
|
232
|
+
|
|
233
|
+
---
|
|
234
|
+
|
|
235
|
+
## [1.3.8] - 2026-01-29
|
|
236
|
+
|
|
237
|
+
### Fixed
|
|
238
|
+
|
|
239
|
+
- `variable-naming-convention` - Skip PascalCase arguments (handled by function-naming-convention)
|
|
240
|
+
- Avoids duplicate errors between the two rules
|
|
241
|
+
- Auto-fix correctly updates all references including arguments passed to functions
|
|
242
|
+
|
|
243
|
+
---
|
|
244
|
+
|
|
245
|
+
## [1.3.7] - 2026-01-29
|
|
246
|
+
|
|
247
|
+
### Enhanced
|
|
248
|
+
|
|
249
|
+
- `function-naming-convention` - Enforce camelCase for functions with verb prefixes (GetForStatus → getForStatus)
|
|
250
|
+
- Auto-fix converts PascalCase functions to camelCase and updates all references
|
|
251
|
+
- React components (PascalCase without verb prefix) still correctly skipped
|
|
252
|
+
|
|
253
|
+
---
|
|
254
|
+
|
|
255
|
+
## [1.3.6] - 2026-01-29
|
|
256
|
+
|
|
257
|
+
### Enhanced
|
|
258
|
+
|
|
259
|
+
- `function-naming-convention` - Add "poll" as recognized verb prefix
|
|
260
|
+
- Functions like pollForStatus, pollDataHandler are now valid
|
|
261
|
+
|
|
262
|
+
---
|
|
263
|
+
|
|
264
|
+
## [1.3.5] - 2026-01-28
|
|
265
|
+
|
|
266
|
+
### Enhanced
|
|
267
|
+
|
|
268
|
+
- Improved error messages with examples and helpful context for all rules
|
|
269
|
+
- Tailwind class order shows recommended order (layout → sizing → spacing → typography → colors → effects → states)
|
|
270
|
+
- className multiline shows threshold and format example
|
|
271
|
+
- Import/export format shows single-line example with threshold
|
|
272
|
+
- Object/array formatting shows format examples with thresholds
|
|
273
|
+
- Type/Interface/Enum naming shows suggested corrected name
|
|
274
|
+
- React code order shows full order sequence
|
|
275
|
+
|
|
276
|
+
---
|
|
277
|
+
|
|
278
|
+
## [1.3.4] - 2026-01-28
|
|
279
|
+
|
|
280
|
+
### Enhanced
|
|
281
|
+
|
|
282
|
+
- className rules - Smart detection for objects with Tailwind class values (e.g., variants object)
|
|
283
|
+
- Smart detection for return statements with Tailwind classes
|
|
284
|
+
- Applies to: classname-multiline, classname-no-extra-spaces, classname-order
|
|
285
|
+
- `variable-naming-convention` - Add auto-fix for SCREAMING_SNAKE_CASE and snake_case
|
|
286
|
+
|
|
287
|
+
---
|
|
288
|
+
|
|
289
|
+
## [1.3.3] - 2026-01-28
|
|
290
|
+
|
|
291
|
+
### Fixed
|
|
292
|
+
|
|
293
|
+
- `function-naming-convention` - Fix overlapping fixes error in auto-fix
|
|
294
|
+
- Track fixed ranges to prevent duplicate fixes on same node
|
|
295
|
+
|
|
296
|
+
---
|
|
297
|
+
|
|
298
|
+
## [1.3.2] - 2026-01-28
|
|
299
|
+
|
|
300
|
+
### Documentation
|
|
301
|
+
|
|
302
|
+
- Add Full Changelog links to all releases in CHANGELOG.md
|
|
303
|
+
- Enhance release 1.1.0 with full feature details
|
|
304
|
+
- Enhance release 1.0.14 with full feature details
|
|
305
|
+
- Add Full Changelog link instructions to AGENTS.md
|
|
306
|
+
|
|
307
|
+
---
|
|
308
|
+
|
|
309
|
+
## [1.3.1] - 2026-01-28
|
|
310
|
+
|
|
311
|
+
### Documentation
|
|
312
|
+
|
|
313
|
+
- Add CHANGELOG.md with full release history
|
|
314
|
+
- Add GitHub Releases guidelines to AGENTS.md
|
|
91
315
|
|
|
92
316
|
---
|
|
93
317
|
|
|
94
318
|
## [1.3.0] - 2026-01-28
|
|
95
319
|
|
|
96
|
-
**
|
|
320
|
+
**New Rules, Auto-Fix Enhancements & Agent Skills Integration**
|
|
97
321
|
|
|
98
322
|
**Version Range:** v1.2.1 → v1.3.0
|
|
99
323
|
|
|
100
324
|
### Added
|
|
101
325
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
326
|
+
**New Rules (2)**
|
|
327
|
+
- `classname-multiline` - Enforce multiline className formatting with string/template literal format 🔧
|
|
328
|
+
- `function-declaration-style` - Auto-fix function declarations to arrow expressions 🔧
|
|
105
329
|
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
330
|
+
**Agent Skills** - Added Agent Skills open standard support
|
|
331
|
+
- `test-rule` - Test an ESLint rule after creating or modifying it
|
|
332
|
+
- `validate-types` - Verify TypeScript definitions match rules in index.js
|
|
333
|
+
- `review-config` - Review recommended ESLint configurations
|
|
334
|
+
- `audit-docs` - Verify documentation accuracy across all files
|
|
335
|
+
- Compatible with Claude Code, Cursor, VS Code, GitHub Copilot, Gemini CLI, and more
|
|
112
336
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
337
|
+
**TypeScript Support**
|
|
338
|
+
- Added `index.d.ts` with full type definitions for IDE autocomplete
|
|
339
|
+
- All 61 rule names available as TypeScript literal types
|
|
116
340
|
|
|
117
341
|
### Enhanced
|
|
118
342
|
|
|
119
|
-
-
|
|
120
|
-
-
|
|
121
|
-
-
|
|
122
|
-
-
|
|
123
|
-
-
|
|
343
|
+
- **`variable-naming-convention`** - Enforce camelCase for all variables including constants
|
|
344
|
+
- **`function-object-destructure`** - Add auto-fix for arrow expression body callbacks
|
|
345
|
+
- **`simple-call-single-line`** - Extend to collapse callbacks with params, handle optional chaining
|
|
346
|
+
- **`function-naming-convention`** - Add auto-fix for missing Handler suffix
|
|
347
|
+
- **`absolute-imports-only`** - Allow relative imports in entry files (main.tsx/main.ts), add pages folder
|
|
124
348
|
|
|
125
349
|
### Fixed
|
|
126
350
|
|
|
@@ -138,217 +362,593 @@ These rules cannot be auto-fixed because they require file creation, movement, o
|
|
|
138
362
|
- Total Rules: 61 (was 56)
|
|
139
363
|
- All rules are auto-fixable with `eslint --fix`
|
|
140
364
|
|
|
141
|
-
**Full Changelog:** https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.2.1...v1.3.0
|
|
365
|
+
**Full Changelog:** [v1.2.1...v1.3.0](https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.2.1...v1.3.0)
|
|
142
366
|
|
|
143
367
|
---
|
|
144
368
|
|
|
145
|
-
## [1.2.
|
|
369
|
+
## [1.2.9] - 2026-01-28
|
|
370
|
+
|
|
371
|
+
### Documentation
|
|
372
|
+
|
|
373
|
+
- Reorganize AGENTS.md and CLAUDE.md content
|
|
374
|
+
- Add git workflow and versioning guidelines to AGENTS.md
|
|
375
|
+
- Add commit approval workflow to CLAUDE.md
|
|
376
|
+
- Require explicit approval for push and publish steps
|
|
377
|
+
|
|
378
|
+
---
|
|
379
|
+
|
|
380
|
+
## [1.2.8] - 2026-01-28
|
|
381
|
+
|
|
382
|
+
### Added
|
|
383
|
+
|
|
384
|
+
- New rule: `function-declaration-style` - Auto-fix function declarations to arrow expressions
|
|
385
|
+
|
|
386
|
+
### Enhanced
|
|
387
|
+
|
|
388
|
+
- `function-naming-convention` - Add auto-fix for missing Handler suffix
|
|
389
|
+
- `absolute-imports-only` - Allow relative imports in entry files (main.tsx/main.ts)
|
|
390
|
+
- `absolute-imports-only` - Add pages folder to default allowed folders
|
|
391
|
+
- `module-index-exports` - Add pages folder to default module and lazy load folders
|
|
392
|
+
|
|
393
|
+
### Documentation
|
|
394
|
+
|
|
395
|
+
- Update rule count to 61 across all docs
|
|
396
|
+
- Add function-declaration-style docs with func-style pairing note
|
|
397
|
+
- Change Tailwind CSS badge to >=3.0.0
|
|
398
|
+
|
|
399
|
+
### Stats
|
|
400
|
+
|
|
401
|
+
- Total Rules: 61
|
|
402
|
+
|
|
403
|
+
---
|
|
404
|
+
|
|
405
|
+
## [1.2.7] - 2026-01-27
|
|
406
|
+
|
|
407
|
+
- Minor fixes
|
|
408
|
+
|
|
409
|
+
---
|
|
410
|
+
|
|
411
|
+
## [1.2.6] - 2026-01-27
|
|
412
|
+
|
|
413
|
+
- Minor fixes
|
|
414
|
+
|
|
415
|
+
---
|
|
416
|
+
|
|
417
|
+
## [1.2.5] - 2026-01-27
|
|
418
|
+
|
|
419
|
+
### Documentation
|
|
146
420
|
|
|
147
|
-
|
|
421
|
+
- Update badges and requirements for Node.js 20, TypeScript 5, Tailwind CSS 4
|
|
422
|
+
|
|
423
|
+
---
|
|
424
|
+
|
|
425
|
+
## [1.2.4] - 2026-01-27
|
|
426
|
+
|
|
427
|
+
### Fixed
|
|
428
|
+
|
|
429
|
+
- Sync eslint configs and add semi-style rule
|
|
430
|
+
- Add missing `component-props-destructure` rule to react config and recommended react config
|
|
431
|
+
- Add @stylistic/semi-style rule to all configs to enforce semicolons at end of line
|
|
432
|
+
|
|
433
|
+
---
|
|
434
|
+
|
|
435
|
+
## [1.2.3] - 2026-01-27
|
|
436
|
+
|
|
437
|
+
### Fixed
|
|
438
|
+
|
|
439
|
+
- `simple-call-single-line` - Remove space before ?. when collapsing simple calls to single line
|
|
440
|
+
|
|
441
|
+
---
|
|
442
|
+
|
|
443
|
+
## [1.2.2] - 2026-01-27
|
|
444
|
+
|
|
445
|
+
### Enhanced
|
|
446
|
+
|
|
447
|
+
- `variable-naming-convention` - Enforce camelCase for all variables including constants (no more SCREAMING_SNAKE_CASE)
|
|
448
|
+
- `function-object-destructure` - Add auto-fix for arrow expression body callbacks
|
|
449
|
+
- `simple-call-single-line` - Extend to collapse callbacks with params and simple expression bodies, handle optional chaining
|
|
450
|
+
|
|
451
|
+
---
|
|
452
|
+
|
|
453
|
+
## [1.2.1] - 2026-01-27
|
|
454
|
+
|
|
455
|
+
### Added
|
|
456
|
+
|
|
457
|
+
- New rule: `classname-multiline` - Enforce multiline className formatting when class count > 3 or length > 80
|
|
458
|
+
|
|
459
|
+
### Enhanced
|
|
460
|
+
|
|
461
|
+
- JSX className with no expressions uses "..." string literal format
|
|
462
|
+
- JSX className with expressions uses {`...`} template literal format
|
|
463
|
+
- Variables/object properties use `...` template literal for multiline
|
|
464
|
+
- Updated `classname-no-extra-spaces` and `jsx-string-value-trim` to skip multiline format
|
|
465
|
+
- Upgraded test project to Tailwind CSS v4 with eslint-plugin-tailwindcss@beta
|
|
466
|
+
|
|
467
|
+
---
|
|
468
|
+
|
|
469
|
+
## [1.2.0] - 2026-01-25
|
|
470
|
+
|
|
471
|
+
**React Code Order & TypeScript Enhancement Rules**
|
|
148
472
|
|
|
149
473
|
**Version Range:** v1.1.10 → v1.2.0
|
|
150
474
|
|
|
151
475
|
### Added
|
|
152
476
|
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
### React Code Order (15 Categories)
|
|
161
|
-
|
|
162
|
-
The `react-code-order` rule enforces a logical dependency chain:
|
|
163
|
-
|
|
164
|
-
1. Props destructure (parameter level)
|
|
165
|
-
2. Props destructure in body
|
|
166
|
-
3. `useRef`
|
|
167
|
-
4. `useState`
|
|
168
|
-
5. `useReducer`
|
|
169
|
-
6. Redux hooks
|
|
170
|
-
7. Router hooks
|
|
171
|
-
8. Context hooks
|
|
172
|
-
9. Custom hooks
|
|
173
|
-
10. Derived state
|
|
174
|
-
11. `useMemo`
|
|
175
|
-
12. `useCallback`
|
|
176
|
-
13. Handlers
|
|
177
|
-
14. `useEffect`
|
|
178
|
-
15. Return statement
|
|
179
|
-
|
|
180
|
-
### TypeScript Improvements
|
|
181
|
-
|
|
182
|
-
- `type-annotation-spacing` - No space before colon/generic/array brackets, one space after colon
|
|
183
|
-
- Better support for inline type literals in component props
|
|
477
|
+
**New Rules (5)**
|
|
478
|
+
- `component-props-destructure` - Enforce props destructuring in React components
|
|
479
|
+
- `component-props-inline-type` - Enforce inline type annotations for component props
|
|
480
|
+
- `function-object-destructure` - Enforce typed params with body destructuring
|
|
481
|
+
- `react-code-order` - Enforce consistent ordering of hooks and code blocks
|
|
482
|
+
- `type-annotation-spacing` - Enforce proper spacing in TypeScript type annotations
|
|
184
483
|
|
|
185
484
|
### Stats
|
|
186
485
|
|
|
187
486
|
- Total Rules: 56 (was 51)
|
|
188
|
-
- All rules are auto-fixable with `eslint --fix`
|
|
189
487
|
|
|
190
|
-
**Full Changelog:** https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.1.10...v1.2.0
|
|
488
|
+
**Full Changelog:** [v1.1.10...v1.2.0](https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.1.10...v1.2.0)
|
|
191
489
|
|
|
192
490
|
---
|
|
193
491
|
|
|
194
|
-
## [1.1.
|
|
492
|
+
## [1.1.10] - 2026-01-20
|
|
195
493
|
|
|
196
|
-
|
|
494
|
+
- Minor fixes
|
|
197
495
|
|
|
198
|
-
|
|
496
|
+
---
|
|
199
497
|
|
|
200
|
-
|
|
498
|
+
## [1.1.9] - 2026-01-20
|
|
499
|
+
|
|
500
|
+
### Changed
|
|
501
|
+
|
|
502
|
+
- Sync default folders between absolute-imports-only and module-index-exports (27 folders)
|
|
503
|
+
- Reorganize rules export object with alphabetically ordered categories
|
|
504
|
+
|
|
505
|
+
---
|
|
506
|
+
|
|
507
|
+
## [1.1.8] - 2026-01-20
|
|
201
508
|
|
|
202
|
-
|
|
203
|
-
- `react-ts-tw` - Recommended ESLint config for TS + Tailwind projects (`recommended-configs/react-ts-tw/`)
|
|
204
|
-
- Includes TypeScript parser, TypeScript ESLint plugin, and Tailwind CSS plugin
|
|
205
|
-
- Perfectionist rules for sorting interfaces, enums, and object types
|
|
206
|
-
- Full documentation with installation instructions
|
|
509
|
+
### Added
|
|
207
510
|
|
|
208
|
-
-
|
|
209
|
-
- `index-export-style` - Enforce consistent export formatting in index files (shorthand vs import-export style)
|
|
511
|
+
- TypeScript rules test cases in src/interfaces/, src/enums/, src/types/
|
|
210
512
|
|
|
211
|
-
|
|
212
|
-
- `array-items-per-line` - Added `maxItems` option (default: 3)
|
|
213
|
-
- `hook-deps-per-line` - Added `maxDeps` option (default: 2)
|
|
214
|
-
- `multiline-if-conditions` - Added `maxOperands` option (default: 3)
|
|
215
|
-
- `function-arguments-format` - New rule merging `multiline-argument-newline` and `multiple-arguments-per-line`
|
|
513
|
+
---
|
|
216
514
|
|
|
217
|
-
-
|
|
218
|
-
- Added `AGENTS.md` for AI coding agents (Claude Code, Cursor, etc.)
|
|
219
|
-
- Added React test application for validating plugin rules
|
|
220
|
-
- Migration guide to `@stylistic/eslint-plugin` for deprecated formatting rules
|
|
515
|
+
## [1.1.7] - 2026-01-20
|
|
221
516
|
|
|
222
517
|
### Changed
|
|
223
518
|
|
|
224
|
-
-
|
|
225
|
-
-
|
|
226
|
-
- `object-property-per-line` now handles all object formatting independently
|
|
519
|
+
- Add TypeScript formatting rules to recommended and test configs:
|
|
520
|
+
- enum-format, interface-format, type-format, typescript-definition-location
|
|
227
521
|
|
|
228
|
-
|
|
229
|
-
- `module-index-exports` rule now recognizes `index.ts` and `index.tsx` files
|
|
230
|
-
- Added TypeScript test file patterns (`*.test.ts`, `*.spec.ts`, etc.) to ignore list
|
|
522
|
+
---
|
|
231
523
|
|
|
232
|
-
|
|
524
|
+
## [1.1.6] - 2026-01-20
|
|
525
|
+
|
|
526
|
+
### Added
|
|
527
|
+
|
|
528
|
+
- New rule: `type-format` - Enforce PascalCase with Type suffix, camelCase properties
|
|
233
529
|
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
530
|
+
---
|
|
531
|
+
|
|
532
|
+
## [1.1.5] - 2026-01-20
|
|
533
|
+
|
|
534
|
+
### Added
|
|
535
|
+
|
|
536
|
+
- New rule: `enum-format` - Enforce PascalCase with Enum suffix, UPPER_CASE members
|
|
537
|
+
|
|
538
|
+
---
|
|
539
|
+
|
|
540
|
+
## [1.1.4] - 2026-01-20
|
|
541
|
+
|
|
542
|
+
### Added
|
|
543
|
+
|
|
544
|
+
- New rule: `interface-format` - Enforce PascalCase with Interface suffix, camelCase properties
|
|
545
|
+
|
|
546
|
+
---
|
|
547
|
+
|
|
548
|
+
## [1.1.3] - 2026-01-20
|
|
549
|
+
|
|
550
|
+
### Added
|
|
551
|
+
|
|
552
|
+
- New rule: `typescript-definition-location` - Enforce TypeScript definitions in designated folders
|
|
553
|
+
|
|
554
|
+
---
|
|
555
|
+
|
|
556
|
+
## [1.1.2] - 2026-01-20
|
|
557
|
+
|
|
558
|
+
- Minor fixes
|
|
559
|
+
|
|
560
|
+
---
|
|
561
|
+
|
|
562
|
+
## [1.1.1] - 2026-01-20
|
|
563
|
+
|
|
564
|
+
- Minor fixes
|
|
565
|
+
|
|
566
|
+
---
|
|
567
|
+
|
|
568
|
+
## [1.1.0] - 2026-01-20
|
|
569
|
+
|
|
570
|
+
**TypeScript + Tailwind Support & Configurable Rules**
|
|
571
|
+
|
|
572
|
+
**Version Range:** v1.0.17 → v1.1.0
|
|
573
|
+
|
|
574
|
+
### Added
|
|
575
|
+
|
|
576
|
+
**New Configuration: React + TypeScript + Tailwind** (`react-ts-tw`)
|
|
577
|
+
- TypeScript parser and TypeScript ESLint plugin support
|
|
578
|
+
- Tailwind CSS plugin integration
|
|
579
|
+
- Perfectionist rules for sorting interfaces, enums, and object types
|
|
580
|
+
- Comprehensive test project with TypeScript components
|
|
581
|
+
|
|
582
|
+
**New Rule**
|
|
583
|
+
- `index-export-style` - Enforce consistent export formatting in index files
|
|
584
|
+
|
|
585
|
+
**Configurable Options**
|
|
586
|
+
- `array-items-per-line` - Added `maxItems` option (default: 3)
|
|
587
|
+
- `hook-deps-per-line` - Added `maxDeps` option (default: 2)
|
|
588
|
+
- `multiline-if-conditions` - Added `maxOperands` option (default: 3)
|
|
589
|
+
- `function-arguments-format` - New rule merging multiline argument rules with customizable options
|
|
590
|
+
|
|
591
|
+
**Documentation**
|
|
592
|
+
- Added AGENTS.md for AI coding agents
|
|
593
|
+
|
|
594
|
+
### Changed
|
|
595
|
+
|
|
596
|
+
- `export-format` and `import-format` - Made self-sufficient, added `maxSpecifiers` option
|
|
597
|
+
- `object-property-per-line` - Made self-sufficient, added `minProperties` option
|
|
598
|
+
- `module-index-exports` - Support TypeScript index files
|
|
599
|
+
- Migrated to `@stylistic/eslint-plugin` for formatting rules
|
|
238
600
|
|
|
239
601
|
### Stats
|
|
240
602
|
|
|
241
|
-
- Total Rules: 51 (was
|
|
603
|
+
- Total Rules: 51 (was 45)
|
|
242
604
|
- All changes are backward compatible
|
|
243
|
-
- All rules are auto-fixable with `eslint --fix`
|
|
244
605
|
|
|
245
|
-
**Full Changelog:** https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.17...v1.1.0
|
|
606
|
+
**Full Changelog:** [v1.0.17...v1.1.0](https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.17...v1.1.0)
|
|
246
607
|
|
|
247
608
|
---
|
|
248
609
|
|
|
249
|
-
## [1.0.
|
|
610
|
+
## [1.0.41] - 2026-01-19
|
|
250
611
|
|
|
251
|
-
|
|
612
|
+
- Minor fixes
|
|
252
613
|
|
|
253
|
-
|
|
614
|
+
---
|
|
254
615
|
|
|
255
|
-
|
|
616
|
+
## [1.0.40] - 2026-01-19
|
|
617
|
+
|
|
618
|
+
- Minor fixes
|
|
619
|
+
|
|
620
|
+
---
|
|
621
|
+
|
|
622
|
+
## [1.0.39] - 2026-01-19
|
|
623
|
+
|
|
624
|
+
- Minor fixes
|
|
625
|
+
|
|
626
|
+
---
|
|
627
|
+
|
|
628
|
+
## [1.0.38] - 2026-01-19
|
|
629
|
+
|
|
630
|
+
- Minor fixes
|
|
631
|
+
|
|
632
|
+
---
|
|
633
|
+
|
|
634
|
+
## [1.0.37] - 2026-01-13
|
|
635
|
+
|
|
636
|
+
- Minor fixes
|
|
637
|
+
|
|
638
|
+
---
|
|
639
|
+
|
|
640
|
+
## [1.0.36] - 2026-01-13
|
|
641
|
+
|
|
642
|
+
- Minor fixes
|
|
643
|
+
|
|
644
|
+
---
|
|
645
|
+
|
|
646
|
+
## [1.0.35] - 2026-01-13
|
|
647
|
+
|
|
648
|
+
- Minor fixes
|
|
649
|
+
|
|
650
|
+
---
|
|
651
|
+
|
|
652
|
+
## [1.0.34] - 2026-01-13
|
|
653
|
+
|
|
654
|
+
- Minor fixes
|
|
655
|
+
|
|
656
|
+
---
|
|
657
|
+
|
|
658
|
+
## [1.0.33] - 2026-01-13
|
|
659
|
+
|
|
660
|
+
- Minor fixes
|
|
661
|
+
|
|
662
|
+
---
|
|
663
|
+
|
|
664
|
+
## [1.0.32] - 2026-01-13
|
|
665
|
+
|
|
666
|
+
- Minor fixes
|
|
667
|
+
|
|
668
|
+
---
|
|
669
|
+
|
|
670
|
+
## [1.0.31] - 2026-01-13
|
|
671
|
+
|
|
672
|
+
- Minor fixes
|
|
673
|
+
|
|
674
|
+
---
|
|
675
|
+
|
|
676
|
+
## [1.0.30] - 2026-01-13
|
|
677
|
+
|
|
678
|
+
- Minor fixes
|
|
679
|
+
|
|
680
|
+
---
|
|
681
|
+
|
|
682
|
+
## [1.0.29] - 2026-01-12
|
|
683
|
+
|
|
684
|
+
- Minor fixes
|
|
685
|
+
|
|
686
|
+
---
|
|
687
|
+
|
|
688
|
+
## [1.0.28] - 2026-01-12
|
|
689
|
+
|
|
690
|
+
### Changed
|
|
691
|
+
|
|
692
|
+
- **BREAKING:** Merge `multiline-argument-newline` and `multiple-arguments-per-line` into `function-arguments-format`
|
|
693
|
+
- Add customizable options: minArgs (default: 2), skipHooks (default: true), skipSingleArg (default: true)
|
|
694
|
+
- Remove @stylistic/function-call-argument-newline from recommended config
|
|
695
|
+
|
|
696
|
+
---
|
|
697
|
+
|
|
698
|
+
## [1.0.27] - 2026-01-12
|
|
699
|
+
|
|
700
|
+
### Enhanced
|
|
701
|
+
|
|
702
|
+
- `index-export-style` - Handle export padding for all files
|
|
703
|
+
- Non-index files require blank lines between exports
|
|
704
|
+
- Index files have no blank lines between exports
|
|
705
|
+
|
|
706
|
+
---
|
|
707
|
+
|
|
708
|
+
## [1.0.26] - 2026-01-12
|
|
709
|
+
|
|
710
|
+
### Documentation
|
|
711
|
+
|
|
712
|
+
- Clarify index-export-style and @stylistic relationship
|
|
713
|
+
- @stylistic handles general blank lines (return, variables, expressions)
|
|
714
|
+
- index-export-style handles blank line enforcement in index files
|
|
715
|
+
|
|
716
|
+
---
|
|
717
|
+
|
|
718
|
+
## [1.0.25] - 2026-01-12
|
|
719
|
+
|
|
720
|
+
### Enhanced
|
|
721
|
+
|
|
722
|
+
- `object-property-per-line` - Made self-sufficient
|
|
723
|
+
- Rule now handles complete multiline object formatting
|
|
724
|
+
- Remove dependency on @stylistic/object-curly-newline
|
|
725
|
+
|
|
726
|
+
---
|
|
727
|
+
|
|
728
|
+
## [1.0.24] - 2026-01-12
|
|
729
|
+
|
|
730
|
+
### Enhanced
|
|
731
|
+
|
|
732
|
+
- `export-format` and `import-format` - Made self-sufficient
|
|
733
|
+
- Both now handle collapse (≤ threshold) and expand (> threshold)
|
|
734
|
+
- Remove dependency on @stylistic/object-curly-newline for imports/exports
|
|
735
|
+
|
|
736
|
+
---
|
|
256
737
|
|
|
257
|
-
-
|
|
258
|
-
- `index-export-style` - Enforce consistent export patterns in index files with shorthand or import-export styles
|
|
738
|
+
## [1.0.23] - 2026-01-12
|
|
259
739
|
|
|
260
740
|
### Changed
|
|
261
741
|
|
|
262
|
-
-
|
|
742
|
+
- Migrate to @stylistic/eslint-plugin for formatting rules
|
|
743
|
+
- Replace 24 deprecated ESLint formatting rules with @stylistic equivalents
|
|
744
|
+
|
|
745
|
+
---
|
|
746
|
+
|
|
747
|
+
## [1.0.22] - 2026-01-11
|
|
748
|
+
|
|
749
|
+
### Enhanced
|
|
750
|
+
|
|
751
|
+
- `multiline-if-conditions` - Add maxOperands configuration option (default: 3)
|
|
752
|
+
|
|
753
|
+
---
|
|
754
|
+
|
|
755
|
+
## [1.0.21] - 2026-01-11
|
|
756
|
+
|
|
757
|
+
### Enhanced
|
|
758
|
+
|
|
759
|
+
- `hook-deps-per-line` - Add maxDeps configuration option (default: 2)
|
|
760
|
+
|
|
761
|
+
---
|
|
762
|
+
|
|
763
|
+
## [1.0.20] - 2026-01-11
|
|
764
|
+
|
|
765
|
+
### Enhanced
|
|
766
|
+
|
|
767
|
+
- `array-items-per-line` - Add maxItems configuration option (default: 3)
|
|
768
|
+
|
|
769
|
+
---
|
|
770
|
+
|
|
771
|
+
## [1.0.19] - 2026-01-11
|
|
772
|
+
|
|
773
|
+
- Version bump
|
|
774
|
+
|
|
775
|
+
---
|
|
776
|
+
|
|
777
|
+
## [1.0.18] - 2026-01-11
|
|
778
|
+
|
|
779
|
+
### Enhanced
|
|
780
|
+
|
|
781
|
+
- `import-format` and `export-format` - Add maxSpecifiers option (default: 3)
|
|
782
|
+
- `object-property-per-line` - Add minProperties option (default: 2)
|
|
783
|
+
- Remove eslint-plugin-newline dependency (redundant with object-curly-newline)
|
|
784
|
+
|
|
785
|
+
---
|
|
786
|
+
|
|
787
|
+
## [1.0.17] - 2026-01-11
|
|
788
|
+
|
|
789
|
+
### Documentation
|
|
790
|
+
|
|
791
|
+
- Update rule count from 47 to 48 in all README files
|
|
792
|
+
- Add coverage, public, and .vite to eslint config ignores
|
|
793
|
+
|
|
794
|
+
---
|
|
795
|
+
|
|
796
|
+
## [1.0.16] - 2026-01-09
|
|
797
|
+
|
|
798
|
+
**New Rule: index-export-style**
|
|
799
|
+
|
|
800
|
+
**Version Range:** v1.0.15 → v1.0.16
|
|
801
|
+
|
|
802
|
+
### Added
|
|
803
|
+
|
|
804
|
+
**New Rule**
|
|
805
|
+
- `index-export-style` - Enforce consistent export style in index files 🔧
|
|
806
|
+
- Support two styles: 'shorthand' (default) and 'import-export'
|
|
807
|
+
- Shorthand: `export { a } from './file';`
|
|
808
|
+
- Import-export: `import { a } from './file'; export { a };`
|
|
809
|
+
- Auto-fixable with eslint --fix
|
|
810
|
+
- Detects and reports mixed export styles
|
|
263
811
|
|
|
264
812
|
### Stats
|
|
265
813
|
|
|
266
814
|
- Total Rules: 48 (was 47)
|
|
267
|
-
- All rules are auto-fixable with `eslint --fix`
|
|
268
815
|
|
|
269
|
-
**Full Changelog:** https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.15...v1.0.16
|
|
816
|
+
**Full Changelog:** [v1.0.15...v1.0.16](https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.15...v1.0.16)
|
|
817
|
+
|
|
818
|
+
---
|
|
819
|
+
|
|
820
|
+
## [1.0.15] - 2026-01-09
|
|
821
|
+
|
|
822
|
+
### Added
|
|
823
|
+
|
|
824
|
+
- Additional perfectionist rules to recommended React config:
|
|
825
|
+
- perfectionist/sort-array-includes
|
|
826
|
+
- perfectionist/sort-maps
|
|
827
|
+
- perfectionist/sort-sets
|
|
828
|
+
- perfectionist/sort-switch-case
|
|
829
|
+
- perfectionist/sort-variable-declarations
|
|
270
830
|
|
|
271
831
|
---
|
|
272
832
|
|
|
273
|
-
## [1.0.14] -
|
|
833
|
+
## [1.0.14] - 2026-01-06
|
|
274
834
|
|
|
275
|
-
**
|
|
835
|
+
**Customizable Rules, Recommended Configs & Documentation Overhaul**
|
|
276
836
|
|
|
277
837
|
**Version Range:** v1.0.8 → v1.0.14
|
|
278
838
|
|
|
279
839
|
### Added
|
|
280
840
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
841
|
+
**Customizable Folder Options**
|
|
842
|
+
- `absolute-imports-only` - Add extraAllowedFolders, extraReduxSubfolders, extraDeepImportFolders options
|
|
843
|
+
- `module-index-exports` - Add extraModuleFolders, extraLazyLoadFolders, extraIgnorePatterns options
|
|
844
|
+
- Users can now extend default folder lists without replacing them
|
|
284
845
|
|
|
285
|
-
|
|
286
|
-
|
|
287
|
-
|
|
288
|
-
- Complete documentation with installation commands and plugin explanations
|
|
846
|
+
**Recommended ESLint Configurations**
|
|
847
|
+
- Add recommended-configs/react/ folder with model eslint.config.js
|
|
848
|
+
- Include comprehensive README with installation and plugin documentation
|
|
289
849
|
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
- "Why This Plugin?" section explaining the unique value proposition
|
|
294
|
-
- Block comments added to all rules in source code with Good/Bad examples
|
|
295
|
-
- Emojis added to all major section titles for better visual hierarchy
|
|
850
|
+
**Comprehensive Documentation**
|
|
851
|
+
- Add comprehensive examples for all 47 rules in README
|
|
852
|
+
- Enhance README with emojis, rules summary table, and introduction section
|
|
296
853
|
|
|
297
854
|
### Changed
|
|
298
855
|
|
|
299
|
-
-
|
|
300
|
-
- Standardized all internal helper function names with `Handler` suffix
|
|
301
|
-
- Ensures codebase follows the same conventions enforced by the plugin
|
|
302
|
-
- Made plugin version and name dynamic (reads from package.json)
|
|
856
|
+
- Standardized all internal helper function names with `Handler` suffix
|
|
303
857
|
|
|
304
|
-
###
|
|
858
|
+
### Documentation
|
|
305
859
|
|
|
306
|
-
-
|
|
307
|
-
- Removed orphaned/duplicate block comments
|
|
860
|
+
- Add comprehensive block comments to all ESLint rules with good/bad examples
|
|
308
861
|
|
|
309
862
|
### Stats
|
|
310
863
|
|
|
311
864
|
- Total Rules: 47
|
|
312
|
-
- All rules are auto-fixable with `eslint --fix`
|
|
313
865
|
|
|
314
|
-
**Full Changelog:** https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.8...v1.0.14
|
|
866
|
+
**Full Changelog:** [v1.0.8...v1.0.14](https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.8...v1.0.14)
|
|
315
867
|
|
|
316
868
|
---
|
|
317
869
|
|
|
318
|
-
## [1.0.
|
|
870
|
+
## [1.0.13] - 2026-01-06
|
|
319
871
|
|
|
320
|
-
|
|
872
|
+
### Added
|
|
873
|
+
|
|
874
|
+
- Recommended ESLint configurations for React projects
|
|
875
|
+
- recommended-configs/react/ folder with model eslint.config.js
|
|
876
|
+
|
|
877
|
+
---
|
|
878
|
+
|
|
879
|
+
## [1.0.12] - 2026-01-06
|
|
880
|
+
|
|
881
|
+
### Documentation
|
|
882
|
+
|
|
883
|
+
- Enhance README with emojis, rules summary table, and introduction section
|
|
884
|
+
|
|
885
|
+
---
|
|
886
|
+
|
|
887
|
+
## [1.0.11] - 2026-01-06
|
|
888
|
+
|
|
889
|
+
### Documentation
|
|
890
|
+
|
|
891
|
+
- Add comprehensive examples for all 47 rules in README
|
|
892
|
+
|
|
893
|
+
---
|
|
894
|
+
|
|
895
|
+
## [1.0.10] - 2026-01-06
|
|
896
|
+
|
|
897
|
+
### Documentation
|
|
898
|
+
|
|
899
|
+
- Update README file and TypeScript rules types
|
|
900
|
+
|
|
901
|
+
---
|
|
902
|
+
|
|
903
|
+
## [1.0.9] - 2026-01-06
|
|
904
|
+
|
|
905
|
+
### Changed
|
|
906
|
+
|
|
907
|
+
- Standardize internal helper function names with Handler suffix
|
|
908
|
+
- All check*, is*, get*, has* functions renamed
|
|
909
|
+
|
|
910
|
+
---
|
|
911
|
+
|
|
912
|
+
## [1.0.8] - 2026-01-06
|
|
913
|
+
|
|
914
|
+
### Documentation
|
|
915
|
+
|
|
916
|
+
- Add comprehensive block comments to all ESLint rules
|
|
917
|
+
- Each rule has title, description, and good/bad code examples
|
|
918
|
+
|
|
919
|
+
---
|
|
920
|
+
|
|
921
|
+
## [1.0.7] - 2026-01-06
|
|
922
|
+
|
|
923
|
+
**TypeScript Type Definitions for IDE Support**
|
|
321
924
|
|
|
322
925
|
**Version Range:** v1.0.6 → v1.0.7
|
|
323
926
|
|
|
324
927
|
### Added
|
|
325
928
|
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
929
|
+
**TypeScript Support**
|
|
930
|
+
- Add TypeScript type definitions for IDE support (index.d.ts)
|
|
931
|
+
- Export all 47 rule names as literal types for autocomplete
|
|
932
|
+
- Add PluginRules interface mapping rules to Rule.RuleModule
|
|
933
|
+
- Include module augmentation for ESLint's Linter.RulesRecord
|
|
330
934
|
|
|
331
935
|
### Stats
|
|
332
936
|
|
|
333
937
|
- Total Rules: 47
|
|
334
|
-
- All rules are auto-fixable with `eslint --fix`
|
|
335
938
|
|
|
336
|
-
**Full Changelog:** https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.6...v1.0.7
|
|
939
|
+
**Full Changelog:** [v1.0.6...v1.0.7](https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.6...v1.0.7)
|
|
337
940
|
|
|
338
941
|
---
|
|
339
942
|
|
|
340
|
-
## [1.0.6] -
|
|
341
|
-
|
|
342
|
-
**Release Title:** Initial Public Release
|
|
943
|
+
## [1.0.6] - 2026-01-06
|
|
343
944
|
|
|
344
|
-
**
|
|
945
|
+
**Initial Public Release**
|
|
345
946
|
|
|
346
947
|
### Added
|
|
347
948
|
|
|
348
|
-
-
|
|
349
|
-
|
|
350
|
-
|
|
351
|
-
- Zero dependencies
|
|
949
|
+
- 45+ auto-fixable ESLint rules for React/JSX projects
|
|
950
|
+
- Full support for ESLint v9+ flat config
|
|
951
|
+
- Zero dependencies (except peer dependency on ESLint)
|
|
352
952
|
|
|
353
953
|
### Requirements
|
|
354
954
|
|
|
@@ -358,4 +958,115 @@ The `react-code-order` rule enforces a logical dependency chain:
|
|
|
358
958
|
### Stats
|
|
359
959
|
|
|
360
960
|
- Total Rules: 45+
|
|
361
|
-
|
|
961
|
+
|
|
962
|
+
**Full Changelog:** [v1.0.6](https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/releases/tag/v1.0.6)
|
|
963
|
+
|
|
964
|
+
---
|
|
965
|
+
|
|
966
|
+
## [1.0.5] - 2026-01-06
|
|
967
|
+
|
|
968
|
+
- Pre-release version
|
|
969
|
+
|
|
970
|
+
---
|
|
971
|
+
|
|
972
|
+
## [1.0.4] - 2026-01-06
|
|
973
|
+
|
|
974
|
+
- Pre-release version
|
|
975
|
+
|
|
976
|
+
---
|
|
977
|
+
|
|
978
|
+
## [1.0.3] - 2026-01-06
|
|
979
|
+
|
|
980
|
+
- Pre-release version
|
|
981
|
+
|
|
982
|
+
---
|
|
983
|
+
|
|
984
|
+
## [1.0.2] - 2026-01-06
|
|
985
|
+
|
|
986
|
+
- Pre-release version
|
|
987
|
+
|
|
988
|
+
---
|
|
989
|
+
|
|
990
|
+
[1.6.1]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.6.0...v1.6.1
|
|
991
|
+
[1.6.0]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.5.2...v1.6.0
|
|
992
|
+
[1.5.2]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.5.1...v1.5.2
|
|
993
|
+
[1.5.1]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.5.0...v1.5.1
|
|
994
|
+
[1.5.0]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.4.5...v1.5.0
|
|
995
|
+
[1.4.5]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.4.3...v1.4.5
|
|
996
|
+
[1.4.3]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.4.2...v1.4.3
|
|
997
|
+
[1.4.2]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.4.1...v1.4.2
|
|
998
|
+
[1.4.1]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.4.0...v1.4.1
|
|
999
|
+
[1.4.0]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.3.11...v1.4.0
|
|
1000
|
+
[1.3.11]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.3.10...v1.3.11
|
|
1001
|
+
[1.3.10]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.3.9...v1.3.10
|
|
1002
|
+
[1.3.9]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.3.8...v1.3.9
|
|
1003
|
+
[1.3.8]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.3.7...v1.3.8
|
|
1004
|
+
[1.3.7]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.3.6...v1.3.7
|
|
1005
|
+
[1.3.6]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.3.5...v1.3.6
|
|
1006
|
+
[1.3.5]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.3.4...v1.3.5
|
|
1007
|
+
[1.3.4]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.3.3...v1.3.4
|
|
1008
|
+
[1.3.3]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.3.2...v1.3.3
|
|
1009
|
+
[1.3.2]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.3.1...v1.3.2
|
|
1010
|
+
[1.3.1]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.3.0...v1.3.1
|
|
1011
|
+
[1.3.0]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.2.9...v1.3.0
|
|
1012
|
+
[1.2.9]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.2.8...v1.2.9
|
|
1013
|
+
[1.2.8]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.2.7...v1.2.8
|
|
1014
|
+
[1.2.7]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.2.6...v1.2.7
|
|
1015
|
+
[1.2.6]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.2.5...v1.2.6
|
|
1016
|
+
[1.2.5]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.2.4...v1.2.5
|
|
1017
|
+
[1.2.4]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.2.3...v1.2.4
|
|
1018
|
+
[1.2.3]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.2.2...v1.2.3
|
|
1019
|
+
[1.2.2]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.2.1...v1.2.2
|
|
1020
|
+
[1.2.1]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.2.0...v1.2.1
|
|
1021
|
+
[1.2.0]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.1.10...v1.2.0
|
|
1022
|
+
[1.1.10]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.1.9...v1.1.10
|
|
1023
|
+
[1.1.9]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.1.8...v1.1.9
|
|
1024
|
+
[1.1.8]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.1.7...v1.1.8
|
|
1025
|
+
[1.1.7]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.1.6...v1.1.7
|
|
1026
|
+
[1.1.6]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.1.5...v1.1.6
|
|
1027
|
+
[1.1.5]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.1.4...v1.1.5
|
|
1028
|
+
[1.1.4]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.1.3...v1.1.4
|
|
1029
|
+
[1.1.3]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.1.2...v1.1.3
|
|
1030
|
+
[1.1.2]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.1.1...v1.1.2
|
|
1031
|
+
[1.1.1]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.1.0...v1.1.1
|
|
1032
|
+
[1.1.0]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.41...v1.1.0
|
|
1033
|
+
[1.0.41]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.40...v1.0.41
|
|
1034
|
+
[1.0.40]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.39...v1.0.40
|
|
1035
|
+
[1.0.39]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.38...v1.0.39
|
|
1036
|
+
[1.0.38]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.37...v1.0.38
|
|
1037
|
+
[1.0.37]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.36...v1.0.37
|
|
1038
|
+
[1.0.36]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.35...v1.0.36
|
|
1039
|
+
[1.0.35]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.34...v1.0.35
|
|
1040
|
+
[1.0.34]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.33...v1.0.34
|
|
1041
|
+
[1.0.33]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.32...v1.0.33
|
|
1042
|
+
[1.0.32]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.31...v1.0.32
|
|
1043
|
+
[1.0.31]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.30...v1.0.31
|
|
1044
|
+
[1.0.30]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.29...v1.0.30
|
|
1045
|
+
[1.0.29]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.28...v1.0.29
|
|
1046
|
+
[1.0.28]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.27...v1.0.28
|
|
1047
|
+
[1.0.27]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.26...v1.0.27
|
|
1048
|
+
[1.0.26]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.25...v1.0.26
|
|
1049
|
+
[1.0.25]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.24...v1.0.25
|
|
1050
|
+
[1.0.24]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.23...v1.0.24
|
|
1051
|
+
[1.0.23]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.22...v1.0.23
|
|
1052
|
+
[1.0.22]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.21...v1.0.22
|
|
1053
|
+
[1.0.21]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.20...v1.0.21
|
|
1054
|
+
[1.0.20]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.19...v1.0.20
|
|
1055
|
+
[1.0.19]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.18...v1.0.19
|
|
1056
|
+
[1.0.18]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.17...v1.0.18
|
|
1057
|
+
[1.0.17]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.16...v1.0.17
|
|
1058
|
+
[1.0.16]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.15...v1.0.16
|
|
1059
|
+
[1.0.15]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.14...v1.0.15
|
|
1060
|
+
[1.0.14]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.13...v1.0.14
|
|
1061
|
+
[1.0.13]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.12...v1.0.13
|
|
1062
|
+
[1.0.12]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.11...v1.0.12
|
|
1063
|
+
[1.0.11]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.10...v1.0.11
|
|
1064
|
+
[1.0.10]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.9...v1.0.10
|
|
1065
|
+
[1.0.9]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.8...v1.0.9
|
|
1066
|
+
[1.0.8]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.7...v1.0.8
|
|
1067
|
+
[1.0.7]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.6...v1.0.7
|
|
1068
|
+
[1.0.6]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.5...v1.0.6
|
|
1069
|
+
[1.0.5]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.4...v1.0.5
|
|
1070
|
+
[1.0.4]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.3...v1.0.4
|
|
1071
|
+
[1.0.3]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/compare/v1.0.2...v1.0.3
|
|
1072
|
+
[1.0.2]: https://github.com/Mohamed-Elhawary/eslint-plugin-code-style/releases/tag/v1.0.2
|