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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/components/ExecutionContextSelector.js

Issue 2163393002: DevTools: Give autocomplete suggestions even after brackets (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Style and apostrophe test Created 4 years, 5 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
OLDNEW
1 // Copyright 2014 The Chromium Authors. All rights reserved. 1 // Copyright 2014 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 /** 5 /**
6 * @constructor 6 * @constructor
7 * @implements {WebInspector.TargetManager.Observer} 7 * @implements {WebInspector.TargetManager.Observer}
8 * @param {!WebInspector.TargetManager} targetManager 8 * @param {!WebInspector.TargetManager} targetManager
9 * @param {!WebInspector.Context} context 9 * @param {!WebInspector.Context} context
10 */ 10 */
(...skipping 186 matching lines...) Expand 10 before | Expand all | Expand 10 after
197 */ 197 */
198 WebInspector.ExecutionContextSelector.completionsForTextPromptInCurrentContext = function(proxyElement, text, cursorOffset, wordRange, force, completionsReadyCa llback) 198 WebInspector.ExecutionContextSelector.completionsForTextPromptInCurrentContext = function(proxyElement, text, cursorOffset, wordRange, force, completionsReadyCa llback)
199 { 199 {
200 var executionContext = WebInspector.context.flavor(WebInspector.ExecutionCon text); 200 var executionContext = WebInspector.context.flavor(WebInspector.ExecutionCon text);
201 if (!executionContext) { 201 if (!executionContext) {
202 completionsReadyCallback([]); 202 completionsReadyCallback([]);
203 return; 203 return;
204 } 204 }
205 205
206 // Pass less stop characters to rangeOfWord so the range will be a more comp lete expression. 206 // Pass less stop characters to rangeOfWord so the range will be a more comp lete expression.
207 var expressionRange = wordRange.startContainer.rangeOfWord(wordRange.startOf fset, " =:({;,!+-*/&|^<>", proxyElement, "backward"); 207 var expressionRange = wordRange.startContainer.rangeOfWord(wordRange.startOf fset, " =:({;,!+-*/&|^<>`", proxyElement, "backward");
208 var expressionString = expressionRange.toString(); 208 var expressionString = expressionRange.toString();
209 209
210 // The "[" is also a stop character, except when it's the last character of the expression. 210 var bracketCount = 0;
211 var pos = expressionString.lastIndexOf("[", expressionString.length - 2); 211 var index = expressionString.length - 1;
212 if (pos !== -1) 212 while (index >= 0) {
213 expressionString = expressionString.substr(pos + 1); 213 var character = expressionString.charAt(index);
214 if (character === "]")
215 bracketCount++;
216 // Allow an open bracket at the end for property completion.
217 if (character === "[" && index < expressionString.length - 1) {
218 bracketCount--;
219 if (bracketCount < 0)
220 break;
221 }
222 index--;
223 }
224 expressionString = expressionString.substr(index + 1);
lushnikov 2016/07/25 18:12:29 nit: we tend to use substring in all cases where p
einbinder 2016/07/25 20:11:35 Done.
214 225
215 var prefix = wordRange.toString(); 226 var prefix = wordRange.toString();
216 executionContext.completionsForExpression(expressionString, text, cursorOffs et, prefix, force, completionsReadyCallback); 227 executionContext.completionsForExpression(expressionString, text, cursorOffs et, prefix, force, completionsReadyCallback);
217 } 228 }
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698