OLD | NEW |
---|---|
(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 InspectorFrontendHost.openInNewTab( | |
einbinder
2017/04/12 21:37:50
I'm not sure how I feel about this, but it was eas
pfeldman
2017/04/13 00:30:51
Don't do that, just the line 72?
einbinder
2017/04/13 01:22:24
Done.
| |
69 'https://developers.google.com/s/results/?q=' + encodeURIComponent(pro mptValue) + '&p=%2Fweb%2F'); | |
70 return; | |
71 } | |
72 QuickOpen.QuickOpen.show(this._providers[itemIndex].prefix); | |
73 } | |
74 | |
75 /** | |
76 * @override | |
77 * @param {string} query | |
78 * @return {string} | |
79 */ | |
80 notFoundText(query) { | |
81 return Common.UIString('Search for %s.', query); | |
82 } | |
83 | |
84 /** | |
85 * @override | |
86 * @return {boolean} | |
87 */ | |
88 renderAsTwoRows() { | |
89 return false; | |
90 } | |
91 }; | |
OLD | NEW |