自动完成第一行不应处于活动状态
Autocomplete first line shouldn't be active
我仍在致力于自动完成集成并发现了奇怪的行为。当我开始输入内容并显示自动完成弹出窗口时,我无法使用 'Enter' 移动到下一行,因为自动完成中的第一行始终处于活动状态。我怎样才能禁用它?
外观如下:
我只想在第五行留下'ace'字,然后用'enter'转到第6行,但不能。
这是我在 ext-language_tools.js 中所做的更改:
改为假
this.autoSelect = false; // changed from true
popup.setData = function(list) {
popup.setValue(lang.stringRepeat("\n", list.length), -1);
popup.data = list || [];
popup.setRow(-1); // changed from 0
};
并添加附加条件:
popup.setRow = function (line) {
if (line == -1) // added
{
popup.selection.clearSelection();
selectionMarker.start.row = selectionMarker.end.row = line;
popup.session._emit("changeBackMarker");
popup.moveCursorTo(line, 0);
if (popup.isOpen)
popup._signal("select");
} else {
line = Math.max(0, Math.min(this.data.length, line));
if (selectionMarker.start.row != line) {
popup.selection.clearSelection();
selectionMarker.start.row = selectionMarker.end.row = line || 0;
popup.session._emit("changeBackMarker");
popup.moveCursorTo(line || 0, 0);
if (popup.isOpen)
popup._signal("select");
}
};
};
我仍在致力于自动完成集成并发现了奇怪的行为。当我开始输入内容并显示自动完成弹出窗口时,我无法使用 'Enter' 移动到下一行,因为自动完成中的第一行始终处于活动状态。我怎样才能禁用它?
外观如下:
我只想在第五行留下'ace'字,然后用'enter'转到第6行,但不能。
这是我在 ext-language_tools.js 中所做的更改:
改为假
this.autoSelect = false; // changed from true
popup.setData = function(list) {
popup.setValue(lang.stringRepeat("\n", list.length), -1);
popup.data = list || [];
popup.setRow(-1); // changed from 0
};
并添加附加条件:
popup.setRow = function (line) {
if (line == -1) // added
{
popup.selection.clearSelection();
selectionMarker.start.row = selectionMarker.end.row = line;
popup.session._emit("changeBackMarker");
popup.moveCursorTo(line, 0);
if (popup.isOpen)
popup._signal("select");
} else {
line = Math.max(0, Math.min(this.data.length, line));
if (selectionMarker.start.row != line) {
popup.selection.clearSelection();
selectionMarker.start.row = selectionMarker.end.row = line || 0;
popup.session._emit("changeBackMarker");
popup.moveCursorTo(line || 0, 0);
if (popup.isOpen)
popup._signal("select");
}
};
};