@@ -26,11 +26,6 @@ import 'package:analyzer_plugin/utilities/range_factory.dart';
26
26
class ImportLibrary extends MultiCorrectionProducer {
27
27
final _ImportKind _importKind;
28
28
29
- /// Initialize a newly created instance that will add an import of
30
- /// `dart:async` .
31
- ImportLibrary .dartAsync ({required super .context})
32
- : _importKind = _ImportKind .dartAsync;
33
-
34
29
/// Initialize a newly created instance that will add an import for an
35
30
/// extension.
36
31
ImportLibrary .forExtension ({required super .context})
@@ -65,10 +60,6 @@ class ImportLibrary extends MultiCorrectionProducer {
65
60
@override
66
61
Future <List <ResolvedCorrectionProducer >> get producers async {
67
62
return switch (_importKind) {
68
- _ImportKind .dartAsync => _importLibrary (
69
- DartFixKind .IMPORT_ASYNC ,
70
- Uri .parse ('dart:async' ),
71
- ),
72
63
_ImportKind .forExtension => await _producersForExtension (),
73
64
_ImportKind .forExtensionMember => await _producersForExtensionMember (),
74
65
_ImportKind .forExtensionType => await _producersForExtensionType (),
@@ -154,29 +145,66 @@ class ImportLibrary extends MultiCorrectionProducer {
154
145
/// Otherwise, both are returned in the order: absolute, relative.
155
146
List <ResolvedCorrectionProducer > _importLibrary (
156
147
FixKind fixKind,
157
- Uri library, {
148
+ FixKind fixKindShow,
149
+ Uri library,
150
+ String name, {
158
151
String ? prefix,
159
152
bool includeRelativeFix = false ,
160
153
}) {
161
154
if (! includeRelativeFix) {
162
155
return [
163
156
_ImportAbsoluteLibrary (fixKind, library, prefix, context: context),
157
+ _ImportAbsoluteLibrary (
158
+ fixKindShow,
159
+ library,
160
+ prefix,
161
+ show: name,
162
+ context: context,
163
+ ),
164
164
];
165
165
}
166
166
var codeStyleOptions = getCodeStyleOptions (unitResult.file);
167
167
if (codeStyleOptions.usePackageUris) {
168
168
return [
169
169
_ImportAbsoluteLibrary (fixKind, library, prefix, context: context),
170
+ _ImportAbsoluteLibrary (
171
+ fixKindShow,
172
+ library,
173
+ prefix,
174
+ show: name,
175
+ context: context,
176
+ ),
170
177
];
171
178
}
172
179
if (codeStyleOptions.useRelativeUris) {
173
180
return [
174
181
_ImportRelativeLibrary (fixKind, library, prefix, context: context),
182
+ _ImportRelativeLibrary (
183
+ fixKindShow,
184
+ library,
185
+ prefix,
186
+ show: name,
187
+ context: context,
188
+ ),
175
189
];
176
190
}
177
191
return [
178
192
_ImportAbsoluteLibrary (fixKind, library, prefix, context: context),
193
+ _ImportAbsoluteLibrary (
194
+ fixKindShow,
195
+ library,
196
+ prefix,
197
+ show: name,
198
+ context: context,
199
+ ),
179
200
_ImportRelativeLibrary (fixKind, library, prefix, context: context),
201
+ _ImportRelativeLibrary (
202
+ fixKindShow,
203
+ library,
204
+ prefix,
205
+ show: name,
206
+ context: context,
207
+ ),
180
208
];
181
209
}
182
210
@@ -282,29 +310,46 @@ class ImportLibrary extends MultiCorrectionProducer {
282
310
}
283
311
// Compute the fix kind.
284
312
FixKind fixKind;
313
+ FixKind fixKindShow;
285
314
if (libraryElement.isInSdk) {
286
315
fixKind =
287
316
prefix.isEmptyOrNull
288
317
? DartFixKind .IMPORT_LIBRARY_SDK
289
318
: DartFixKind .IMPORT_LIBRARY_SDK_PREFIXED ;
319
+ fixKindShow =
320
+ prefix.isEmptyOrNull
321
+ ? DartFixKind .IMPORT_LIBRARY_SDK_SHOW
322
+ : DartFixKind .IMPORT_LIBRARY_SDK_PREFIXED_SHOW ;
290
323
} else if (_isLibSrcPath (librarySource.fullName)) {
291
324
// Bad: non-API.
292
325
fixKind =
293
326
prefix.isEmptyOrNull
294
327
? DartFixKind .IMPORT_LIBRARY_PROJECT3
295
328
: DartFixKind .IMPORT_LIBRARY_PROJECT3_PREFIXED ;
329
+ fixKindShow =
330
+ prefix.isEmptyOrNull
331
+ ? DartFixKind .IMPORT_LIBRARY_PROJECT3_SHOW
332
+ : DartFixKind .IMPORT_LIBRARY_PROJECT3_PREFIXED_SHOW ;
296
333
} else if (declaration.library != libraryElement) {
297
334
// Ugly: exports.
298
335
fixKind =
299
336
prefix.isEmptyOrNull
300
337
? DartFixKind .IMPORT_LIBRARY_PROJECT2
301
338
: DartFixKind .IMPORT_LIBRARY_PROJECT2_PREFIXED ;
339
+ fixKindShow =
340
+ prefix.isEmptyOrNull
341
+ ? DartFixKind .IMPORT_LIBRARY_PROJECT2_SHOW
342
+ : DartFixKind .IMPORT_LIBRARY_PROJECT2_PREFIXED_SHOW ;
302
343
} else {
303
344
// Good: direct declaration.
304
345
fixKind =
305
346
prefix.isEmptyOrNull
306
347
? DartFixKind .IMPORT_LIBRARY_PROJECT1
307
348
: DartFixKind .IMPORT_LIBRARY_PROJECT1_PREFIXED ;
349
+ fixKindShow =
350
+ prefix.isEmptyOrNull
351
+ ? DartFixKind .IMPORT_LIBRARY_PROJECT1_SHOW
352
+ : DartFixKind .IMPORT_LIBRARY_PROJECT1_PREFIXED_SHOW ;
308
353
}
309
354
// If both files are in the same package's 'lib' folder, also include a
310
355
// relative import.
@@ -316,7 +361,9 @@ class ImportLibrary extends MultiCorrectionProducer {
316
361
producers.addAll (
317
362
_importLibrary (
318
363
fixKind,
364
+ fixKindShow,
319
365
librarySource.uri,
366
+ name,
320
367
prefix: prefix,
321
368
includeRelativeFix: includeRelativeUri,
322
369
),
@@ -543,15 +590,17 @@ class _ImportAbsoluteLibrary extends ResolvedCorrectionProducer {
543
590
final FixKind _fixKind;
544
591
final String ? _prefix;
545
592
final Uri _library;
593
+ final String ? _show;
546
594
547
595
String _uriText = '' ;
548
596
549
597
_ImportAbsoluteLibrary (
550
598
this ._fixKind,
551
599
this ._library,
552
600
this ._prefix, {
601
+ String ? show,
553
602
required super .context,
554
- });
603
+ }) : _show = show ;
555
604
556
605
@override
557
606
CorrectionApplicability get applicability =>
@@ -572,14 +621,18 @@ class _ImportAbsoluteLibrary extends ResolvedCorrectionProducer {
572
621
Future <void > compute (ChangeBuilder builder) async {
573
622
await builder.addDartFileEdit (file, (builder) {
574
623
if (builder is DartFileEditBuilderImpl ) {
575
- _uriText = builder.importLibraryWithAbsoluteUri (_library, _prefix);
624
+ _uriText = builder.importLibraryWithAbsoluteUri (
625
+ _library,
626
+ prefix: _prefix,
627
+ shownName: _show,
628
+ useShow: _show != null ,
629
+ );
576
630
}
577
631
});
578
632
}
579
633
}
580
634
581
635
enum _ImportKind {
582
- dartAsync,
583
636
forExtension,
584
637
forExtensionMember,
585
638
forExtensionType,
@@ -783,15 +836,17 @@ class _ImportRelativeLibrary extends ResolvedCorrectionProducer {
783
836
final FixKind _fixKind;
784
837
final String ? _prefix;
785
838
final Uri _library;
839
+ final String ? _show;
786
840
787
841
String _uriText = '' ;
788
842
789
843
_ImportRelativeLibrary (
790
844
this ._fixKind,
791
845
this ._library,
792
846
this ._prefix, {
847
+ String ? show,
793
848
required super .context,
794
- });
849
+ }) : _show = show ;
795
850
796
851
@override
797
852
CorrectionApplicability get applicability =>
@@ -812,7 +867,12 @@ class _ImportRelativeLibrary extends ResolvedCorrectionProducer {
812
867
Future <void > compute (ChangeBuilder builder) async {
813
868
await builder.addDartFileEdit (file, (builder) {
814
869
if (builder is DartFileEditBuilderImpl ) {
815
- _uriText = builder.importLibraryWithRelativeUri (_library, _prefix);
870
+ _uriText = builder.importLibraryWithRelativeUri (
871
+ _library,
872
+ prefix: _prefix,
873
+ shownName: _show,
874
+ useShow: _show != null ,
875
+ );
816
876
}
817
877
});
818
878
}
0 commit comments