Skip to main content

Prerequisites

  • Java 17 SDK
  • sbt version >= 1.6.2

Dưới đây là hướng dẫn cài đặt các công cụ trên bằng sdkman, ngoài ra bạn cũng có thể tự tải xuồng dùng homebrew trên Mac hoặc apt trên Linux.

sdkman

sdkman là công cụ all-in-one cho phép thiết lập và quản lý phiên bản của nhiều sdk. Cài đặt tại https://sdkman.io/install

java sdk

$ sdk install java 17.0.2-oracle

sbt

$ sdk install sbt 1.6.1

Development

IDE

Sử dụng Intelij + Scala plugin hoặc VSCode/Vim + Metals.

Linting

$ sbt prepare

Test

$ sbt test

Build

$ sbt build

Test một file duy nhất (ví dụ: ScannerTest.scala):

$ sbt "testOnly *ScannerTest"

Compile

$ sbt compile

Run

Jvm

$ sbt cliJVM/run

Javascript

$ sbt cliJS/fastLinkJS
# Scala version 3.1.2. Có thể phải update Scala version nếu cần.
$ node ./cli/js/target/scala-3.1.2/cli-fastopt/main.js

(Optional) Build faster with bloop

bloop là ứng dụng chạy nền có nhiệm vụ tối ưu quá trình build cho IDE, build tool hay script.

Cài đặt bloop tại https://scalacenter.github.io/bloop/setup#sbt.

Sau khi cài đặt hoàn tất, bật bloop server bằng lệnh:

$ bloop server
Attempting a connection to the server...
Resolving ch.epfl.scala:bloop-frontend_2.12:1.4.12...
Starting bloop server at 127.0.0.1:8212...

Tại đường dẫn của project, xuất build từ sbt đến bloop:

$ sbt bloopInstall
...
[success] Generated .bloop/root.json
[success] Generated .bloop/compiler.json
[success] Generated .bloop/root-test.json
[success] Generated .bloop/compiler-test.json
[success] Total time: 2 s, completed Jan 22, 2022, 1:47:58 PM

Lấy danh sách projects:

$ bloop projects
compiler
compiler-test
root
root-test

Compile:

$ bloop compile root

Test:

$ bloop test root

Test một file duy nhất:

$ bloop test compilerJVM -o grox.ScannerTest

Docusaurus

Trang Grox được build bằng Docusaurus V2

Để thêm 1 nội dung mới trên trang Grox, bạn sẽ phải tạo 1 nội dung markdown trong thư mục docs.

Nếu nội dung mới cần hiển thị ở Sidebar, bạn cần chỉnh sửa file website/sidebars.js

Test locally:

sbt --client docs/mdoc
cd website
yarn install
yarn start