Используя vs code, как заставить формат scala работать и отформатировать мой код?
У меня есть плагин формата scala в моем репозитории sbt для нескольких проектов.
addSbtPlugin("org.scalameta" % "sbt-scalafmt" % "2.3.2")
Итак, в консоли sbt, если я запускаю scalafmt, он отлично работает
В моем build.sbt есть:
scalafmtOnCompile := true
Если я компилирую ~ в sbt или просто компилирую вручную, это не форматирует мой код во время компиляции.
Что не так с моей настройкой?
Кроме того, работает scalafmt, но он не форматирует мои файлы.scala в / project, как мой файл Dependencies.scala. Почему он игнорирует эти файлы?
Я также использую VS Code с металлами в качестве IDE.
2 ответа
Похоже, что Scalafmt работает в VSC с металлами прямо из коробки на моей машине
Metals автоматически использует Scalafmt для ответа на запросы форматирования от редактора в соответствии с конфигурацией, определенной в
.scalafmt.conf
... если нет.scalafmt.conf
, получив первый запрос форматирования, Metals создаст для вас файл.scalafmt.conf.
Просто выполнить Format Document
команда от Command Palette
в VSC, и он должен быть отформатирован в соответствии с .scalafmt.conf.
Если вы хотите непрерывно форматировать и компилировать при каждом изменении источника и scalafmtOnCompile
не работает, попробуйте выполнить в sbt
~scalafmt;compile
однако форматирование при компиляции не рекомендуется в соответствии с документацией
Этот вариант не рекомендуется, поскольку он портит буферы отмены в редакторе и замедляет компиляцию. Вместо этого в редакторе рекомендуется использовать "форматировать при сохранении".
В VS Code, если вы зайдете в File -> Preferences -> Settings и наберете editor.format, вы увидите множество опций. Включите их все, и металлы должны применить все изменения соответственно.