0
我想讓ACE編輯器自動完成一系列顏色。王牌編輯器autocomplete color.red
理想情況下,我希望它的顏色不會出現在自動完成中,除非用戶只有類型colors.
。
如何在返回顏色列表之前檢查用戶是否剛輸入colors.
?
我想讓ACE編輯器自動完成一系列顏色。王牌編輯器autocomplete color.red
理想情況下,我希望它的顏色不會出現在自動完成中,除非用戶只有類型colors.
。
如何在返回顏色列表之前檢查用戶是否剛輸入colors.
?
您可以使用拼接獲得最後輸入的關鍵字,並檢查天氣用戶已經輸入的顏色或顏色:
var pos = editor.selection.getCursor();
var session = editor.session;
var curLine = session.getDocument().getLine(pos.row);
var curTokens = curLine.slice(0, pos.column).split(/\s+/);
var curCmd = curTokens[0];
if (!curCmd) return;
var lastToken = curTokens[curTokens.length - 1];
if (lastToken === "colors" || (lastToken.indexOf("colors") > -1) || lastToken === "Colors" || (lastToken.indexOf("Colors") > -1)) {
console.log("Colors found");
} else {
console.log("Colors not found");
}
有關自動完成「」你可以綁定'。'並基於它自動完成。然後我們可以看到用戶是否輸入了「顏色」。
editor.commands.addCommand({
name: "binddot",
bindKey: { win: ".", mac: "." },
exec: function() {
var pos = editor.selection.getCursor();
var session = editor.session;
var curLine = session.getDocument().getLine(pos.row);
var curTokens = curLine.slice(0, pos.column).split(/\s+/);
var curCmd = curTokens[0];
if (!curCmd) return;
var lastToken = curTokens[curTokens.length - 1];
var filterValue = editor.session.getValue();
if (filterValue === "") {
editor.insert(".");
}
if (lastToken === "colors" || (lastToken.indexOf("colors") > -1) || lastToken === "Colors" || (lastToken.indexOf("Colors") > -1)) {
console.log("colors. triggered")
}
}
});
很酷的這個作品非常棒。我設法讓顏色只在最後一個標記是顏色時纔會出現。 有沒有什麼辦法可以在你輸入時顯示出來。而不是當你鍵入.r例如? – rabbitt
你能檢查我發佈的其他答案嗎?它應該在這種情況下幫助你 –