blockly auto complete
This commit is contained in:
parent
3b3195b9d4
commit
224f7031cc
@ -805,7 +805,7 @@ function omitedcheckUpdateFunction(event) {
|
|||||||
var index = content.lastIndexOf(":");
|
var index = content.lastIndexOf(":");
|
||||||
if (index >= 0) {
|
if (index >= 0) {
|
||||||
var before = content.substring(0, index), token = content.substring(index+1);
|
var before = content.substring(0, index), token = content.substring(index+1);
|
||||||
if (/^\w*$/.test(token)) {
|
if (/^[a-zA-Z0-9_\u4E00-\u9FCC]*$/.test(token)) {
|
||||||
if (before.endsWith("status")) {
|
if (before.endsWith("status")) {
|
||||||
return Object.keys(core.status.hero).filter(function (one) {
|
return Object.keys(core.status.hero).filter(function (one) {
|
||||||
return one != token && one.startsWith(token);
|
return one != token && one.startsWith(token);
|
||||||
@ -850,6 +850,7 @@ function omitedcheckUpdateFunction(event) {
|
|||||||
return [];
|
return [];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
editor_blockly.completeItems = [];
|
||||||
return editor_blockly;
|
return editor_blockly;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -939,14 +940,22 @@ Blockly.FieldTextInput.prototype.showInlineEditor_ = function(quietInput) {
|
|||||||
var awesomplete = new Awesomplete(htmlInput, {
|
var awesomplete = new Awesomplete(htmlInput, {
|
||||||
minChars: 4,
|
minChars: 4,
|
||||||
maxItems: 12,
|
maxItems: 12,
|
||||||
|
autoFirst: true,
|
||||||
replace: function (text) {
|
replace: function (text) {
|
||||||
|
text = text.toString();
|
||||||
var value = this.input.value, index = this.input.selectionEnd;
|
var value = this.input.value, index = this.input.selectionEnd;
|
||||||
if (index == null) index = value.length;
|
if (index == null) index = value.length;
|
||||||
|
if (index < awesomplete.prefix.length) index = awesomplete.prefix.length;
|
||||||
var str = value.substring(0, index - awesomplete.prefix.length) + text + value.substring(index);
|
var str = value.substring(0, index - awesomplete.prefix.length) + text + value.substring(index);
|
||||||
this.input.value = str;
|
this.input.value = str;
|
||||||
pb.setFieldValue(str, self.name);
|
pb.setFieldValue(str, self.name);
|
||||||
index += text.length - awesomplete.prefix.length;
|
index += text.length - awesomplete.prefix.length;
|
||||||
this.input.setSelectionRange(index, index);
|
this.input.setSelectionRange(index, index);
|
||||||
|
|
||||||
|
editor_blockly.completeItems = editor_blockly.completeItems.filter(function (x) {
|
||||||
|
return x != text;
|
||||||
|
});
|
||||||
|
editor_blockly.completeItems.unshift(text);
|
||||||
},
|
},
|
||||||
filter: function () {return true;},
|
filter: function () {return true;},
|
||||||
item: function (text, input) {
|
item: function (text, input) {
|
||||||
@ -957,6 +966,15 @@ Blockly.FieldTextInput.prototype.showInlineEditor_ = function(quietInput) {
|
|||||||
if (input != "") text = text.replace(new RegExp("^"+input, "i"), "<mark>$&</mark>");
|
if (input != "") text = text.replace(new RegExp("^"+input, "i"), "<mark>$&</mark>");
|
||||||
li.innerHTML = text;
|
li.innerHTML = text;
|
||||||
return li;
|
return li;
|
||||||
|
},
|
||||||
|
sort: function (a, b) {
|
||||||
|
a = a.toString(); b = b.toString();
|
||||||
|
var ia = editor_blockly.completeItems.indexOf(a), ib = editor_blockly.completeItems.indexOf(b);
|
||||||
|
if (ia < 0) ia = editor_blockly.completeItems.length;
|
||||||
|
if (ib < 0) ib = editor_blockly.completeItems.length;
|
||||||
|
if (ia != ib) return ia - ib;
|
||||||
|
if (a.length != b.length) return a.length - b.length;
|
||||||
|
return a < b ? -1 : 1;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
@ -968,7 +986,7 @@ Blockly.FieldTextInput.prototype.showInlineEditor_ = function(quietInput) {
|
|||||||
awesomplete.prefix = "";
|
awesomplete.prefix = "";
|
||||||
for (var i = index - 1; i>=0; i--) {
|
for (var i = index - 1; i>=0; i--) {
|
||||||
var c = value.charAt(i);
|
var c = value.charAt(i);
|
||||||
if (!/^\w$/.test(c)) {
|
if (!/^[a-zA-Z0-9_\u4E00-\u9FCC]$/.test(c)) {
|
||||||
awesomplete.prefix = value.substring(i+1);
|
awesomplete.prefix = value.substring(i+1);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
1
_server/thirdparty/awesomplete.css
vendored
1
_server/thirdparty/awesomplete.css
vendored
@ -76,6 +76,7 @@
|
|||||||
position: relative;
|
position: relative;
|
||||||
padding: .2em .5em;
|
padding: .2em .5em;
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
|
word-break: keep-all;
|
||||||
}
|
}
|
||||||
|
|
||||||
.awesomplete > ul > li:hover {
|
.awesomplete > ul > li:hover {
|
||||||
|
|||||||
@ -152,7 +152,7 @@
|
|||||||
<div id='inputDiv'>
|
<div id='inputDiv'>
|
||||||
<div id='inputDialog'>
|
<div id='inputDialog'>
|
||||||
<p id="inputMessage">请输入文字...</p>
|
<p id="inputMessage">请输入文字...</p>
|
||||||
<input id='inputBox' type="text"/>
|
<input id='inputBox' type="text" autocomplete="off"/>
|
||||||
<button id='inputYes'>确定</button>
|
<button id='inputYes'>确定</button>
|
||||||
<button id='inputNo'>取消</button>
|
<button id='inputNo'>取消</button>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user