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

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

Issue 2465393003: Fix offset for URI navigation (issue 27717) (Closed)
Patch Set: Created 4 years, 1 month 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
« no previous file with comments | « no previous file | no next file » | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
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 protocol.server; 5 library protocol.server;
6 6
7 import 'package:analysis_server/plugin/protocol/protocol.dart'; 7 import 'package:analysis_server/plugin/protocol/protocol.dart';
8 import 'package:analysis_server/plugin/protocol/protocol_dart.dart'; 8 import 'package:analysis_server/plugin/protocol/protocol_dart.dart';
9 import 'package:analysis_server/src/services/correction/fix.dart'; 9 import 'package:analysis_server/src/services/correction/fix.dart';
10 import 'package:analysis_server/src/services/search/search_engine.dart' 10 import 'package:analysis_server/src/services/search/search_engine.dart'
11 as engine; 11 as engine;
12 import 'package:analyzer/dart/ast/ast.dart' as engine; 12 import 'package:analyzer/dart/ast/ast.dart' as engine;
13 import 'package:analyzer/dart/ast/visitor.dart' as engine; 13 import 'package:analyzer/dart/ast/visitor.dart' as engine;
14 import 'package:analyzer/dart/element/element.dart' as engine; 14 import 'package:analyzer/dart/element/element.dart' as engine;
15 import 'package:analyzer/dart/element/type.dart' as engine; 15 import 'package:analyzer/dart/element/type.dart' as engine;
16 import 'package:analyzer/error/error.dart' as engine;
16 import 'package:analyzer/exception/exception.dart'; 17 import 'package:analyzer/exception/exception.dart';
17 import 'package:analyzer/source/error_processor.dart'; 18 import 'package:analyzer/source/error_processor.dart';
18 import 'package:analyzer/src/dart/ast/utilities.dart' as engine; 19 import 'package:analyzer/src/dart/ast/utilities.dart' as engine;
20 import 'package:analyzer/src/error/codes.dart' as engine;
19 import 'package:analyzer/src/generated/engine.dart' as engine; 21 import 'package:analyzer/src/generated/engine.dart' as engine;
20 import 'package:analyzer/error/error.dart' as engine;
21 import 'package:analyzer/src/error/codes.dart' as engine;
22 import 'package:analyzer/src/generated/source.dart' as engine; 22 import 'package:analyzer/src/generated/source.dart' as engine;
23 import 'package:analyzer/src/generated/utilities_dart.dart' as engine; 23 import 'package:analyzer/src/generated/utilities_dart.dart' as engine;
24 24
25 export 'package:analysis_server/plugin/protocol/protocol.dart'; 25 export 'package:analysis_server/plugin/protocol/protocol.dart';
26 export 'package:analysis_server/plugin/protocol/protocol_dart.dart'; 26 export 'package:analysis_server/plugin/protocol/protocol_dart.dart';
27 27
28 /** 28 /**
29 * Returns a list of AnalysisErrors corresponding to the given list of Engine 29 * Returns a list of AnalysisErrors corresponding to the given list of Engine
30 * errors. 30 * errors.
31 */ 31 */
(...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after
133 * Create a Location based on an [engine.Element]. 133 * Create a Location based on an [engine.Element].
134 */ 134 */
135 Location newLocation_fromElement(engine.Element element) { 135 Location newLocation_fromElement(engine.Element element) {
136 engine.AnalysisContext context = element.context; 136 engine.AnalysisContext context = element.context;
137 engine.Source source = element.source; 137 engine.Source source = element.source;
138 if (context == null || source == null) { 138 if (context == null || source == null) {
139 return null; 139 return null;
140 } 140 }
141 int offset = element.nameOffset; 141 int offset = element.nameOffset;
142 int length = element.nameLength; 142 int length = element.nameLength;
143 if (element is engine.CompilationUnitElement) { 143 if (element is engine.CompilationUnitElement ||
144 (element is engine.LibraryElement && offset < 0)) {
144 offset = 0; 145 offset = 0;
145 length = 0; 146 length = 0;
146 } 147 }
147 engine.SourceRange range = new engine.SourceRange(offset, length); 148 engine.SourceRange range = new engine.SourceRange(offset, length);
148 return _locationForArgs(context, source, range); 149 return _locationForArgs(context, source, range);
149 } 150 }
150 151
151 /** 152 /**
152 * Create a Location based on an [engine.SearchMatch]. 153 * Create a Location based on an [engine.SearchMatch].
153 */ 154 */
(...skipping 107 matching lines...) Expand 10 before | Expand all | Expand 10 after
261 if (lineInfo != null) { 262 if (lineInfo != null) {
262 engine.LineInfo_Location offsetLocation = 263 engine.LineInfo_Location offsetLocation =
263 lineInfo.getLocation(range.offset); 264 lineInfo.getLocation(range.offset);
264 startLine = offsetLocation.lineNumber; 265 startLine = offsetLocation.lineNumber;
265 startColumn = offsetLocation.columnNumber; 266 startColumn = offsetLocation.columnNumber;
266 } 267 }
267 } on AnalysisException {} 268 } on AnalysisException {}
268 return new Location( 269 return new Location(
269 source.fullName, range.offset, range.length, startLine, startColumn); 270 source.fullName, range.offset, range.length, startLine, startColumn);
270 } 271 }
OLDNEW
« no previous file with comments | « no previous file | no next file » | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698