From 34080197f7761254e0c9844eddbc27e433f3aa99 Mon Sep 17 00:00:00 2001 From: ckcz123 Date: Fri, 19 Jun 2020 11:23:18 +0800 Subject: [PATCH] =?UTF-8?q?blockly=E8=87=AA=E5=8A=A8=E8=A1=A5=E5=85=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- _server/editor_blockly.js | 33 +++++++++++++++++++++++++++++++-- 1 file changed, 31 insertions(+), 2 deletions(-) diff --git a/_server/editor_blockly.js b/_server/editor_blockly.js index c7eeb123..15d26ef0 100644 --- a/_server/editor_blockly.js +++ b/_server/editor_blockly.js @@ -487,7 +487,7 @@ editor_blockly = function () { }); } - editor_blockly.getAutoCompletions = function (content, type, name) { + editor_blockly.getAutoCompletions = function (content, type, name, pb) { // --- content为当前框中输入内容;将返回一个列表,为后续所有可补全内容 // console.log(type, name); @@ -598,6 +598,35 @@ editor_blockly = function () { }).sort(); } + // 提供 IdText_0 的补全 + if (type == 'idIdList_e' && name == 'IdText_0') { + var list = []; + switch (pb.getFieldValue('Id_List_0')) { + case 'status': + list = Object.keys(core.status.hero); + if (MotaActionFunctions && replaceCheckbox.checked) { + list = MotaActionFunctions.pattern.replaceStatusList.map(function (v) { + return v[1]; + }).concat(list); + } + break; + case 'item': + list = Object.keys(core.material.items); + if (MotaActionFunctions && replaceCheckbox.checked) { + list = MotaActionFunctions.pattern.replaceItemList.map(function (v) { + return v[1]; + }).concat(list); + } + break; + case 'flag': + list = Object.keys(editor.used_flags || {}); + break; + } + return list.filter(function (one) { + return one != content && one.startsWith(content); + }).sort(); + } + var namesObj={}; namesObj.allIds = ["this"].concat(core.getAllIconIds()); @@ -785,7 +814,7 @@ editor_blockly = function () { } } - var list = editor_blockly.getAutoCompletions(value, pb.type, self.name); + var list = editor_blockly.getAutoCompletions(value, pb.type, self.name, pb); awesomplete.list = list; var caretPosition = getCaretCoordinates(htmlInput, htmlInput.selectionStart);