| Index: third_party/WebKit/Source/devtools/front_end/snippets/SnippetsQuickOpen.js
|
| diff --git a/third_party/WebKit/Source/devtools/front_end/snippets/SnippetsQuickOpen.js b/third_party/WebKit/Source/devtools/front_end/snippets/SnippetsQuickOpen.js
|
| new file mode 100644
|
| index 0000000000000000000000000000000000000000..3cf8ed9b2b713ea38fe5d88fcff443aaba3f6bbd
|
| --- /dev/null
|
| +++ b/third_party/WebKit/Source/devtools/front_end/snippets/SnippetsQuickOpen.js
|
| @@ -0,0 +1,77 @@
|
| +// 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.
|
| +
|
| +Snippets.SnippetsQuickOpen = class extends QuickOpen.FilteredListWidget.Provider {
|
| + constructor() {
|
| + super();
|
| + /** @type {!Array<!Workspace.UISourceCode>} */
|
| + this._snippets = [];
|
| + }
|
| + /**
|
| + * @override
|
| + * @param {?number} itemIndex
|
| + * @param {string} promptValue
|
| + */
|
| + selectItem(itemIndex, promptValue) {
|
| + if (itemIndex === null)
|
| + return;
|
| + var currentExecutionContext = UI.context.flavor(SDK.ExecutionContext);
|
| + if (currentExecutionContext)
|
| + Snippets.scriptSnippetModel.evaluateScriptSnippet(currentExecutionContext, this._snippets[itemIndex]);
|
| + }
|
| +
|
| + /**
|
| + * @override
|
| + * @param {string} query
|
| + * @return {string}
|
| + */
|
| + notFoundText(query) {
|
| + return Common.UIString('No snippets found.');
|
| + }
|
| +
|
| + /**
|
| + * @override
|
| + */
|
| + attach() {
|
| + this._snippets = Snippets.scriptSnippetModel.project().uiSourceCodes();
|
| + }
|
| +
|
| + /**
|
| + * @override
|
| + */
|
| + detach() {
|
| + this._snippets = [];
|
| + }
|
| +
|
| +
|
| + /**
|
| + * @override
|
| + * @return {number}
|
| + */
|
| + itemCount() {
|
| + return this._snippets.length;
|
| + }
|
| +
|
| + /**
|
| + * @override
|
| + * @param {number} itemIndex
|
| + * @return {string}
|
| + */
|
| + itemKeyAt(itemIndex) {
|
| + return this._snippets[itemIndex].name();
|
| + }
|
| +
|
| + /**
|
| + * @override
|
| + * @param {number} itemIndex
|
| + * @param {string} query
|
| + * @param {!Element} titleElement
|
| + * @param {!Element} subtitleElement
|
| + */
|
| + renderItem(itemIndex, query, titleElement, subtitleElement) {
|
| + titleElement.textContent = this._snippets[itemIndex].name();
|
| + titleElement.classList.add('monospace');
|
| + QuickOpen.FilteredListWidget.highlightRanges(titleElement, query, true);
|
| + }
|
| +};
|
|
|