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

Unified Diff: third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js

Issue 2478563002: DevTools: Substring autocomplete in Console and StylesSideBar. (Closed)
Patch Set: tests 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 side-by-side diff with in-line comments
Download patch
Index: third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js
diff --git a/third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js b/third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js
index b6334818485a438899c563feb5b548b03c6020b7..a418ea692c9c805379c2bc520569f94a48b750ff 100644
--- a/third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js
+++ b/third_party/WebKit/Source/devtools/front_end/elements/StylesSidebarPane.js
@@ -2888,22 +2888,37 @@ WebInspector.StylesSidebarPane.CSSPropertyPrompt = class extends WebInspector.Te
* @param {function(!Array.<string>, number=)} completionsReadyCallback
*/
_buildPropertyCompletions(proxyElement, wordRange, force, completionsReadyCallback) {
- var prefix = wordRange.toString().toLowerCase();
- if (!prefix && !force && (this._isEditingName || proxyElement.textContent.length)) {
+ var query = wordRange.toString().toLowerCase();
+ if (!query && !force && (this._isEditingName || proxyElement.textContent.length)) {
completionsReadyCallback([]);
return;
}
- var results = this._cssCompletions.filter(completion => completion.startsWith(prefix));
- if (!this._isEditingName && !results.length && prefix.length > 1 && '!important'.startsWith(prefix))
+ var prefixResults = [];
+ var anywhereResults = [];
+ this._cssCompletions.forEach(filterCompletions);
+ var results = prefixResults.concat(anywhereResults);
+
+ if (!this._isEditingName && !results.length && query.length > 1 && '!important'.startsWith(query))
results.push('!important');
var userEnteredText = wordRange.toString().replace('-', '');
if (userEnteredText && (userEnteredText === userEnteredText.toUpperCase())) {
for (var i = 0; i < results.length; ++i)
results[i] = results[i].toUpperCase();
}
- var selectedIndex = this._isEditingName ? WebInspector.cssMetadata().mostUsedProperty(results) : 0;
+ var selectedIndex = this._isEditingName ? WebInspector.cssMetadata().mostUsedProperty(prefixResults) : 0;
completionsReadyCallback(results, selectedIndex);
+
+ /**
+ * @param {string} completion
+ */
+ function filterCompletions(completion) {
+ var index = completion.indexOf(query);
+ if (index === 0)
+ prefixResults.push(completion);
+ else if (index > -1)
+ anywhereResults.push(completion);
+ }
}
};

Powered by Google App Engine
This is Rietveld 408576698