Only show dart files in the imports code completion.

Bug:
Change-Id: Ib2e48422e85c6abcdf0c8af33a8f80e6d36111f5
Reviewed-on: https://dart-review.googlesource.com/23700
Commit-Queue: Devon Carew <devoncarew@google.com>
Reviewed-by: Dan Rubel <danrubel@google.com>
Reviewed-by: Konstantin Shcheglov <scheglov@google.com>
Reviewed-by: Brian Wilkerson <brianwilkerson@google.com>
This commit is contained in:
Devon Carew 2017-11-25 22:20:08 +00:00 committed by commit-bot@chromium.org
parent f85a962d97
commit 331c3ab82f
2 changed files with 27 additions and 6 deletions

View file

@ -17,8 +17,7 @@ import 'package:path/path.dart' show posix;
import 'package:path/src/context.dart';
/**
* A contributor for calculating uri suggestions
* for import and part directives.
* A contributor for calculating uri suggestions for import and part directives.
*/
class UriContributor extends DartCompletionContributor {
_UriSuggestionBuilder builder;
@ -175,11 +174,15 @@ class _UriSuggestionBuilder extends SimpleAstVisitor {
for (Resource child in dir.getChildren()) {
String completion;
if (child is Folder) {
completion = '$uriPrefix${child.shortName}/';
} else {
completion = '$uriPrefix${child.shortName}';
if (!child.shortName.startsWith('.')) {
completion = '$uriPrefix${child.shortName}/';
}
} else if (child is File) {
if (child.shortName.endsWith('.dart')) {
completion = '$uriPrefix${child.shortName}';
}
}
if (completion != source.shortName) {
if (completion != null && completion != source.shortName) {
_addSuggestion(completion);
}
}

View file

@ -272,6 +272,24 @@ class UriContributorTest extends DartCompletionContributorTest {
assertSuggest('../blat.dart', csKind: CompletionSuggestionKind.IMPORT);
}
test_import_only_dart_files() async {
testFile = '/proj/completion.dart';
addSource('/proj/other.dart', 'library other;');
newFile('/proj/analysis_options.yaml', '# analysis options');
addTestSource('import "package:^";');
await computeSuggestions();
assertNotSuggested('analysis_options.yaml');
}
test_import_no_dot_folders() async {
testFile = '/proj/completion.dart';
addSource('/proj/other.dart', 'library other;');
newFolder('/proj/.fooFolder');
addTestSource('import "package:^";');
await computeSuggestions();
assertNotSuggested('.fooFolder/');
}
test_import_package() async {
addPackageSource('foo', 'foo.dart', 'library foo;');
addPackageSource('foo', 'baz/too.dart', 'library too;');