Files
react-native-devtools-frontend/front_end/quick_open/HelpQuickOpen.js
T
Blink Reformat 4c46d0969f The Great Blink mv for source files, part 2.
Move and rename files.

NOAUTOREVERT=true
NOPRESUBMIT=true
NOTREECHECKS=true
Bug: 768828
TBR=darin@chromium.org
NOTRY=true

Change-Id: I66d3b155808bc5bdbf237b80208e1e552bcf7f28
Reviewed-on: https://chromium-review.googlesource.com/1001153
Reviewed-by: Blink Reformat <blink-reformat@chromium.org>
Commit-Queue: Blink Reformat <blink-reformat@chromium.org>
Cr-Original-Commit-Position: refs/heads/master@{#549061}
Cr-Mirrored-From: https://chromium.googlesource.com/chromium/src
Cr-Mirrored-Commit: 0aee4434a4dba42a42abaea9bfbc0cd196a63bc1
2018-04-07 15:32:37 +00:00

79 lines
1.9 KiB
JavaScript

// Copyright 2017 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
QuickOpen.HelpQuickOpen = class extends QuickOpen.FilteredListWidget.Provider {
constructor() {
super();
/** @type {!Array<{prefix: string, title: string}>} */
this._providers = [];
self.runtime.extensions(QuickOpen.FilteredListWidget.Provider).forEach(this._addProvider.bind(this));
}
/**
* @param {!Runtime.Extension} extension
*/
_addProvider(extension) {
if (extension.descriptor()['title'])
this._providers.push({prefix: extension.descriptor()['prefix'], title: extension.descriptor()['title']});
}
/**
* @override
* @return {number}
*/
itemCount() {
return this._providers.length;
}
/**
* @override
* @param {number} itemIndex
* @return {string}
*/
itemKeyAt(itemIndex) {
return this._providers[itemIndex].prefix;
}
/**
* @override
* @param {number} itemIndex
* @param {string} query
* @return {number}
*/
itemScoreAt(itemIndex, query) {
return -this._providers[itemIndex].prefix.length;
}
/**
* @override
* @param {number} itemIndex
* @param {string} query
* @param {!Element} titleElement
* @param {!Element} subtitleElement
*/
renderItem(itemIndex, query, titleElement, subtitleElement) {
const provider = this._providers[itemIndex];
const prefixElement = titleElement.createChild('span', 'monospace');
prefixElement.textContent = (provider.prefix || '\u2026') + ' ';
titleElement.createTextChild(provider.title);
}
/**
* @override
* @param {?number} itemIndex
* @param {string} promptValue
*/
selectItem(itemIndex, promptValue) {
if (itemIndex !== null)
QuickOpen.QuickOpen.show(this._providers[itemIndex].prefix);
}
/**
* @override
* @return {boolean}
*/
renderAsTwoRows() {
return false;
}
};