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

Side by Side Diff: pkg/analysis_server/lib/src/edit/edit_domain.dart

Issue 923103004: Return RequestErrorCode.NO_INDEX_GENERATED for search/refactoring requests. (Closed) Base URL: https://dart.googlecode.com/svn/branches/bleeding_edge/dart
Patch Set: Created 5 years, 10 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 edit.domain; 5 library edit.domain;
6 6
7 import 'dart:async'; 7 import 'dart:async';
8 8
9 import 'package:analysis_server/src/analysis_server.dart'; 9 import 'package:analysis_server/src/analysis_server.dart';
10 import 'package:analysis_server/src/collections.dart'; 10 import 'package:analysis_server/src/collections.dart';
(...skipping 99 matching lines...) Expand 10 before | Expand all | Expand 10 after
110 formattedResult.selectionLength).toResponse(request.id); 110 formattedResult.selectionLength).toResponse(request.id);
111 } 111 }
112 112
113 Response getAssists(Request request) { 113 Response getAssists(Request request) {
114 var params = new EditGetAssistsParams.fromRequest(request); 114 var params = new EditGetAssistsParams.fromRequest(request);
115 List<SourceChange> changes = <SourceChange>[]; 115 List<SourceChange> changes = <SourceChange>[];
116 List<CompilationUnit> units = 116 List<CompilationUnit> units =
117 server.getResolvedCompilationUnits(params.file); 117 server.getResolvedCompilationUnits(params.file);
118 if (units.isNotEmpty) { 118 if (units.isNotEmpty) {
119 CompilationUnit unit = units[0]; 119 CompilationUnit unit = units[0];
120 List<Assist> assists = 120 List<Assist> assists = computeAssists(unit, params.offset, params.length);
121 computeAssists(searchEngine, unit, params.offset, params.length);
122 assists.forEach((Assist assist) { 121 assists.forEach((Assist assist) {
123 changes.add(assist.change); 122 changes.add(assist.change);
124 }); 123 });
125 } 124 }
126 // respond 125 // respond
127 return new EditGetAssistsResult(changes).toResponse(request.id); 126 return new EditGetAssistsResult(changes).toResponse(request.id);
128 } 127 }
129 128
130 Response getAvailableRefactorings(Request request) { 129 Response getAvailableRefactorings(Request request) {
130 if (searchEngine == null) {
Brian Wilkerson 2015/02/17 19:57:36 Would it be better to check 'index' in these cases
scheglov 2015/02/17 20:01:02 Well, there is some inconsistency here. We don't u
131 return new Response.noIndexGenerated(request);
132 }
133 // prepare parameters
131 var params = new EditGetAvailableRefactoringsParams.fromRequest(request); 134 var params = new EditGetAvailableRefactoringsParams.fromRequest(request);
132 String file = params.file; 135 String file = params.file;
133 int offset = params.offset; 136 int offset = params.offset;
134 int length = params.length; 137 int length = params.length;
135 // add refactoring kinds 138 // add refactoring kinds
136 List<RefactoringKind> kinds = <RefactoringKind>[]; 139 List<RefactoringKind> kinds = <RefactoringKind>[];
137 // try EXTRACT_* 140 // try EXTRACT_*
138 if (length != 0) { 141 if (length != 0) {
139 kinds.add(RefactoringKind.EXTRACT_LOCAL_VARIABLE); 142 kinds.add(RefactoringKind.EXTRACT_LOCAL_VARIABLE);
140 kinds.add(RefactoringKind.EXTRACT_METHOD); 143 kinds.add(RefactoringKind.EXTRACT_METHOD);
(...skipping 22 matching lines...) Expand all
163 List<AnalysisErrorFixes> errorFixesList = <AnalysisErrorFixes>[]; 166 List<AnalysisErrorFixes> errorFixesList = <AnalysisErrorFixes>[];
164 List<CompilationUnit> units = server.getResolvedCompilationUnits(file); 167 List<CompilationUnit> units = server.getResolvedCompilationUnits(file);
165 for (CompilationUnit unit in units) { 168 for (CompilationUnit unit in units) {
166 engine.AnalysisErrorInfo errorInfo = server.getErrors(file); 169 engine.AnalysisErrorInfo errorInfo = server.getErrors(file);
167 if (errorInfo != null) { 170 if (errorInfo != null) {
168 LineInfo lineInfo = errorInfo.lineInfo; 171 LineInfo lineInfo = errorInfo.lineInfo;
169 int requestLine = lineInfo.getLocation(offset).lineNumber; 172 int requestLine = lineInfo.getLocation(offset).lineNumber;
170 for (engine.AnalysisError error in errorInfo.errors) { 173 for (engine.AnalysisError error in errorInfo.errors) {
171 int errorLine = lineInfo.getLocation(error.offset).lineNumber; 174 int errorLine = lineInfo.getLocation(error.offset).lineNumber;
172 if (errorLine == requestLine) { 175 if (errorLine == requestLine) {
173 List<Fix> fixes = computeFixes(searchEngine, unit, error); 176 List<Fix> fixes = computeFixes(unit, error);
174 if (fixes.isNotEmpty) { 177 if (fixes.isNotEmpty) {
175 AnalysisError serverError = 178 AnalysisError serverError =
176 newAnalysisError_fromEngine(lineInfo, error); 179 newAnalysisError_fromEngine(lineInfo, error);
177 AnalysisErrorFixes errorFixes = 180 AnalysisErrorFixes errorFixes =
178 new AnalysisErrorFixes(serverError); 181 new AnalysisErrorFixes(serverError);
179 errorFixesList.add(errorFixes); 182 errorFixesList.add(errorFixes);
180 fixes.forEach((fix) { 183 fixes.forEach((fix) {
181 errorFixes.fixes.add(fix.change); 184 errorFixes.fixes.add(fix.change);
182 }); 185 });
183 } 186 }
(...skipping 59 matching lines...) Expand 10 before | Expand all | Expand 10 after
243 // do sort 246 // do sort
244 int fileStamp = context.getModificationStamp(source); 247 int fileStamp = context.getModificationStamp(source);
245 String code = context.getContents(source).data; 248 String code = context.getContents(source).data;
246 MemberSorter sorter = new MemberSorter(code, unit); 249 MemberSorter sorter = new MemberSorter(code, unit);
247 List<SourceEdit> edits = sorter.sort(); 250 List<SourceEdit> edits = sorter.sort();
248 SourceFileEdit fileEdit = new SourceFileEdit(file, fileStamp, edits: edits); 251 SourceFileEdit fileEdit = new SourceFileEdit(file, fileStamp, edits: edits);
249 return new EditSortMembersResult(fileEdit).toResponse(request.id); 252 return new EditSortMembersResult(fileEdit).toResponse(request.id);
250 } 253 }
251 254
252 Response _getRefactoring(Request request) { 255 Response _getRefactoring(Request request) {
256 if (searchEngine == null) {
257 return new Response.noIndexGenerated(request);
258 }
253 if (refactoringManager.hasPendingRequest) { 259 if (refactoringManager.hasPendingRequest) {
254 refactoringManager.cancel(); 260 refactoringManager.cancel();
255 _newRefactoringManager(); 261 _newRefactoringManager();
256 } 262 }
257 refactoringManager.getRefactoring(request); 263 refactoringManager.getRefactoring(request);
258 return Response.DELAYED_RESPONSE; 264 return Response.DELAYED_RESPONSE;
259 } 265 }
260 266
261 /** 267 /**
262 * Initializes [refactoringManager] with a new instance. 268 * Initializes [refactoringManager] with a new instance.
(...skipping 350 matching lines...) Expand 10 before | Expand all | Expand 10 after
613 } 619 }
614 if (refactoring is RenameRefactoring) { 620 if (refactoring is RenameRefactoring) {
615 RenameRefactoring renameRefactoring = refactoring; 621 RenameRefactoring renameRefactoring = refactoring;
616 RenameOptions renameOptions = params.options; 622 RenameOptions renameOptions = params.options;
617 renameRefactoring.newName = renameOptions.newName; 623 renameRefactoring.newName = renameOptions.newName;
618 return renameRefactoring.checkNewName(); 624 return renameRefactoring.checkNewName();
619 } 625 }
620 return new RefactoringStatus(); 626 return new RefactoringStatus();
621 } 627 }
622 } 628 }
OLDNEW
« no previous file with comments | « pkg/analysis_server/lib/src/analysis_server.dart ('k') | pkg/analysis_server/lib/src/get_handler.dart » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698