CodeMirror - вырезать значение и добавить текст - PullRequest
2 голосов
/ 26 января 2020

Есть ли способ сократить значение по номерам строк? Например, вот текстовая область моего редактора:

initial function () {
  a = '1';
  b = '2';
}

Я буду использовать getRange (), чтобы получить значение внутри начальной функции из редактора, вот что я хочу получить:

a = '1';
b = '2';

Прямо сейчас я хочу добавить текст к каждой строке значения:

let val = cm.getRange({line: 0, ch: 0}, {line: cm.lineCount()-1, ch: 0});
val = 'someText' + val.replace(/\s/g, '');

Я получу что-то вроде этого

someTexta='1';b='2';

Но я хочу это

someTexta = '1';
someTextb = '2';

Есть ли способ в codemirror вырезать значение в массив или что-то еще по строкам?

1 Ответ

1 голос
/ 26 января 2020

Вы можете разбить вашу строку на отдельные строки, используя .split(/\n/). Это даст вам элемент в массиве для каждой строки. Затем вы можете .map() каждую строку в строку с добавленным к ней "someText (только если эта строка действительна - отсюда и проверка line ?). Затем вы можете преобразовать его обратно в строку, используя .join('\n'). Смотрите пример ниже:

let val = ` a = '1';
  b = '2';`;
val = val.split(/\n/).map(line => line ? "someText" +line.trim() : line).join('\n');

console.log(val);
...