Chromium Code Reviews| Index: third_party/WebKit/Source/devtools/front_end/console/ConsolePrompt.js |
| diff --git a/third_party/WebKit/Source/devtools/front_end/console/ConsolePrompt.js b/third_party/WebKit/Source/devtools/front_end/console/ConsolePrompt.js |
| index f0c2ff7dd76c17e60e6d8eb9316bf830f8174de4..bc51932ba1d21cbcde40e8671e4b633012b2c01b 100644 |
| --- a/third_party/WebKit/Source/devtools/front_end/console/ConsolePrompt.js |
| +++ b/third_party/WebKit/Source/devtools/front_end/console/ConsolePrompt.js |
| @@ -241,6 +241,10 @@ Console.ConsolePrompt = class extends UI.Widget { |
| * @return {?Common.TextRange} |
| */ |
| _substituteRange(lineNumber, columnNumber) { |
| + var token = this._editor.tokenAtTextPosition(lineNumber, columnNumber); |
| + if (token && token.type === 'js-string') |
| + return new Common.TextRange(lineNumber, token.startColumn, lineNumber, columnNumber); |
|
dgozman
2017/03/17 20:58:50
Should we just return null and use default?
einbinder
2017/03/20 17:50:47
Returning null here would disable autocomplete. Th
|
| + |
| var lineText = this._editor.line(lineNumber); |
| var index; |
| for (index = columnNumber - 1; index >= 0; index--) { |
| @@ -254,23 +258,23 @@ Console.ConsolePrompt = class extends UI.Widget { |
| * @param {!Common.TextRange} queryRange |
| * @param {!Common.TextRange} substituteRange |
| * @param {boolean=} force |
| - * @param {string=} currentTokenType |
| * @return {!Promise<!UI.SuggestBox.Suggestions>} |
| */ |
| - _wordsWithQuery(queryRange, substituteRange, force, currentTokenType) { |
| + _wordsWithQuery(queryRange, substituteRange, force) { |
| var query = this._editor.text(queryRange); |
| var before = this._editor.text(new Common.TextRange(0, 0, queryRange.startLine, queryRange.startColumn)); |
| var historyWords = this._historyCompletions(query, force); |
| - |
| - var excludedTokens = new Set(['js-comment', 'js-string-2', 'js-def']); |
| - var trimmedBefore = before.trim(); |
| - if (!trimmedBefore.endsWith('[') && !trimmedBefore.match(/\.\s*(get|set|delete)\s*\(\s*$/)) |
| - excludedTokens.add('js-string'); |
| - if (!trimmedBefore.endsWith('.')) |
| - excludedTokens.add('js-property'); |
| - if (excludedTokens.has(currentTokenType)) |
| - return Promise.resolve(historyWords); |
| - |
| + var token = this._editor.tokenAtTextPosition(substituteRange.startLine, substituteRange.startColumn); |
| + if (token) { |
| + var excludedTokens = new Set(['js-comment', 'js-string-2', 'js-def']); |
| + var trimmedBefore = before.trim(); |
| + if (!trimmedBefore.endsWith('[') && !trimmedBefore.match(/\.\s*(get|set|delete)\s*\(\s*$/)) |
| + excludedTokens.add('js-string'); |
| + if (!trimmedBefore.endsWith('.')) |
| + excludedTokens.add('js-property'); |
| + if (excludedTokens.has(token.type)) |
| + return Promise.resolve(historyWords); |
| + } |
| return ObjectUI.JavaScriptAutocomplete.completionsForTextInCurrentContext(before, query, force) |
| .then(words => words.concat(historyWords)); |
| } |