CLI and tooling overview
Draton treats tooling as part of the language, not as an afterthought. The drat binary is the operational front door for the early Draton experience.
Core commands
The current official tooling suite includes:
drat builddrat rundrat fmtdrat lintdrat taskdrat lsp
Build and run
Use drat build to compile a file or project:
drat build examples/hello.dt -o hello
Use drat run to compile and run in one step:
drat run examples/hello.dt
Strict syntax mode is available when you need the canonical surface enforced:
drat build --strict-syntax examples/hello.dt
Format and lint
The formatter and linter are part of the first-party CLI:
drat fmt --check examples/hello.dt
drat lint examples
They are expected to reinforce canonical syntax and repo rules rather than invent new stylistic directions.
Task runner
drat task gives Draton projects a structured task surface:
drat task
drat task build
The goal is to reduce ad-hoc project scripting and make the project workflow inspectable.
Language server
drat lsp exposes diagnostics and editor-facing features through the existing Rust frontend:
drat lsp
The LSP path is built to reuse parser/typechecker knowledge rather than invent a disconnected analysis layer.
Tooling and language philosophy
Draton’s tooling design follows the same philosophy as the language:
- one canonical syntax lane
- explicit behavior
- strong docs/runtime/tool alignment
- clear boundaries between implementation truth and compatibility support