flowchart LR
L["language id<br>\"moonbit\""] -->|register / encode_language_id| N["Int (0-255)"]
N -->|"low 8 bits of<br>token metadata"| M["viewer/common/tokens<br>packed UInt"]///|
test "the process codec contains the built-in language ids" {
let codec = @services.language_id_codec
debug_inspect(
["null", "plaintext", "moonbit", "javascript", "typescript", "json"].map(name => {
(name, codec.encode_language_id(name))
}),
content=(
#|[
#| ("null", 0),
#| ("plaintext", 1),
#| ("moonbit", 2),
#| ("javascript", 3),
#| ("typescript", 4),
#| ("json", 5),
#|]
),
)
}///|
let rust_id = @services.language_id_codec.register("rust")moon test --target js viewer/common/servicestype LanguageIdCodecimpl Debug for LanguageIdCodecInstall
Download zipReadonly MoonBit code viewer harness inspired by Monaco and CodeMirror.