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

Unified Diff: third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js

Issue 2466123002: DevTools: reformat front-end code to match chromium style. (Closed)
Patch Set: all done 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/ui_lazy/FilteredListWidget.js
diff --git a/third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js b/third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js
index d1e5bc9b2a668832100af07802cb28b8b31d2061..f15fb130afff5e959c322289842ce96ff3b15ef2 100644
--- a/third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js
+++ b/third_party/WebKit/Source/devtools/front_end/ui_lazy/FilteredListWidget.js
@@ -3,41 +3,41 @@
* Use of this source code is governed by a BSD-style license that can be
* found in the LICENSE file.
*/
-
/**
- * @constructor
- * @extends {WebInspector.VBox}
* @implements {WebInspector.StaticViewportControl.Provider}
- * @param {!WebInspector.FilteredListWidget.Delegate} delegate
+ * @unrestricted
*/
-WebInspector.FilteredListWidget = function(delegate)
-{
- WebInspector.VBox.call(this, true);
+WebInspector.FilteredListWidget = class extends WebInspector.VBox {
+ /**
+ * @param {!WebInspector.FilteredListWidget.Delegate} delegate
+ */
+ constructor(delegate) {
+ super(true);
this._renderAsTwoRows = delegate.renderAsTwoRows();
- this.contentElement.classList.add("filtered-list-widget");
- this.contentElement.addEventListener("keydown", this._onKeyDown.bind(this), false);
+ this.contentElement.classList.add('filtered-list-widget');
+ this.contentElement.addEventListener('keydown', this._onKeyDown.bind(this), false);
if (delegate.renderMonospace())
- this.contentElement.classList.add("monospace");
- this.registerRequiredCSS("ui_lazy/filteredListWidget.css");
+ this.contentElement.classList.add('monospace');
+ this.registerRequiredCSS('ui_lazy/filteredListWidget.css');
- this._promptElement = this.contentElement.createChild("div", "filtered-list-widget-input");
- this._promptElement.setAttribute("spellcheck", "false");
- this._promptElement.setAttribute("contenteditable", "plaintext-only");
+ this._promptElement = this.contentElement.createChild('div', 'filtered-list-widget-input');
+ this._promptElement.setAttribute('spellcheck', 'false');
+ this._promptElement.setAttribute('contenteditable', 'plaintext-only');
this._prompt = new WebInspector.TextPrompt();
this._prompt.initialize(this._autocomplete.bind(this));
this._prompt.renderAsBlock();
this._prompt.addEventListener(WebInspector.TextPrompt.Events.ItemAccepted, this._onAutocompleted, this);
var promptProxy = this._prompt.attach(this._promptElement);
- promptProxy.addEventListener("input", this._onInput.bind(this), false);
- promptProxy.classList.add("filtered-list-widget-prompt-element");
+ promptProxy.addEventListener('input', this._onInput.bind(this), false);
+ promptProxy.classList.add('filtered-list-widget-prompt-element');
this._filteredItems = [];
this._viewportControl = new WebInspector.StaticViewportControl(this);
this._itemElementsContainer = this._viewportControl.element;
- this._itemElementsContainer.classList.add("container");
- this._itemElementsContainer.addEventListener("click", this._onClick.bind(this), false);
+ this._itemElementsContainer.classList.add('container');
+ this._itemElementsContainer.addEventListener('click', this._onClick.bind(this), false);
this.contentElement.appendChild(this._itemElementsContainer);
this.setDefaultFocusedElement(this._promptElement);
@@ -51,537 +51,498 @@ WebInspector.FilteredListWidget = function(delegate)
/** @typedef {!Array.<!Element>} */
this._elements = [];
-};
+ }
-/**
- * @param {string} query
- * @return {!RegExp}
- */
-WebInspector.FilteredListWidget.filterRegex = function(query)
-{
+ /**
+ * @param {string} query
+ * @return {!RegExp}
+ */
+ static filterRegex(query) {
const toEscape = String.regexSpecialCharacters();
- var regexString = "";
+ var regexString = '';
for (var i = 0; i < query.length; ++i) {
- var c = query.charAt(i);
- if (toEscape.indexOf(c) !== -1)
- c = "\\" + c;
- if (i)
- regexString += "[^\\0" + c + "]*";
- regexString += c;
+ var c = query.charAt(i);
+ if (toEscape.indexOf(c) !== -1)
+ c = '\\' + c;
+ if (i)
+ regexString += '[^\\0' + c + ']*';
+ regexString += c;
+ }
+ return new RegExp(regexString, 'i');
+ }
+
+ showAsDialog() {
+ this._dialog = new WebInspector.Dialog();
+ this._dialog.setMaxSize(new Size(504, 340));
+ this._dialog.setPosition(undefined, 22);
+ this.show(this._dialog.element);
+ this._dialog.show();
+ }
+
+ /**
+ * @return {string}
+ */
+ _value() {
+ return this._prompt.text().trim();
+ }
+
+ /**
+ * @override
+ */
+ willHide() {
+ this._delegate.dispose();
+ if (this._filterTimer)
+ clearTimeout(this._filterTimer);
+ }
+
+ /**
+ * @param {!Event} event
+ */
+ _onEnter(event) {
+ event.preventDefault();
+ if (!this._delegate.itemCount())
+ return;
+ var selectedIndex = this._shouldShowMatchingItems() && this._selectedIndexInFiltered < this._filteredItems.length ?
+ this._filteredItems[this._selectedIndexInFiltered] :
+ null;
+
+ // Detach dialog before allowing delegate to override focus.
+ if (this._dialog)
+ this._dialog.detach();
+ this._delegate.selectItemWithQuery(selectedIndex, this._value());
+ }
+
+ _itemsLoaded() {
+ if (this._loadTimeout)
+ return;
+ this._loadTimeout = setTimeout(this._updateAfterItemsLoaded.bind(this), 0);
+ }
+
+ _updateAfterItemsLoaded() {
+ delete this._loadTimeout;
+ this._filterItems();
+ }
+
+ /**
+ * @param {number} index
+ * @return {!Element}
+ */
+ _createItemElement(index) {
+ var itemElement = createElement('div');
+ itemElement.className = 'filtered-list-widget-item ' + (this._renderAsTwoRows ? 'two-rows' : 'one-row');
+ itemElement._titleElement = itemElement.createChild('div', 'filtered-list-widget-title');
+ itemElement._subtitleElement = itemElement.createChild('div', 'filtered-list-widget-subtitle');
+ itemElement._subtitleElement.textContent = '\u200B';
+ itemElement._index = index;
+ this._delegate.renderItem(index, this._value(), itemElement._titleElement, itemElement._subtitleElement);
+ return itemElement;
+ }
+
+ /**
+ * @param {string} query
+ */
+ setQuery(query) {
+ this._prompt.setText(query);
+ this._prompt.autoCompleteSoon(true);
+ this._scheduleFilter();
+ }
+
+ /**
+ * @param {!Element} proxyElement
+ * @param {!Range} wordRange
+ * @param {boolean} force
+ * @param {function(!Array.<string>, number=)} completionsReadyCallback
+ */
+ _autocomplete(proxyElement, wordRange, force, completionsReadyCallback) {
+ var completions = wordRange.startOffset === 0 ? [this._delegate.autocomplete(wordRange.toString())] : [];
+ completionsReadyCallback.call(null, completions);
+ this._autocompletedForTests();
+ }
+
+ _autocompletedForTests() {
+ // Sniffed in tests.
+ }
+
+ _filterItems() {
+ delete this._filterTimer;
+ if (this._scoringTimer) {
+ clearTimeout(this._scoringTimer);
+ delete this._scoringTimer;
}
- return new RegExp(regexString, "i");
-};
-WebInspector.FilteredListWidget.prototype = {
- showAsDialog: function()
- {
- this._dialog = new WebInspector.Dialog();
- this._dialog.setMaxSize(new Size(504, 340));
- this._dialog.setPosition(undefined, 22);
- this.show(this._dialog.element);
- this._dialog.show();
- },
+ var query = this._delegate.rewriteQuery(this._value());
+ this._query = query;
+ var filterRegex = query ? WebInspector.FilteredListWidget.filterRegex(query) : null;
- /**
- * @return {string}
- */
- _value: function()
- {
- return this._prompt.text().trim();
- },
-
- willHide: function()
- {
- this._delegate.dispose();
- if (this._filterTimer)
- clearTimeout(this._filterTimer);
- },
+ var oldSelectedAbsoluteIndex =
+ this._selectedIndexInFiltered ? this._filteredItems[this._selectedIndexInFiltered] : null;
+ var filteredItems = [];
+ this._selectedIndexInFiltered = 0;
- /**
- * @param {!Event} event
- */
- _onEnter: function(event)
- {
- event.preventDefault();
- if (!this._delegate.itemCount())
- return;
- var selectedIndex = this._shouldShowMatchingItems() && this._selectedIndexInFiltered < this._filteredItems.length ? this._filteredItems[this._selectedIndexInFiltered] : null;
-
- // Detach dialog before allowing delegate to override focus.
- if (this._dialog)
- this._dialog.detach();
- this._delegate.selectItemWithQuery(selectedIndex, this._value());
- },
-
- _itemsLoaded: function()
- {
-
- if (this._loadTimeout)
- return;
- this._loadTimeout = setTimeout(this._updateAfterItemsLoaded.bind(this), 0);
- },
-
- _updateAfterItemsLoaded: function()
- {
- delete this._loadTimeout;
- this._filterItems();
- },
+ var bestScores = [];
+ var bestItems = [];
+ var bestItemsToCollect = 100;
+ var minBestScore = 0;
+ var overflowItems = [];
- /**
- * @param {number} index
- * @return {!Element}
- */
- _createItemElement: function(index)
- {
- var itemElement = createElement("div");
- itemElement.className = "filtered-list-widget-item " + (this._renderAsTwoRows ? "two-rows" : "one-row");
- itemElement._titleElement = itemElement.createChild("div", "filtered-list-widget-title");
- itemElement._subtitleElement = itemElement.createChild("div", "filtered-list-widget-subtitle");
- itemElement._subtitleElement.textContent = "\u200B";
- itemElement._index = index;
- this._delegate.renderItem(index, this._value(), itemElement._titleElement, itemElement._subtitleElement);
- return itemElement;
- },
+ scoreItems.call(this, 0);
/**
- * @param {string} query
+ * @param {number} a
+ * @param {number} b
+ * @return {number}
*/
- setQuery: function(query)
- {
- this._prompt.setText(query);
- this._prompt.autoCompleteSoon(true);
- this._scheduleFilter();
- },
+ function compareIntegers(a, b) {
+ return b - a;
+ }
/**
- * @param {!Element} proxyElement
- * @param {!Range} wordRange
- * @param {boolean} force
- * @param {function(!Array.<string>, number=)} completionsReadyCallback
+ * @param {number} fromIndex
+ * @this {WebInspector.FilteredListWidget}
*/
- _autocomplete: function(proxyElement, wordRange, force, completionsReadyCallback)
- {
- var completions = wordRange.startOffset === 0 ? [this._delegate.autocomplete(wordRange.toString())] : [];
- completionsReadyCallback.call(null, completions);
- this._autocompletedForTests();
- },
-
- _autocompletedForTests: function()
- {
- // Sniffed in tests.
- },
-
- _filterItems: function()
- {
- delete this._filterTimer;
- if (this._scoringTimer) {
- clearTimeout(this._scoringTimer);
- delete this._scoringTimer;
+ function scoreItems(fromIndex) {
+ var maxWorkItems = 1000;
+ var workDone = 0;
+ for (var i = fromIndex; i < this._delegate.itemCount() && workDone < maxWorkItems; ++i) {
+ // Filter out non-matching items quickly.
+ if (filterRegex && !filterRegex.test(this._delegate.itemKeyAt(i)))
+ continue;
+
+ // Score item.
+ var score = this._delegate.itemScoreAt(i, query);
+ if (query)
+ workDone++;
+
+ // Find its index in the scores array (earlier elements have bigger scores).
+ if (score > minBestScore || bestScores.length < bestItemsToCollect) {
+ var index = bestScores.upperBound(score, compareIntegers);
+ bestScores.splice(index, 0, score);
+ bestItems.splice(index, 0, i);
+ if (bestScores.length > bestItemsToCollect) {
+ // Best list is too large -> drop last elements.
+ overflowItems.push(bestItems.peekLast());
+ bestScores.length = bestItemsToCollect;
+ bestItems.length = bestItemsToCollect;
+ }
+ minBestScore = bestScores.peekLast();
+ } else
+ filteredItems.push(i);
+ }
+
+ // Process everything in chunks.
+ if (i < this._delegate.itemCount()) {
+ this._scoringTimer = setTimeout(scoreItems.bind(this, i), 0);
+ return;
+ }
+ delete this._scoringTimer;
+
+ this._filteredItems = bestItems.concat(overflowItems).concat(filteredItems);
+ for (var i = 0; i < this._filteredItems.length; ++i) {
+ if (this._filteredItems[i] === oldSelectedAbsoluteIndex) {
+ this._selectedIndexInFiltered = i;
+ break;
}
-
- var query = this._delegate.rewriteQuery(this._value());
- this._query = query;
- var filterRegex = query ? WebInspector.FilteredListWidget.filterRegex(query) : null;
-
- var oldSelectedAbsoluteIndex = this._selectedIndexInFiltered ? this._filteredItems[this._selectedIndexInFiltered] : null;
- var filteredItems = [];
+ }
+ this._elements = [];
+ this._viewportControl.refresh();
+ if (!query)
this._selectedIndexInFiltered = 0;
+ this._updateSelection(this._selectedIndexInFiltered, false);
+ }
+ }
- var bestScores = [];
- var bestItems = [];
- var bestItemsToCollect = 100;
- var minBestScore = 0;
- var overflowItems = [];
-
- scoreItems.call(this, 0);
-
- /**
- * @param {number} a
- * @param {number} b
- * @return {number}
- */
- function compareIntegers(a, b)
- {
- return b - a;
- }
-
- /**
- * @param {number} fromIndex
- * @this {WebInspector.FilteredListWidget}
- */
- function scoreItems(fromIndex)
- {
- var maxWorkItems = 1000;
- var workDone = 0;
- for (var i = fromIndex; i < this._delegate.itemCount() && workDone < maxWorkItems; ++i) {
- // Filter out non-matching items quickly.
- if (filterRegex && !filterRegex.test(this._delegate.itemKeyAt(i)))
- continue;
-
- // Score item.
- var score = this._delegate.itemScoreAt(i, query);
- if (query)
- workDone++;
-
- // Find its index in the scores array (earlier elements have bigger scores).
- if (score > minBestScore || bestScores.length < bestItemsToCollect) {
- var index = bestScores.upperBound(score, compareIntegers);
- bestScores.splice(index, 0, score);
- bestItems.splice(index, 0, i);
- if (bestScores.length > bestItemsToCollect) {
- // Best list is too large -> drop last elements.
- overflowItems.push(bestItems.peekLast());
- bestScores.length = bestItemsToCollect;
- bestItems.length = bestItemsToCollect;
- }
- minBestScore = bestScores.peekLast();
- } else
- filteredItems.push(i);
- }
-
- // Process everything in chunks.
- if (i < this._delegate.itemCount()) {
- this._scoringTimer = setTimeout(scoreItems.bind(this, i), 0);
- return;
- }
- delete this._scoringTimer;
-
- this._filteredItems = bestItems.concat(overflowItems).concat(filteredItems);
- for (var i = 0; i < this._filteredItems.length; ++i) {
- if (this._filteredItems[i] === oldSelectedAbsoluteIndex) {
- this._selectedIndexInFiltered = i;
- break;
- }
- }
- this._elements = [];
- this._viewportControl.refresh();
- if (!query)
- this._selectedIndexInFiltered = 0;
- this._updateSelection(this._selectedIndexInFiltered, false);
- }
- },
-
- /**
- * @return {boolean}
- */
- _shouldShowMatchingItems: function()
- {
- return this._delegate.shouldShowMatchingItems(this._value());
- },
-
- _onAutocompleted: function()
- {
- this._prompt.autoCompleteSoon(true);
- this._onInput();
- },
-
- _onInput: function()
- {
- this._updateShowMatchingItems();
- this._scheduleFilter();
- },
-
- _updateShowMatchingItems: function()
- {
- var shouldShowMatchingItems = this._shouldShowMatchingItems();
- this._itemElementsContainer.classList.toggle("hidden", !shouldShowMatchingItems);
- },
-
- /**
- * @return {number}
- */
- _rowsPerViewport: function()
- {
- return Math.floor(this._viewportControl.element.clientHeight / this._rowHeight);
- },
-
- _onKeyDown: function(event)
- {
- var newSelectedIndex = this._selectedIndexInFiltered;
-
- switch (event.keyCode) {
- case WebInspector.KeyboardShortcut.Keys.Down.code:
- if (++newSelectedIndex >= this._filteredItems.length)
- newSelectedIndex = 0;
- this._updateSelection(newSelectedIndex, true);
- event.consume(true);
- break;
- case WebInspector.KeyboardShortcut.Keys.Up.code:
- if (--newSelectedIndex < 0)
- newSelectedIndex = this._filteredItems.length - 1;
- this._updateSelection(newSelectedIndex, false);
- event.consume(true);
- break;
- case WebInspector.KeyboardShortcut.Keys.PageDown.code:
- newSelectedIndex = Math.min(newSelectedIndex + this._rowsPerViewport(), this._filteredItems.length - 1);
- this._updateSelection(newSelectedIndex, true);
- event.consume(true);
- break;
- case WebInspector.KeyboardShortcut.Keys.PageUp.code:
- newSelectedIndex = Math.max(newSelectedIndex - this._rowsPerViewport(), 0);
- this._updateSelection(newSelectedIndex, false);
- event.consume(true);
- break;
- case WebInspector.KeyboardShortcut.Keys.Enter.code:
- this._onEnter(event);
- break;
- default:
- }
- },
-
- _scheduleFilter: function()
- {
- if (this._filterTimer)
- return;
- this._filterTimer = setTimeout(this._filterItems.bind(this), 0);
- },
-
- /**
- * @param {number} index
- * @param {boolean} makeLast
- */
- _updateSelection: function(index, makeLast)
- {
- if (!this._filteredItems.length)
- return;
- if (this._selectedElement)
- this._selectedElement.classList.remove("selected");
- this._viewportControl.scrollItemIntoView(index, makeLast);
- this._selectedIndexInFiltered = index;
- this._selectedElement = this._elements[index];
- if (this._selectedElement)
- this._selectedElement.classList.add("selected");
- },
-
- _onClick: function(event)
- {
- var itemElement = event.target.enclosingNodeOrSelfWithClass("filtered-list-widget-item");
- if (!itemElement)
- return;
-
- // Detach dialog before allowing delegate to override focus.
- if (this._dialog)
- this._dialog.detach();
- this._delegate.selectItemWithQuery(itemElement._index, this._value());
- },
-
- /**
- * @override
- * @return {number}
- */
- itemCount: function()
- {
- return this._filteredItems.length;
- },
+ /**
+ * @return {boolean}
+ */
+ _shouldShowMatchingItems() {
+ return this._delegate.shouldShowMatchingItems(this._value());
+ }
- /**
- * @override
- * @param {number} index
- * @return {number}
- */
- fastItemHeight: function(index)
- {
- if (!this._rowHeight) {
- var delegateIndex = this._filteredItems[index];
- var element = this._createItemElement(delegateIndex);
- this._rowHeight = WebInspector.measurePreferredSize(element, this._itemElementsContainer).height;
- }
- return this._rowHeight;
- },
+ _onAutocompleted() {
+ this._prompt.autoCompleteSoon(true);
+ this._onInput();
+ }
- /**
- * @override
- * @param {number} index
- * @return {!Element}
- */
- itemElement: function(index)
- {
- if (!this._elements[index])
- this._elements[index] = this._createItemElement(this._filteredItems[index]);
- return this._elements[index];
- },
-
- __proto__: WebInspector.VBox.prototype
+ _onInput() {
+ this._updateShowMatchingItems();
+ this._scheduleFilter();
+ }
+
+ _updateShowMatchingItems() {
+ var shouldShowMatchingItems = this._shouldShowMatchingItems();
+ this._itemElementsContainer.classList.toggle('hidden', !shouldShowMatchingItems);
+ }
+
+ /**
+ * @return {number}
+ */
+ _rowsPerViewport() {
+ return Math.floor(this._viewportControl.element.clientHeight / this._rowHeight);
+ }
+
+ _onKeyDown(event) {
+ var newSelectedIndex = this._selectedIndexInFiltered;
+
+ switch (event.keyCode) {
+ case WebInspector.KeyboardShortcut.Keys.Down.code:
+ if (++newSelectedIndex >= this._filteredItems.length)
+ newSelectedIndex = 0;
+ this._updateSelection(newSelectedIndex, true);
+ event.consume(true);
+ break;
+ case WebInspector.KeyboardShortcut.Keys.Up.code:
+ if (--newSelectedIndex < 0)
+ newSelectedIndex = this._filteredItems.length - 1;
+ this._updateSelection(newSelectedIndex, false);
+ event.consume(true);
+ break;
+ case WebInspector.KeyboardShortcut.Keys.PageDown.code:
+ newSelectedIndex = Math.min(newSelectedIndex + this._rowsPerViewport(), this._filteredItems.length - 1);
+ this._updateSelection(newSelectedIndex, true);
+ event.consume(true);
+ break;
+ case WebInspector.KeyboardShortcut.Keys.PageUp.code:
+ newSelectedIndex = Math.max(newSelectedIndex - this._rowsPerViewport(), 0);
+ this._updateSelection(newSelectedIndex, false);
+ event.consume(true);
+ break;
+ case WebInspector.KeyboardShortcut.Keys.Enter.code:
+ this._onEnter(event);
+ break;
+ default:
+ }
+ }
+
+ _scheduleFilter() {
+ if (this._filterTimer)
+ return;
+ this._filterTimer = setTimeout(this._filterItems.bind(this), 0);
+ }
+
+ /**
+ * @param {number} index
+ * @param {boolean} makeLast
+ */
+ _updateSelection(index, makeLast) {
+ if (!this._filteredItems.length)
+ return;
+ if (this._selectedElement)
+ this._selectedElement.classList.remove('selected');
+ this._viewportControl.scrollItemIntoView(index, makeLast);
+ this._selectedIndexInFiltered = index;
+ this._selectedElement = this._elements[index];
+ if (this._selectedElement)
+ this._selectedElement.classList.add('selected');
+ }
+
+ _onClick(event) {
+ var itemElement = event.target.enclosingNodeOrSelfWithClass('filtered-list-widget-item');
+ if (!itemElement)
+ return;
+
+ // Detach dialog before allowing delegate to override focus.
+ if (this._dialog)
+ this._dialog.detach();
+ this._delegate.selectItemWithQuery(itemElement._index, this._value());
+ }
+
+ /**
+ * @override
+ * @return {number}
+ */
+ itemCount() {
+ return this._filteredItems.length;
+ }
+
+ /**
+ * @override
+ * @param {number} index
+ * @return {number}
+ */
+ fastItemHeight(index) {
+ if (!this._rowHeight) {
+ var delegateIndex = this._filteredItems[index];
+ var element = this._createItemElement(delegateIndex);
+ this._rowHeight = WebInspector.measurePreferredSize(element, this._itemElementsContainer).height;
+ }
+ return this._rowHeight;
+ }
+
+ /**
+ * @override
+ * @param {number} index
+ * @return {!Element}
+ */
+ itemElement(index) {
+ if (!this._elements[index])
+ this._elements[index] = this._createItemElement(this._filteredItems[index]);
+ return this._elements[index];
+ }
};
+
/**
- * @constructor
- * @param {!Array<string>} promptHistory
+ * @unrestricted
*/
-WebInspector.FilteredListWidget.Delegate = function(promptHistory)
-{
+WebInspector.FilteredListWidget.Delegate = class {
+ /**
+ * @param {!Array<string>} promptHistory
+ */
+ constructor(promptHistory) {
this._promptHistory = promptHistory;
-};
-
-WebInspector.FilteredListWidget.Delegate.prototype = {
- /**
- * @param {function():void} refreshCallback
- */
- setRefreshCallback: function(refreshCallback)
- {
- this._refreshCallback = refreshCallback;
- },
-
- /**
- * @param {string} query
- * @return {boolean}
- */
- shouldShowMatchingItems: function(query)
- {
- return true;
- },
-
- /**
- * @return {number}
- */
- itemCount: function()
- {
- return 0;
- },
-
- /**
- * @param {number} itemIndex
- * @return {string}
- */
- itemKeyAt: function(itemIndex)
- {
- return "";
- },
-
- /**
- * @param {number} itemIndex
- * @param {string} query
- * @return {number}
- */
- itemScoreAt: function(itemIndex, query)
- {
- return 1;
- },
-
- /**
- * @param {number} itemIndex
- * @param {string} query
- * @param {!Element} titleElement
- * @param {!Element} subtitleElement
- */
- renderItem: function(itemIndex, query, titleElement, subtitleElement)
- {
- },
-
- /**
- * @param {!Element} element
- * @param {string} query
- * @return {boolean}
- */
- highlightRanges: function(element, query)
- {
- if (!query)
- return false;
-
- /**
- * @param {string} text
- * @param {string} query
- * @return {?Array.<!WebInspector.SourceRange>}
- */
- function rangesForMatch(text, query)
- {
- var opcodes = WebInspector.Diff.charDiff(query, text);
- var offset = 0;
- var ranges = [];
- for (var i = 0; i < opcodes.length; ++i) {
- var opcode = opcodes[i];
- if (opcode[0] === WebInspector.Diff.Operation.Equal)
- ranges.push(new WebInspector.SourceRange(offset, opcode[1].length));
- else if (opcode[0] !== WebInspector.Diff.Operation.Insert)
- return null;
- offset += opcode[1].length;
- }
- return ranges;
- }
-
- var text = element.textContent;
- var ranges = rangesForMatch(text, query);
- if (!ranges || !this.caseSensitive())
- ranges = rangesForMatch(text.toUpperCase(), query.toUpperCase());
- if (ranges) {
- WebInspector.highlightRangesWithStyleClass(element, ranges, "highlight");
- return true;
- }
- return false;
- },
-
- /**
- * @return {boolean}
- */
- caseSensitive: function()
- {
- return true;
- },
-
- /**
- * @return {boolean}
- */
- renderMonospace: function()
- {
- return true;
- },
-
- /**
- * @return {boolean}
- */
- renderAsTwoRows: function()
- {
- return false;
- },
-
- /**
- * @param {number} itemIndex
- * @param {string} promptValue
- */
- selectItemWithQuery: function(itemIndex, promptValue)
- {
- this._promptHistory.push(promptValue);
- if (this._promptHistory.length > 100)
- this._promptHistory.shift();
- this.selectItem(itemIndex, promptValue);
- },
-
- /**
- * @param {number} itemIndex
- * @param {string} promptValue
- */
- selectItem: function(itemIndex, promptValue)
- {
- },
-
- refresh: function()
- {
- this._refreshCallback();
- },
+ }
+
+ /**
+ * @param {function():void} refreshCallback
+ */
+ setRefreshCallback(refreshCallback) {
+ this._refreshCallback = refreshCallback;
+ }
+
+ /**
+ * @param {string} query
+ * @return {boolean}
+ */
+ shouldShowMatchingItems(query) {
+ return true;
+ }
+
+ /**
+ * @return {number}
+ */
+ itemCount() {
+ return 0;
+ }
+
+ /**
+ * @param {number} itemIndex
+ * @return {string}
+ */
+ itemKeyAt(itemIndex) {
+ return '';
+ }
+
+ /**
+ * @param {number} itemIndex
+ * @param {string} query
+ * @return {number}
+ */
+ itemScoreAt(itemIndex, query) {
+ return 1;
+ }
+
+ /**
+ * @param {number} itemIndex
+ * @param {string} query
+ * @param {!Element} titleElement
+ * @param {!Element} subtitleElement
+ */
+ renderItem(itemIndex, query, titleElement, subtitleElement) {
+ }
+
+ /**
+ * @param {!Element} element
+ * @param {string} query
+ * @return {boolean}
+ */
+ highlightRanges(element, query) {
+ if (!query)
+ return false;
/**
+ * @param {string} text
* @param {string} query
- * @return {string}
+ * @return {?Array.<!WebInspector.SourceRange>}
*/
- rewriteQuery: function(query)
- {
- return query;
- },
-
- /**
- * @param {string} query
- * @return {string}
- */
- autocomplete: function(query)
- {
- for (var i = this._promptHistory.length - 1; i >= 0; i--) {
- if (this._promptHistory[i] !== query && this._promptHistory[i].startsWith(query))
- return this._promptHistory[i];
- }
- return query;
- },
+ function rangesForMatch(text, query) {
+ var opcodes = WebInspector.Diff.charDiff(query, text);
+ var offset = 0;
+ var ranges = [];
+ for (var i = 0; i < opcodes.length; ++i) {
+ var opcode = opcodes[i];
+ if (opcode[0] === WebInspector.Diff.Operation.Equal)
+ ranges.push(new WebInspector.SourceRange(offset, opcode[1].length));
+ else if (opcode[0] !== WebInspector.Diff.Operation.Insert)
+ return null;
+ offset += opcode[1].length;
+ }
+ return ranges;
+ }
- dispose: function()
- {
+ var text = element.textContent;
+ var ranges = rangesForMatch(text, query);
+ if (!ranges || !this.caseSensitive())
+ ranges = rangesForMatch(text.toUpperCase(), query.toUpperCase());
+ if (ranges) {
+ WebInspector.highlightRangesWithStyleClass(element, ranges, 'highlight');
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * @return {boolean}
+ */
+ caseSensitive() {
+ return true;
+ }
+
+ /**
+ * @return {boolean}
+ */
+ renderMonospace() {
+ return true;
+ }
+
+ /**
+ * @return {boolean}
+ */
+ renderAsTwoRows() {
+ return false;
+ }
+
+ /**
+ * @param {number} itemIndex
+ * @param {string} promptValue
+ */
+ selectItemWithQuery(itemIndex, promptValue) {
+ this._promptHistory.push(promptValue);
+ if (this._promptHistory.length > 100)
+ this._promptHistory.shift();
+ this.selectItem(itemIndex, promptValue);
+ }
+
+ /**
+ * @param {number} itemIndex
+ * @param {string} promptValue
+ */
+ selectItem(itemIndex, promptValue) {
+ }
+
+ refresh() {
+ this._refreshCallback();
+ }
+
+ /**
+ * @param {string} query
+ * @return {string}
+ */
+ rewriteQuery(query) {
+ return query;
+ }
+
+ /**
+ * @param {string} query
+ * @return {string}
+ */
+ autocomplete(query) {
+ for (var i = this._promptHistory.length - 1; i >= 0; i--) {
+ if (this._promptHistory[i] !== query && this._promptHistory[i].startsWith(query))
+ return this._promptHistory[i];
}
+ return query;
+ }
+
+ dispose() {
+ }
};

Powered by Google App Engine
This is Rietveld 408576698