skoder
@skoder
web программист

Как в JetBrains idea плагине выполнить в командную строку с аргументом состоящим из нескольких строк?

Доброго времени. Пишу свой линтер для кастомного языка. Линтер написан на JS, а плагин для IDE общается с ним через командную строку.
Сперва я отправлял в линтер только путь файла, но потом выяснилось чт IDE сохраняет файл не сразу, и то что было в редакторе, не всегда соответствовало тому, что есть в файле.
Я решил отправлять в линтер содержимое файла в момент редактирования из редактора.
Примерно так
import com.intellij.execution.configurations.GeneralCommandLine;
...
GeneralCommandLine commandLine = new GeneralCommandLine();
commandLine.withCharset(StandardCharsets.UTF_8)
                .setWorkDirectory(cwd);

commandLine.setExePath(StylusLinterExe);
commandLine.addParameter(file);

if (StringUtils.isNotEmpty(content)) {
    commandLine.addParameter("--content");
    commandLine.addParameter(content);
}

Это отлично работает на маке, но в widows в параметр content попадает только одна строчка - самая первая.
Нужно как-то экранировать переносы строк.
Дело в том что Java я не силен. Подскажите пожалуйста. На ум пришло только заменить все переносы на какую-то последовательность символов а на js заменить обратно, но это такое себе решение.
  • Вопрос задан
  • 121 просмотр
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы