| OLD | NEW |
| 1 // Copyright (c) 2015, the Dart project authors. Please see the AUTHORS file | 1 // Copyright (c) 2015, 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 analysis_server.completion.completion_dart; | 5 library analysis_server.completion.completion_dart; |
| 6 | 6 |
| 7 import 'package:analysis_server/completion/completion_core.dart'; | 7 import 'package:analysis_server/completion/completion_core.dart'; |
| 8 import 'package:analysis_server/src/services/completion/completion_dart.dart'; | |
| 9 import 'package:analyzer/src/generated/ast.dart'; | 8 import 'package:analyzer/src/generated/ast.dart'; |
| 10 import 'package:analyzer/src/generated/engine.dart'; | 9 import 'package:analyzer/src/generated/engine.dart'; |
| 11 import 'package:analyzer/src/generated/source.dart'; | 10 import 'package:analyzer/src/generated/source.dart'; |
| 12 | 11 |
| 13 /** | 12 /** |
| 14 * An object used to produce completions for a specific error within a Dart | 13 * An object used to produce completions for a specific error within a Dart |
| 15 * file. Completion contributors are long-lived objects and must not retain any | 14 * file. Completion contributors are long-lived objects and must not retain any |
| 16 * state between invocations of [computeSuggestions]. | 15 * state between invocations of [computeSuggestions]. |
| 17 * | 16 * |
| 18 * Clients are expected to subtype this class when implementing plugins. | 17 * Clients are expected to subtype this class when implementing plugins. |
| 19 */ | 18 */ |
| 20 abstract class DartCompletionContributor extends CompletionContributor { | 19 abstract class DartCompletionContributor extends CompletionContributor { |
| 21 @override | 20 @override |
| 22 CompletionResult computeSuggestions(CompletionRequest request) { | 21 CompletionResult computeSuggestions(CompletionRequest request) { |
| 23 if (request is DartCompletionRequest) { | 22 if (request is DartCompletionRequest) { |
| 24 return internalComputeSuggestions(request); | 23 return internalComputeSuggestions(request); |
| 25 } | 24 } |
| 26 AnalysisContext context = request.context; | 25 AnalysisContext context = request.context; |
| 27 Source source = request.source; | 26 Source source = request.source; |
| 28 List<Source> libraries = context.getLibrariesContaining(source); | 27 List<Source> libraries = context.getLibrariesContaining(source); |
| 29 if (libraries.length < 1) { | 28 if (libraries.length < 1) { |
| 30 return null; | 29 return null; |
| 31 } | 30 } |
| 32 CompilationUnit unit = | 31 // CompilationUnit unit = |
| 33 context.getResolvedCompilationUnit2(source, libraries[0]); | 32 // context.getResolvedCompilationUnit2(source, libraries[0]); |
| 34 bool isResolved = true; | 33 // bool isResolved = true; |
| 35 if (unit == null) { | 34 // if (unit == null) { |
| 36 // TODO(brianwilkerson) Implement a method for getting a parsed | 35 // // TODO(brianwilkerson) Implement a method for getting a parsed |
| 37 // compilation unit without parsing the unit if it hasn't been parsed. | 36 // // compilation unit without parsing the unit if it hasn't been parsed. |
| 38 // unit = context.getParsedCompilationUnit(source); | 37 // unit = context.getParsedCompilationUnit(source); |
| 39 if (unit == null) { | 38 // if (unit == null) { |
| 40 return null; | 39 // return null; |
| 41 } | 40 // } |
| 42 isResolved = false; | 41 // isResolved = false; |
| 43 } | 42 // } |
| 44 DartCompletionRequest dartRequest = | 43 // DartCompletionRequest dartRequest = |
| 45 new DartCompletionRequestImpl(request, unit, isResolved); | 44 // new DartCompletionRequestImpl(request, unit, isResolved); |
| 46 return internalComputeSuggestions(dartRequest); | 45 // return internalComputeSuggestions(dartRequest); |
| 46 return null; |
| 47 } | 47 } |
| 48 | 48 |
| 49 /** | 49 /** |
| 50 * Compute a list of completion suggestions based on the given completion | 50 * Compute a list of completion suggestions based on the given completion |
| 51 * [request] and return a result that includes those suggestions. This method | 51 * [request] and return a result that includes those suggestions. This method |
| 52 * is called after specific phases of analysis until the contributor indicates | 52 * is called after specific phases of analysis until the contributor indicates |
| 53 * computation is complete by setting [CompletionResult.isLast] to `true`. | 53 * computation is complete by setting [CompletionResult.isLast] to `true`. |
| 54 */ | 54 */ |
| 55 CompletionResult internalComputeSuggestions(DartCompletionRequest request); | 55 CompletionResult internalComputeSuggestions(DartCompletionRequest request); |
| 56 } | 56 } |
| (...skipping 21 matching lines...) Expand all Loading... |
| 78 * Return the completion target. This determines what part of the parse tree | 78 * Return the completion target. This determines what part of the parse tree |
| 79 * will receive the newly inserted text. | 79 * will receive the newly inserted text. |
| 80 */ | 80 */ |
| 81 //CompletionTarget get target; | 81 //CompletionTarget get target; |
| 82 | 82 |
| 83 /** | 83 /** |
| 84 * Information about the types of suggestions that should be included. | 84 * Information about the types of suggestions that should be included. |
| 85 */ | 85 */ |
| 86 //OpType get _optype; | 86 //OpType get _optype; |
| 87 } | 87 } |
| OLD | NEW |