| OLD | NEW |
| 1 // Copyright (c) 2014, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2014, 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 library test.services.completion.dart.keyword; | 5 library test.services.completion.dart.keyword; |
| 6 | 6 |
| 7 import 'package:analysis_server/plugin/protocol/protocol.dart'; | 7 import 'package:analysis_server/plugin/protocol/protocol.dart'; |
| 8 import 'package:analysis_server/src/services/completion/dart_completion_manager.
dart'; | 8 import 'package:analysis_server/src/services/completion/dart_completion_manager.
dart'; |
| 9 import 'package:analysis_server/src/services/completion/keyword_contributor.dart
'; | 9 import 'package:analysis_server/src/services/completion/keyword_contributor.dart
'; |
| 10 import 'package:analyzer/src/generated/scanner.dart'; | 10 import 'package:analyzer/src/generated/scanner.dart'; |
| (...skipping 418 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 429 [Keyword.EXPORT, Keyword.IMPORT, Keyword.LIBRARY, Keyword.PART], | 429 [Keyword.EXPORT, Keyword.IMPORT, Keyword.LIBRARY, Keyword.PART], |
| 430 relevance: DART_RELEVANCE_HIGH); | 430 relevance: DART_RELEVANCE_HIGH); |
| 431 } | 431 } |
| 432 | 432 |
| 433 test_catch() { | 433 test_catch() { |
| 434 addTestSource('main() {try {} catch (e) {^}}}'); | 434 addTestSource('main() {try {} catch (e) {^}}}'); |
| 435 expect(computeFast(), isTrue); | 435 expect(computeFast(), isTrue); |
| 436 var keywords = <Keyword>[]; | 436 var keywords = <Keyword>[]; |
| 437 keywords.addAll(STMT_START_OUTSIDE_CLASS); | 437 keywords.addAll(STMT_START_OUTSIDE_CLASS); |
| 438 keywords.add(Keyword.RETHROW); | 438 keywords.add(Keyword.RETHROW); |
| 439 assertSuggestKeywords(keywords, | 439 assertSuggestKeywords(keywords, relevance: DART_RELEVANCE_KEYWORD); |
| 440 relevance: DART_RELEVANCE_KEYWORD); | |
| 441 } | 440 } |
| 442 | 441 |
| 443 test_class() { | 442 test_class() { |
| 444 addTestSource('class A e^ { }'); | 443 addTestSource('class A e^ { }'); |
| 445 expect(computeFast(), isTrue); | 444 expect(computeFast(), isTrue); |
| 446 assertSuggestKeywords([Keyword.EXTENDS, Keyword.IMPLEMENTS], | 445 assertSuggestKeywords([Keyword.EXTENDS, Keyword.IMPLEMENTS], |
| 447 relevance: DART_RELEVANCE_HIGH); | 446 relevance: DART_RELEVANCE_HIGH); |
| 448 } | 447 } |
| 449 | 448 |
| 450 test_class_body() { | 449 test_class_body() { |
| (...skipping 578 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1029 addTestSource( | 1028 addTestSource( |
| 1030 'library bar; import "zoo.dart"; imp^ import "package:foo/foo.dart";'); | 1029 'library bar; import "zoo.dart"; imp^ import "package:foo/foo.dart";'); |
| 1031 expect(computeFast(), isTrue); | 1030 expect(computeFast(), isTrue); |
| 1032 // TODO(danrubel) should not suggest declaration keywords | 1031 // TODO(danrubel) should not suggest declaration keywords |
| 1033 assertSuggestKeywords(DIRECTIVE_AND_DECLARATION_KEYWORDS, | 1032 assertSuggestKeywords(DIRECTIVE_AND_DECLARATION_KEYWORDS, |
| 1034 relevance: DART_RELEVANCE_HIGH); | 1033 relevance: DART_RELEVANCE_HIGH); |
| 1035 expect(request.replacementOffset, 32); | 1034 expect(request.replacementOffset, 32); |
| 1036 expect(request.replacementLength, 3); | 1035 expect(request.replacementLength, 3); |
| 1037 } | 1036 } |
| 1038 | 1037 |
| 1038 test_inComment_block() { |
| 1039 addTestSource(''' |
| 1040 main() { |
| 1041 /* text ^ */ |
| 1042 print(42); |
| 1043 } |
| 1044 '''); |
| 1045 expect(computeFast(), isTrue); |
| 1046 assertNoSuggestions(); |
| 1047 } |
| 1048 |
| 1049 test_inComment_endOfLine() { |
| 1050 addTestSource(''' |
| 1051 main() { |
| 1052 // text ^ |
| 1053 } |
| 1054 '''); |
| 1055 expect(computeFast(), isTrue); |
| 1056 assertNoSuggestions(); |
| 1057 } |
| 1058 |
| 1039 test_is_expression() { | 1059 test_is_expression() { |
| 1040 addTestSource('main() {if (x is^)}'); | 1060 addTestSource('main() {if (x is^)}'); |
| 1041 expect(computeFast(), isTrue); | 1061 expect(computeFast(), isTrue); |
| 1042 assertSuggestKeywords([Keyword.IS], relevance: DART_RELEVANCE_HIGH); | 1062 assertSuggestKeywords([Keyword.IS], relevance: DART_RELEVANCE_HIGH); |
| 1043 } | 1063 } |
| 1044 | 1064 |
| 1045 test_library() { | 1065 test_library() { |
| 1046 addTestSource('library foo;^'); | 1066 addTestSource('library foo;^'); |
| 1047 expect(computeFast(), isTrue); | 1067 expect(computeFast(), isTrue); |
| 1048 assertSuggestKeywords(DIRECTIVE_AND_DECLARATION_KEYWORDS, | 1068 assertSuggestKeywords(DIRECTIVE_AND_DECLARATION_KEYWORDS, |
| (...skipping 346 matching lines...) Expand 10 before | Expand all | Expand 10 after Loading... |
| 1395 (c) => msg.writeln(' $c, ${other.contains(c) ? '' : '<<<<<<<<<<<'}')); | 1415 (c) => msg.writeln(' $c, ${other.contains(c) ? '' : '<<<<<<<<<<<'}')); |
| 1396 } | 1416 } |
| 1397 | 1417 |
| 1398 bool _equalSets(Iterable<String> iter1, Iterable<String> iter2) { | 1418 bool _equalSets(Iterable<String> iter1, Iterable<String> iter2) { |
| 1399 if (iter1.length != iter2.length) return false; | 1419 if (iter1.length != iter2.length) return false; |
| 1400 if (iter1.any((c) => !iter2.contains(c))) return false; | 1420 if (iter1.any((c) => !iter2.contains(c))) return false; |
| 1401 if (iter2.any((c) => !iter1.contains(c))) return false; | 1421 if (iter2.any((c) => !iter1.contains(c))) return false; |
| 1402 return true; | 1422 return true; |
| 1403 } | 1423 } |
| 1404 } | 1424 } |
| OLD | NEW |