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