| Index: pkg/analysis_server/lib/src/analysis_server.dart
|
| diff --git a/pkg/analysis_server/lib/src/analysis_server.dart b/pkg/analysis_server/lib/src/analysis_server.dart
|
| index 0cdc57c0e4c2baf11eac2585dbb8e6e1a5af4218..5347e14c97a5ee2771e9a6c4a20f00b154a8550c 100644
|
| --- a/pkg/analysis_server/lib/src/analysis_server.dart
|
| +++ b/pkg/analysis_server/lib/src/analysis_server.dart
|
| @@ -368,11 +368,19 @@ class AnalysisServer {
|
| */
|
| AnalysisContext getAnalysisContext(String path) {
|
| // try to find a containing context
|
| + Folder containingFolder = null;
|
| for (Folder folder in folderMap.keys) {
|
| if (folder.path == path || folder.contains(path)) {
|
| - return folderMap[folder];
|
| + if (containingFolder == null) {
|
| + containingFolder = folder;
|
| + } else if (containingFolder.path.length < folder.path.length) {
|
| + containingFolder = folder;
|
| + }
|
| }
|
| }
|
| + if (containingFolder != null) {
|
| + return folderMap[containingFolder];
|
| + }
|
| Resource resource = resourceProvider.getResource(path);
|
| if (resource is Folder) {
|
| return null;
|
|
|