Переработка - VSCode Reason Refmt ломает проект - PullRequest
0 голосов
/ 26 мая 2018

Я выискиваю забавную небольшую ошибку в крошечной повторной обработке тесте: reprocessing01 .

Проект собирается нормально, пока я не внесу изменения и не вызову refmt через vscode, и тогда проект больше не будет компилироваться.

Вот код, который компилируется и прекрасно работает для меня, прежде чем вносить какие-либо изменения.

open Reprocessing;

type stateT = {
  image: imageT,
};

let setup = (env) => {
  Env.size(~width=800, ~height=600, env);
  let image = Draw.loadImage(
    ~filename="assets/Wave_pattern_by_inkelv1122_on_flickr_800w.jpg", 
    ~isPixel=false, env);
  {
    image: image
  }
};

let draw = ({image} as state, env) => {
  Draw.background(Constants.white, env);
  Draw.image(
    image,
    ~pos=(0,0),
    ~width=Env.width(env),
    ~height=Env.height(env),
    env
  );
  state
};

run(~setup, ~draw, ());

Если я открою проект в vscode, внесу изменения, такие как добавление let myvar = 42; вверху и сохранение в триггер refmt, что приведет к этой ошибке:

/Users/myer/dev/react/reasonml-playground/reprocessing01/node_modules/bs-platform/lib/bsc.exe -pp "/Users/myer/dev/react/reasonml-playground/reprocessing01/node_modules/bs-platform/lib/refmt3.exe --print binary"    -bs-super-errors -w -30-40+6+7+27+32..39+44+45+101 -bs-D BSB_BACKEND="bytecode" -nostdlib -I '/Users/myer/dev/react/reasonml-playground/reprocessing01/node_modules/bs-platform/lib/ocaml' -no-alias-deps -color always -c -o src/index.mlast -bs-syntax-only -bs-simple-binary-ast -bs-binary-ast -impl /Users/myer/dev/react/reasonml-playground/reprocessing01/src/index.re
File "/Users/myer/dev/react/reasonml-playground/reprocessing01/src/index.re", line 12, characters 4-5:
Error: 2817: <UNKNOWN SYNTAX ERROR>

Соответствующая строка является последней из этого блока кода:

Draw.loadImage(
  ~filename="assets/Wave_pattern_by_inkelv1122_on_flickr_800w.jpg",
  ~isPixel=false,
  env,
);

После этого единственный выход - вернуть код до изменений, внесенных refmt.

Я подозреваю, что моя версия refmt не синхронизирована с той, которая требуется для bsb-native#2.1.1, но я не уверен, какую установить.У меня есть:

$ refmt --version
Reason 3.0.0 @ bee43b0

Существует ли таблица, показывающая совместимые версии между reason-cli и bs-platform?

Есть ли другие способы, с помощью которых я должен исследовать эту проблему или другие потенциальные основные причины такого поведения?

ОБНОВЛЕНИЕ: мне удалось обновить bsb-native до главной ветки, и она работала при сборке вродной, пока я не добавил еще немного кода в reprocessing02

1 Ответ

0 голосов
/ 23 июня 2018

эта проблема связана с тем, что bsb-native@2.1.1 поставляется со старой версией refmt (до версии 3), которая не может прочитать код, который выводит ваш глобальный refmt (скорее всего, из-за запятых).Я работаю над созданием новой версии 3.2.0 для всех платформ, которая поставляется с последней версией refmt.Если вы работаете в OSX, вы можете попробовать его, просто изменив значение dep на bsansouci/bsb-native#3.2.0, сбросьте нюки node_modules и переустановите.Приносим извинения за неудобства.Я планирую сделать мой цикл выпуска тесно связанным с циклом выпуска BSB.

...