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

Side by Side Diff: third_party/WebKit/Source/devtools/front_end/quick_open/HelpQuickOpen.js

Issue 2814263002: DevTools: Show a list of availble QuickOpen providers (Closed)
Patch Set: Changes Created 3 years, 8 months 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 unified diff | Download patch
OLDNEW
(Empty)
1 // Copyright 2017 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file.
4 QuickOpen.HelpQuickOpen = class extends QuickOpen.FilteredListWidget.Provider {
5 constructor() {
6 super();
7 /** @type {!Array<{prefix: string, title: string}>} */
8 this._providers = [];
9 self.runtime.extensions(QuickOpen.FilteredListWidget.Provider).forEach(this. _addProvider.bind(this));
10 }
11
12 /**
13 * @param {!Runtime.Extension} extension
14 */
15 _addProvider(extension) {
16 if (extension.descriptor()['title'])
17 this._providers.push({prefix: extension.descriptor()['prefix'], title: ext ension.descriptor()['title']});
18 }
19
20 /**
21 * @override
22 * @return {number}
23 */
24 itemCount() {
25 return this._providers.length;
26 }
27
28 /**
29 * @override
30 * @param {number} itemIndex
31 * @return {string}
32 */
33 itemKeyAt(itemIndex) {
34 return this._providers[itemIndex].prefix;
35 }
36
37 /**
38 * @override
39 * @param {number} itemIndex
40 * @param {string} query
41 * @return {number}
42 */
43 itemScoreAt(itemIndex, query) {
44 return -this._providers[itemIndex].prefix.length;
45 }
46
47 /**
48 * @override
49 * @param {number} itemIndex
50 * @param {string} query
51 * @param {!Element} titleElement
52 * @param {!Element} subtitleElement
53 */
54 renderItem(itemIndex, query, titleElement, subtitleElement) {
55 var provider = this._providers[itemIndex];
56 var prefixElement = titleElement.createChild('span', 'monospace');
57 prefixElement.textContent = (provider.prefix || '\u2026') + ' ';
58 titleElement.createTextChild(provider.title);
59 }
60
61 /**
62 * @override
63 * @param {?number} itemIndex
64 * @param {string} promptValue
65 */
66 selectItem(itemIndex, promptValue) {
67 if (itemIndex !== null)
68 QuickOpen.QuickOpen.show(this._providers[itemIndex].prefix);
69 }
70
71 /**
72 * @override
73 * @return {boolean}
74 */
75 renderAsTwoRows() {
76 return false;
77 }
78 };
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698