Index: third_party/WebKit/Source/devtools/front_end/components/ExecutionContextSelector.js |
diff --git a/third_party/WebKit/Source/devtools/front_end/components/ExecutionContextSelector.js b/third_party/WebKit/Source/devtools/front_end/components/ExecutionContextSelector.js |
index 0573f25821a0397dcc42abb781b457ca9949d3bc..79f0d70b6cd9c0a8ce501803346a2f54952cadfb 100644 |
--- a/third_party/WebKit/Source/devtools/front_end/components/ExecutionContextSelector.js |
+++ b/third_party/WebKit/Source/devtools/front_end/components/ExecutionContextSelector.js |
@@ -204,13 +204,25 @@ WebInspector.ExecutionContextSelector.completionsForTextPromptInCurrentContext = |
} |
// Pass less stop characters to rangeOfWord so the range will be a more complete expression. |
- var expressionRange = wordRange.startContainer.rangeOfWord(wordRange.startOffset, " =:({;,!+-*/&|^<>", proxyElement, "backward"); |
+ var expressionRange = wordRange.startContainer.rangeOfWord(wordRange.startOffset, " =:({;,!+-*/&|^<>`", proxyElement, "backward"); |
lushnikov
2016/07/20 23:37:54
did you test this new apostrophe?
einbinder
2016/07/22 23:26:46
Done.
|
var expressionString = expressionRange.toString(); |
- // The "[" is also a stop character, except when it's the last character of the expression. |
- var pos = expressionString.lastIndexOf("[", expressionString.length - 2); |
- if (pos !== -1) |
- expressionString = expressionString.substr(pos + 1); |
+ var bracketCount = 0; |
+ for (var i = expressionString.length - 1; i >= 0; i--) { |
lushnikov
2016/07/20 23:37:54
1. let's extract "i" outside of the loop and name
einbinder
2016/07/22 23:26:46
Done.
|
+ switch (expressionString.charAt(i)) { |
lushnikov
2016/07/20 23:37:54
converting this into if statement would be easier
einbinder
2016/07/22 23:26:45
Done.
|
+ case "]": |
+ bracketCount++; |
+ break; |
+ case "[": |
+ // Allow an open bracket at the end for property completion |
lushnikov
2016/07/20 23:37:54
nit: comments should finish with "."
einbinder
2016/07/22 23:26:45
Done.
|
+ if (i < expressionString.length - 1) |
+ bracketCount--; |
+ break; |
+ } |
+ if (bracketCount < 0) |
+ break; |
+ } |
+ expressionString = expressionString.substr(i + 1); |
var prefix = wordRange.toString(); |
executionContext.completionsForExpression(expressionString, text, cursorOffset, prefix, force, completionsReadyCallback); |