UNPKG

@yuebai008/cli

Version:

Command line interface for rapid qg-minigame development

1 lines 1.61 kB
import*as i18n from"../../core/i18n/i18n.js";import*as QuickOpen from"../../ui/legacy/components/quick_open/quick_open.js";import{evaluateScriptSnippet,findSnippetsProject}from"./ScriptSnippetFileSystem.js";const UIStrings={noSnippetsFound:"No snippets found.",run:"Run",snippet:"Snippet"},str_=i18n.i18n.registerUIStrings("panels/snippets/SnippetsQuickOpen.ts",UIStrings),i18nString=i18n.i18n.getLocalizedString.bind(void 0,str_),i18nLazyString=i18n.i18n.getLazilyComputedLocalizedString.bind(void 0,str_);let snippetsQuickOpenInstance;export class SnippetsQuickOpen extends QuickOpen.FilteredListWidget.Provider{snippets;constructor(){super(),this.snippets=[]}static instance(e={forceNew:null}){const{forceNew:t}=e;return snippetsQuickOpenInstance&&!t||(snippetsQuickOpenInstance=new SnippetsQuickOpen),snippetsQuickOpenInstance}selectItem(e,t){null!==e&&evaluateScriptSnippet(this.snippets[e])}notFoundText(e){return i18nString(UIStrings.noSnippetsFound)}attach(){this.snippets=[...findSnippetsProject().uiSourceCodes()]}detach(){this.snippets=[]}itemScoreAt(e,t){return t.length/this.snippets[e].name().length}itemCount(){return this.snippets.length}itemKeyAt(e){return this.snippets[e].name()}renderItem(e,t,i,n){i.textContent=this.snippets[e].name(),i.classList.add("monospace"),QuickOpen.FilteredListWidget.FilteredListWidget.highlightRanges(i,t,!0)}}QuickOpen.FilteredListWidget.registerProvider({prefix:"!",iconName:"exclamation",iconWidth:"20px",provider:()=>Promise.resolve(SnippetsQuickOpen.instance()),titlePrefix:i18nLazyString(UIStrings.run),titleSuggestion:i18nLazyString(UIStrings.snippet)});