@@ -44,58 +44,72 @@ function getAllDirectiveCommentsFromAllComments(sourceCode) {
44
44
* @returns {DirectiveComment[] } The directive comments.
45
45
*/
46
46
function getAllDirectiveCommentsFromInlineConfigNodes ( sourceCode ) {
47
- /** @type {DirectiveComment[] } */
48
- const result = [ ]
49
- const disableDirectives = sourceCode . getDisableDirectives ( )
50
- for ( const directive of disableDirectives . directives ) {
51
- result . push ( {
52
- kind : `eslint-${ directive . type } ` ,
53
- value : directive . value ,
54
- description : directive . justification ,
55
- node : directive . node ,
56
- range : sourceCode . getRange ( directive . node ) ,
57
- get loc ( ) {
58
- return sourceCode . getLoc ( directive . node )
59
- } ,
60
- } )
61
- }
62
- for ( const node of sourceCode . getInlineConfigNodes ( ) ) {
63
- const range = sourceCode . getRange ( node )
64
- // The node has intersection of the directive comment.
65
- // So, we need to skip it.
66
- if (
67
- result . some (
68
- ( comment ) =>
69
- comment . range [ 0 ] <= range [ 1 ] && range [ 0 ] <= comment . range [ 1 ]
70
- )
71
- ) {
72
- continue
73
- }
74
- const nodeText = sourceCode . text . slice ( range [ 0 ] , range [ 1 ] )
75
- const commentValue = extractCommentContent ( nodeText )
76
- const directiveComment = utils . parseDirectiveText ( commentValue )
77
- if (
78
- directiveComment != null &&
79
- ! [
80
- "eslint-disable" ,
81
- "eslint-disable-line" ,
82
- "eslint-disable-next-line" ,
83
- "eslint-enable" ,
84
- ] . includes ( directiveComment . kind )
85
- ) {
86
- result . push ( {
87
- kind : directiveComment . kind ,
88
- value : directiveComment . value ,
89
- description : directiveComment . description ,
90
- node,
91
- range,
47
+ const result = sourceCode . getDisableDirectives ( ) . directives . map (
48
+ ( directive ) =>
49
+ /** @type {DirectiveComment } */ ( {
50
+ kind : `eslint-${ directive . type } ` ,
51
+ value : directive . value ,
52
+ description : directive . justification ,
53
+ node : directive . node ,
54
+ range : sourceCode . getRange ( directive . node ) ,
92
55
get loc ( ) {
93
- return sourceCode . getLoc ( node )
56
+ return sourceCode . getLoc ( directive . node )
94
57
} ,
95
58
} )
96
- }
97
- }
98
- return result
59
+ )
60
+
61
+ return result . concat (
62
+ sourceCode
63
+ . getInlineConfigNodes ( )
64
+ . map ( ( node ) => ( {
65
+ node,
66
+ range : sourceCode . getRange ( node ) ,
67
+ } ) )
68
+ . filter (
69
+ ( { range } ) =>
70
+ // The node has intersection of the directive comment.
71
+ // So, we need to skip it.
72
+ ! result . some (
73
+ ( comment ) =>
74
+ comment . range [ 0 ] <= range [ 1 ] &&
75
+ range [ 0 ] <= comment . range [ 1 ]
76
+ )
77
+ )
78
+ . map ( ( { node, range } ) => {
79
+ const nodeText = sourceCode . text . slice ( range [ 0 ] , range [ 1 ] )
80
+ const commentValue = extractCommentContent ( nodeText )
81
+ const directiveComment = utils . parseDirectiveText ( commentValue )
82
+
83
+ return {
84
+ directiveComment,
85
+ node,
86
+ range,
87
+ }
88
+ } )
89
+ . filter (
90
+ ( { directiveComment } ) =>
91
+ directiveComment != null &&
92
+ ! [
93
+ "eslint-disable" ,
94
+ "eslint-disable-line" ,
95
+ "eslint-disable-next-line" ,
96
+ "eslint-enable" ,
97
+ ] . includes ( directiveComment . kind )
98
+ )
99
+ . map (
100
+ ( { directiveComment, node, range } ) =>
101
+ /** @type {DirectiveComment } */ ( {
102
+ kind : directiveComment . kind ,
103
+ value : directiveComment . value ,
104
+ description : directiveComment . description ,
105
+ node,
106
+ range,
107
+ get loc ( ) {
108
+ return sourceCode . getLoc ( node )
109
+ } ,
110
+ } )
111
+ )
112
+ )
99
113
}
100
114
101
115
function extractCommentContent ( text ) {
0 commit comments