Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(922)

Side by Side Diff: pkg/analyzer_plugin/test/utilities/completion/completion_contributor_util.dart

Issue 2953093002: Update the plugin API (Closed)
Patch Set: Update FixesRequest Created 3 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file 1 // Copyright (c) 2017, the Dart project authors. Please see the AUTHORS file
2 // for details. All rights reserved. Use of this source code is governed by a 2 // for details. All rights reserved. Use of this source code is governed by a
3 // BSD-style license that can be found in the LICENSE file. 3 // BSD-style license that can be found in the LICENSE file.
4 4
5 import 'dart:async'; 5 import 'dart:async';
6 6
7 import 'package:analyzer/dart/analysis/results.dart';
7 import 'package:analyzer/file_system/file_system.dart'; 8 import 'package:analyzer/file_system/file_system.dart';
8 import 'package:analyzer/source/package_map_resolver.dart'; 9 import 'package:analyzer/source/package_map_resolver.dart';
9 import 'package:analyzer/src/dart/analysis/driver.dart';
10 import 'package:analyzer/src/generated/source.dart'; 10 import 'package:analyzer/src/generated/source.dart';
11 import 'package:analyzer_plugin/protocol/protocol_common.dart'; 11 import 'package:analyzer_plugin/protocol/protocol_common.dart';
12 import 'package:analyzer_plugin/src/utilities/completion/completion_core.dart'; 12 import 'package:analyzer_plugin/src/utilities/completion/completion_core.dart';
13 import 'package:analyzer_plugin/src/utilities/completion/completion_target.dart' ; 13 import 'package:analyzer_plugin/src/utilities/completion/completion_target.dart' ;
14 import 'package:analyzer_plugin/utilities/completion/completion_core.dart'; 14 import 'package:analyzer_plugin/utilities/completion/completion_core.dart';
15 import 'package:analyzer_plugin/utilities/completion/relevance.dart'; 15 import 'package:analyzer_plugin/utilities/completion/relevance.dart';
16 import 'package:test/test.dart'; 16 import 'package:test/test.dart';
17 17
18 import '../../support/abstract_context.dart'; 18 import '../../support/abstract_context.dart';
19 import 'flutter_util.dart'; 19 import 'flutter_util.dart';
20 20
21 int suggestionComparator(CompletionSuggestion s1, CompletionSuggestion s2) { 21 int suggestionComparator(CompletionSuggestion s1, CompletionSuggestion s2) {
22 String c1 = s1.completion.toLowerCase(); 22 String c1 = s1.completion.toLowerCase();
23 String c2 = s2.completion.toLowerCase(); 23 String c2 = s2.completion.toLowerCase();
24 return c1.compareTo(c2); 24 return c1.compareTo(c2);
25 } 25 }
26 26
27 abstract class DartCompletionContributorTest extends AbstractContextTest { 27 abstract class DartCompletionContributorTest extends AbstractContextTest {
28 static const String _UNCHECKED = '__UNCHECKED__'; 28 static const String _UNCHECKED = '__UNCHECKED__';
29 String testFile; 29 String testFile;
30 Source testSource; 30 Source testSource;
31 int completionOffset; 31 int completionOffset;
32 int replacementOffset; 32 int replacementOffset;
33 int replacementLength; 33 int replacementLength;
34 CompletionContributor contributor; 34 CompletionContributor contributor;
35 CompletionRequest request; 35 DartCompletionRequest request;
36 List<CompletionSuggestion> suggestions; 36 List<CompletionSuggestion> suggestions;
37 37
38 /** 38 /**
39 * If `true` and `null` is specified as the suggestion's expected returnType 39 * If `true` and `null` is specified as the suggestion's expected returnType
40 * then the actual suggestion is expected to have a `dynamic` returnType. 40 * then the actual suggestion is expected to have a `dynamic` returnType.
41 * Newer tests return `false` so that they can distinguish between 41 * Newer tests return `false` so that they can distinguish between
42 * `dynamic` and `null`. 42 * `dynamic` and `null`.
43 * Eventually all tests should be converted and this getter removed. 43 * Eventually all tests should be converted and this getter removed.
44 */ 44 */
45 bool get isNullExpectedReturnTypeConsideredDynamic => true; 45 bool get isNullExpectedReturnTypeConsideredDynamic => true;
(...skipping 402 matching lines...) Expand 10 before | Expand all | Expand 10 after
448 448
449 /** 449 /**
450 * Return a [Future] that completes with the containing library information 450 * Return a [Future] that completes with the containing library information
451 * after it is accessible via [context.getLibrariesContaining]. 451 * after it is accessible via [context.getLibrariesContaining].
452 */ 452 */
453 Future<Null> computeLibrariesContaining() { 453 Future<Null> computeLibrariesContaining() {
454 return driver.getResult(testFile).then((result) => null); 454 return driver.getResult(testFile).then((result) => null);
455 } 455 }
456 456
457 Future computeSuggestions() async { 457 Future computeSuggestions() async {
458 AnalysisResult analysisResult = await driver.getResult(testFile); 458 ResolveResult result = await driver.getResult(testFile);
459 testSource = analysisResult.unit.element.source; 459 testSource = result.unit.element.source;
460 request = 460 request = new DartCompletionRequestImpl(provider, completionOffset, result);
461 new CompletionRequestImpl(provider, analysisResult, completionOffset);
462 461
463 CompletionTarget target = 462 CompletionTarget target =
464 new CompletionTarget.forOffset(request.result.unit, request.offset); 463 new CompletionTarget.forOffset(request.result.unit, request.offset);
465 var range = target.computeReplacementRange(request.offset); 464 var range = target.computeReplacementRange(request.offset);
466 replacementOffset = range.offset; 465 replacementOffset = range.offset;
467 replacementLength = range.length; 466 replacementLength = range.length;
468 467
469 // Request completions 468 // Request completions
470 CompletionCollectorImpl collector = new CompletionCollectorImpl(); 469 CompletionCollectorImpl collector = new CompletionCollectorImpl();
471 await contributor.computeSuggestions(request, collector); 470 await contributor.computeSuggestions(request, collector);
(...skipping 88 matching lines...) Expand 10 before | Expand all | Expand 10 after
560 addSource(path, content); 559 addSource(path, content);
561 } 560 }
562 561
563 @override 562 @override
564 void setUp() { 563 void setUp() {
565 super.setUp(); 564 super.setUp();
566 testFile = provider.convertPath('/completionTest.dart'); 565 testFile = provider.convertPath('/completionTest.dart');
567 contributor = createContributor(); 566 contributor = createContributor();
568 } 567 }
569 } 568 }
OLDNEW
« no previous file with comments | « pkg/analyzer_plugin/test/plugin/navigation_mixin_test.dart ('k') | pkg/analyzer_plugin/test/utilities/navigation_test.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698