跳到主要內容

arc dsl

arc dsl 校驗、檢查、格式化、生成、檢視 AUP DSL 相關的產物,pages/layout.aup 這類檔案用的就是這套語言。

arc dsl 處理 AUP DSL,.aup 檔案(比如頁面的 layout.aup)用的宣告式語言。除了 lsp,每個子命令都接受一個路徑(一個 .aup 檔案或者一個 blocklet 目錄),不填預設當前目錄。

對照版本:arc 2.0.0-beta.50(commit a99fb2c37,main,2026-09-11)。複製 dump 前先跑 arc --version;釘住命令面的是 commit。

bash
arc dsl <subcommand> [path] [options]

全域選項(見 總覽):--json--view--instance / -i(作用在哪個本地 ARC 例項;省略即 default),以及 --home(例項根;要指定作用在哪個例項,用 --instance)。

arc dsl lint

檢查 DSL 格式和語義有效性。這是這個儲存庫自己合併門裡跑的四項檢查之一。

用法

bash
arc dsl lint [path] [options]
  • --fix:lint 之前先應用所有安全的修復
  • --fix-format:用規範格式重寫 DSL 原始檔
  • --fix-ids:從頁面 DSL 原始檔裡移除沒被引用的顯式 id
  • --fix-locales:清理 DSL 原始檔裡沒引用到的 locale JSON key

arc dsl validate

校驗一個 .aup 檔案或 blocklet 目錄。合併門四項檢查裡的第二項。

bash
arc dsl validate [path]

示例

bash
$ arc dsl validate
Passed DSL validation
  path: /path/to/your/blocklet
  files: 368
Next: arc blocklet build /path/to/your/blocklet

成功時會列印一個 Next: 提示指向下一步該跑的命令(arc blocklet build);失敗時每條問題按 ERROR <rule> path:line:col: message 的格式報出來。dsl 的子命令裡只有這一個會列印 Next: 提示——lintformatgeneratedecompiledoctormigrate-i18n 都不會。

arc dsl schema

列印 AUP DSL 的語言 schema 和 primitive 後設資料。

bash
arc dsl schema [path]

示例

bash
$ arc dsl schema
Passed DSL schema
  path: /path/to/your/blocklet
  root: /path/to/your/blocklet
  primitives: 63
  aliases: 12
  snippets: 4
  files: 0

這幾個數字是按專案算的:一個自己定義了 primitive(通過 .scaffold/*.dsl)的 blocklet,primitives 數字會比一個普通 blocklet 高,而內建的那部分總數也會隨著 DSL 語言在各個版本里新增 primitive 而變化——想看當前的準確數字,直接跑一次命令,不要把這裡的任何固定數字當成一直不變的事實。

arc dsl format

格式化頁面 .aup 檔案。

用法

bash
arc dsl format [path] [options]
  • --check:如果格式化會改動檔案就失敗退出
  • --write:原地重寫檔案

arc dsl generate

app.aup 生成 app.json 和頁面 JSON 產物。

用法

bash
arc dsl generate [path] [options]
  • --check:如果生成的產物會變化就失敗退出
  • --write:原地重寫生成的產物

全新的 minimal-app 腳手架零修改時,--check 目前以 5 退出(.aup/app.json.aup/pages/agent.json.aup/pages/home.json.aup/wrapper.json 上的 generated_changed)。完整檢查鏈見 arc blocklet create

arc dsl decompile

把生成的 AUP JSON 產物反編譯回 AUP DSL 原始檔,是 generate 的反方向。

用法

bash
arc dsl decompile [path] [options]
  • --check:如果反編譯出的 DSL 會改動檔案就失敗退出
  • --write:原地重寫反編譯出的 DSL 檔案
  • --partial:能反編譯的部分照寫,缺失的頁面產物降級成警告而不是直接失敗

arc dsl doctor

把 decompile、format、regenerate-check、validate 一起跑一遍,一條命令檢查 DSL 產物的健康狀態。

用法

bash
arc dsl doctor [path] [options]
  • --check:如果 doctor 會改動檔案就失敗退出
  • --write:驗證前先原地重寫反編譯出的 DSL 檔案

同一份零修改的 minimal-app 腳手架上,arc dsl doctor 目前以 5 退出(decompile step: failed (0 files, 0 changed))。完整記錄見 arc blocklet create 下的檢查鏈。

arc dsl migrate-i18n

把精確匹配的 $t(page.key) 字串挪進頁面本地的內聯 i18n 塊。

用法

bash
arc dsl migrate-i18n [path] [options]
  • --check:如果遷移會改動檔案就失敗退出
  • --write:原地重寫頁面 DSL 和 locale JSON 檔案

arc dsl language

檢視 DSL 診斷資訊、補全建議、hover 後設資料,編輯器整合背後的機制。

用法

bash
arc dsl language [path] [options]
  • --line <n>:查補全/hover 用的行號(從 1 開始)
  • --column <n>:查補全/hover 用的列號(從 1 開始)

arc dsl lsp

啟動一個 JSON-RPC language server,給 AUP DSL 的編輯器整合用。

bash
arc dsl lsp