Я пишу расширение стиля кода OCaml в VSCode.Я бы правильно отформатировал разделитель :
.
Мой код отлично работает для моего теста, за исключением новой строки
let editor = vscode.window.activeTextEditor;)
// text1 for test azae:aaz azea: zae azeaz :zae eaz: zeazea azeaz :zae
// text2 for test azae:aaz azea: zae azeaz :zae eaz: zeazea azeaz :zae
// text3 for test azae:
// aze
let selection = editor.selection
let text = editor.document.getText(selection)
textreg = text.replace(new RegExp(/(\s|\t)*[\:](\s|\t)*/g,'gi'),": ")
editor.edit(builder => builder.replace(selection, textreg));
Я получаю:
text3 for test azae: // aze
и янадеюсь получить:
text3 for test azae:
// aze
Как я могу это сделать?
Редактировать: Спасибо за комментарий, я понял мою неверную интерпретацию \ s
Чтобы написать мой ожидаемый результат:
text1 for test azae:aaz azea: zae azeaz :zae eaz: zeazea azeaz :zae
text2 for test azae:aaz azea: zae azeaz :zae eaz: zeazea azeaz :zae
text3 for test azae:
aze
должно стать
text1 for test azae: aaz azea: zae azeaz: zae eaz: zeazea azeaz: zae
text2 for test azae: aaz azea: zae azeaz: zae eaz: zeazea azeaz: zae
text3 for test azae:
aze
Как @Yunnosch сказал, что мне нужно \ s без \ n
Я пытаюсь:
textreg = text.replace(new RegExp(/(\s)*[\:]([\s^\n])*/g,''),": ")
но в этом случае
azae:aaz
становится
azae: