diff --git a/frontend/src/views/editor/extensions/httpclient/index.ts b/frontend/src/views/editor/extensions/httpclient/index.ts index 294ba57..35dd1a5 100644 --- a/frontend/src/views/editor/extensions/httpclient/index.ts +++ b/frontend/src/views/editor/extensions/httpclient/index.ts @@ -5,14 +5,12 @@ import {Extension} from '@codemirror/state'; import {httpRequestsField, httpRunButtonGutter, httpRunButtonTheme} from './widgets/run-gutter'; -import {responseCacheField} from "@/views/editor/extensions/httpclient/parser/response-inserter"; /** * 创建 HTTP Client 扩展 */ export function createHttpClientExtension(): Extension[] { return [ - responseCacheField, httpRequestsField, httpRunButtonGutter, httpRunButtonTheme, diff --git a/frontend/src/views/editor/extensions/httpclient/language/http.grammar b/frontend/src/views/editor/extensions/httpclient/language/http.grammar index 5e15a59..ee4da15 100644 --- a/frontend/src/views/editor/extensions/httpclient/language/http.grammar +++ b/frontend/src/views/editor/extensions/httpclient/language/http.grammar @@ -9,14 +9,25 @@ // @json - JSON 格式(属性必须用逗号分隔) // @formdata - 表单数据(属性必须用逗号分隔) // @urlencoded - URL 编码格式(属性必须用逗号分隔) -// @text - 纯文本内容(使用 content 字段) +// @text - 纯文本内容 // -// 3. 响应数据: +// 3. 变量定义: +// @var { +// baseUrl: "https://api.example.com", +// version: "v1", +// timeout: 30000 +// } +// +// 4. 变量引用: +// {{variableName}} - 简单引用 +// {{variableName:default}} - 带默认值引用 +// +// 5. 响应数据: // 使用独立的 JSON 块 // # Response 200 OK 234ms // { "code": 200, "message": "success" } // -// 4. 注释: +// 6. 注释: // # 单行注释 // // 示例 1 - JSON 请求: @@ -83,12 +94,55 @@ @top Document { item* } item { + VarDeclaration | RequestStatement | + ResponseDeclaration | AtRule | JsonObject | JsonArray } +// 变量声明 +VarDeclaration { + @specialize[@name=VarKeyword] + JsonBlock +} + +// 响应声明 +// 格式:@response