Мне нужно удалить все новые / пустые строки и переместить содержимое вверх.
Должна быть возможность нажимать на ввод столько раз, сколько вы хотите, но при вводе первой буквы все новые строки / пробелы Строки должны быть удалены, а содержимое перемещено вверх.
Цель: Одна строка слова или предложения без пустых строк.
Пример:
- Слово 1
- Слово 2
- Новая строка / пустая строка
- Новая строка / пустая строка
- Слово 3
- Слово 4
- Новая строка / пустая строка
Но при наборе нового текста в новой строке это должно быть:
- Слово 1
- Слово 2
- Слово 3
- Слово 4
Надеюсь, это имеет смысл :)
Есть ли способ сделать это с помощью редактора туза?
Мой текущий код:
<div id="editor"></div>
Это то, что я попробовал, это работает, но не совсем, если я делаю пустые строки в середине содержимого, которое оно отправляет понять, что это нужно переместите содержимое вверх, и то же самое с вставкой содержимого.
Вот мой сценарий:
var editor = ace.edit("editor");
$("#position-add-words").click(function () {
editor.setOptions({
autoScrollEditorIntoView: true,
copyWithEmptySelection: true,
});
editor.setTheme("ace/theme/monokai");
editor.session.setMode("ace/mode/javascript");
$('#keywordModalNew').modal('show');
editor.resize()
});
var lastLineWithText = '';
var lastLineWithoutText = '';
var copyPaste = false;
editor.on("paste", function(e) {
copyPaste = true;
oldValue = editor.getValue()
text = e.text.replace(/((\r\n|\r|\n){1})(\r\n|\r|\n)+/gm, "\n");
//text = text.replace(/\r?\n?[^\r\n]*$/, "");
editor.session.insert(editor.getCursorPosition(), text)
currentValue = editor.getValue();
newValue = currentValue.replace(/((\r\n|\r|\n){1})(\r\n|\r|\n)+/gm, "\n");
editor.setValue("")
editor.session.insert(editor.getCursorPosition(), newValue)
});
editor.session.on('change', function(delta) {
selectionRange = editor.getSelectionRange();
startLine = selectionRange.start.row;
endLine = selectionRange.end.row;
wholelinetxt = editor.session.getLine(startLine);
startLine = startLine + 1;
endLine = endLine + 1;
if(wholelinetxt.length > 0){
if(copyPaste == false){
if(lastLineWithoutText > lastLineWithText){
editor.session.replace(new ace.Range(lastLineWithText, 0, lastLineWithoutText, 0), '');
editor.navigateLineEnd();
}
}
lastLineWithText = startLine;
} else {
copyPaste = false;
lastLineWithoutText = startLine;
}
});