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

Side by Side Diff: pkg/analysis_server/lib/src/context_manager.dart

Issue 672003002: Add package root setting to analysis server API. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 6 years, 2 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 | Annotate | Revision Log
OLDNEW
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 context.directory.manager; 5 library context.directory.manager;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 import 'dart:collection'; 8 import 'dart:collection';
9 9
10 import 'package:analyzer/file_system/file_system.dart'; 10 import 'package:analyzer/file_system/file_system.dart';
(...skipping 43 matching lines...) Expand 10 before | Expand all | Expand 10 after
54 */ 54 */
55 List<String> excludedPaths = <String>[]; 55 List<String> excludedPaths = <String>[];
56 56
57 /** 57 /**
58 * The list of included paths (folders and files) most recently passed to 58 * The list of included paths (folders and files) most recently passed to
59 * [setRoots]. 59 * [setRoots].
60 */ 60 */
61 List<String> includedPaths = <String>[]; 61 List<String> includedPaths = <String>[];
62 62
63 /** 63 /**
64 * The map of package roots most recently passed to [setRoots].
65 */
66 Map<String, String> packageRoots = <String, String>{};
67
68 /**
64 * Provider which is used to determine the mapping from package name to 69 * Provider which is used to determine the mapping from package name to
65 * package folder. 70 * package folder.
66 */ 71 */
67 final PackageMapProvider packageMapProvider; 72 final PackageMapProvider packageMapProvider;
68 73
69 ContextManager(this.resourceProvider, this.packageMapProvider) { 74 ContextManager(this.resourceProvider, this.packageMapProvider) {
70 pathContext = resourceProvider.pathContext; 75 pathContext = resourceProvider.pathContext;
71 } 76 }
72 77
73 /** 78 /**
(...skipping 35 matching lines...) Expand 10 before | Expand all | Expand 10 after
109 /** 114 /**
110 * Rebuild the set of contexts from scratch based on the data last sent to 115 * Rebuild the set of contexts from scratch based on the data last sent to
111 * setRoots(). 116 * setRoots().
112 */ 117 */
113 void refresh() { 118 void refresh() {
114 // Destroy old contexts 119 // Destroy old contexts
115 List<Folder> contextFolders = _contexts.keys.toList(); 120 List<Folder> contextFolders = _contexts.keys.toList();
116 contextFolders.forEach(_destroyContext); 121 contextFolders.forEach(_destroyContext);
117 122
118 // Rebuild contexts based on the data last sent to setRoots(). 123 // Rebuild contexts based on the data last sent to setRoots().
119 setRoots(includedPaths, excludedPaths); 124 setRoots(includedPaths, excludedPaths, packageRoots);
120 } 125 }
121 126
122 /** 127 /**
123 * Change the set of paths which should be used as starting points to 128 * Change the set of paths which should be used as starting points to
124 * determine the context directories. 129 * determine the context directories.
125 */ 130 */
126 void setRoots(List<String> includedPaths, List<String> excludedPaths) { 131 void setRoots(List<String> includedPaths, List<String> excludedPaths,
132 Map<String, String> packageRoots) {
133 // TODO(paulberry): process package roots.
134 this.packageRoots = packageRoots;
127 List<Folder> contextFolders = _contexts.keys.toList(); 135 List<Folder> contextFolders = _contexts.keys.toList();
128 // included 136 // included
129 Set<Folder> includedFolders = new HashSet<Folder>(); 137 Set<Folder> includedFolders = new HashSet<Folder>();
130 for (int i = 0; i < includedPaths.length; i++) { 138 for (int i = 0; i < includedPaths.length; i++) {
131 String path = includedPaths[i]; 139 String path = includedPaths[i];
132 Resource resource = resourceProvider.getResource(path); 140 Resource resource = resourceProvider.getResource(path);
133 if (resource is Folder) { 141 if (resource is Folder) {
134 includedFolders.add(resource); 142 includedFolders.add(resource);
135 } else { 143 } else {
136 // TODO(scheglov) implemented separate files analysis 144 // TODO(scheglov) implemented separate files analysis
(...skipping 444 matching lines...) Expand 10 before | Expand all | Expand 10 after
581 return excludes(resource.path); 589 return excludes(resource.path);
582 } 590 }
583 591
584 /** 592 /**
585 * Returns `true` if [path] is the pubspec file of this context. 593 * Returns `true` if [path] is the pubspec file of this context.
586 */ 594 */
587 bool isPubspec(String path) { 595 bool isPubspec(String path) {
588 return path == pubspecPath; 596 return path == pubspecPath;
589 } 597 }
590 } 598 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698