create-schematic-compute

create-schematic-compute

创造:蓝图计算为Create生态系统带来了基于图形的可视化编程界面,让你无需杂乱的红石粉就能构建复杂的计算蓝图。

管理

Create: Schematic Compute

🎮 7 Programmable Blocks · 86 Node Types · Formula Syntax Highlighting & Autocomplete · Multiplayer Collaboration
七种可编程方块 · 86种节点 · 公式语法高亮与自动补全 · 多人实时协作
Drag, connect, and build logic — just like Unreal Engine Blueprints!
拖拽连接,构建逻辑 — 像虚幻引擎蓝图一样直观!
Created by StarryNight_Luo (y15173334444)

GitHub License Version NeoForge Create MC


📖 简介

机械动力:蓝图计算机 是一个机械动力附属模组,添加了七种可编程方块和一个便携终端,采用可视化节点图编程系统。无需搭建复杂红石电路,只需拖拽连接节点即可构建逻辑——就像虚幻引擎的蓝图系统或 Blender 的几何节点一样直观。每台设备拥有独立的节点图,以 20Hz(每游戏刻) 的频率运行,适合实时控制应用。全部 7 种方块支持多人实时协作编辑,带实时光标追踪和节点锁定保护。FORMULA 公式脚本编辑器 支持语法高亮(9 种词法颜色)、智能自动补全(函数、变量、@output)、实时校验与错误徽章、以及命名常量 (PI)/(E)


🖥️ 方块

🖥️ 全息显示器

3D 悬浮显示方块

功能 说明
🖼️ 显示节点 文本、数值、图片、动画
🎨 16×16像素编辑器 多帧动画+撤销重做
📋 图层面板 拖拽排序+缩略图预览
🎯 3D定位 自由调整位置和旋转
📡 信号驱动 通过输入信号驱位置旋转
📡 红石输入 从红石链接网络读取信号

🖥️ 蓝图计算机

红石链接控制器

功能 说明
📡 红石I/O 读写红石链接网络
🔗 私有信号 命名通道跨计算机通信
🚌 总线系统 多频段数据共享
📦 封装导入导出 文件浏览器导入导出

⚡ 转速代理控制器

转速直控

功能 说明
🔄 转速控制 设置相邻转速控制器RPM(-256~256)
🔗 私有信号输入 命名通道跨计算机联动

🔌 编程计算机

时序逻辑专用机

功能 说明
📡 红石I/O 红石链接网络通信
🔗 私有信号 命名通道I/O
⏱️ 时序节点 延时/锁存器/T触发器/闸门/脉冲延长/循环/保险/累计器/连续积分器

🪑 控制座椅

可乘坐控制器

功能 说明
⌨️ 58键绑定 点击绑定
🖱️ 双模式 摇杆/视角差
🎮 手柄 双摇杆+15键+模拟扳机
🔄 Sable兼容 双相机模式,四元数世界朝向追踪
🚪 操作 右键乘坐 / Shift+右键编辑器 / ~ 下马 / TAB 模式 / ESC 释放鼠标

📐 姿态传感器

物理结构姿态读取

功能 说明
📐 姿态 子世界俯仰和横滚
🧭 前方朝向 结构世界空间朝向
⚡ 加速度 结构本地加速度
🚀 速度 结构本地速度
🔄 姿态换算 坐标系转换

📡 3D全息显示雷达

实时实体扫描器

功能 说明
📡 扫描范围 1-128格可配置
🎯 目标锁定 手动右键锁定+自动最近
🖥️ 显示风格 经典/全息
📊 TARGET_OUT 输出坐标/实体ID/距离
🔍 过滤 独立显示玩家/生物/Sable

📱 便携终端

手持远程编辑器

功能 说明
📡 设备扫描 扫描1-128格可编程方块
✏️ 一键编辑 即时打开原生GUI
📦 全7方块 显示器、蓝图、编程、雷达、座椅、传感器、转速代理
🔄 Sable兼容 子世界扫描+旋转修正

👥 多人协作(v1.2.4+)

全部 7 种方块支持多人实时协作编辑同一节点图。

功能 说明
🖱️ 实时光标 彩色十字准星+玩家名
📦 远程拖拽 平滑动画节点移动
🔗 连线预览 实时贝塞尔曲线预览
👤 玩家列表 右侧竖向列表,房主高亮
🔒 节点锁定 像素编辑时锁定IMAGE节点
🚪 自动关闭 方块破坏时自动关闭
⚡ 加入离开 打开即现,关闭即消

📝 公式脚本节点

多行脚本编辑器 — 支持赋值、命名输出、注释、续行。

🎨 语法高亮

9 种词法分类的实时彩色标注。

词法类型 颜色 示例
函数 🟡 黄色 sin, cos, sqrt, exp
常量 🩷 粉色 (PI), (E) — 仅分组括号内视为字面量
标识符 🩵 浅青 x, speed, myVar
数字 🟠 橙色 3.14, 42, 0.5
运算符 ⬜ 灰色 +, -, *, /, ^, %
括号 ⬜ 灰色 (, )
注释 🟢 绿色 -- this is a comment
@output 🟣 紫色 @output
赋值 🟣 紫色 =
未知 🔴 红色 非法字符

🔍 自动补全

输入即触发,候选框显示在光标下方、所有引脚上方。

触发方式 行为
输入标识符字符 过滤候选:函数、常量、当前变量
输入 @ 立即建议 @output
Tab / Enter 接受选中候选项
导航候选项
Esc / 其他任意键 关闭候选框
点击候选项 接受并插入
缩放感知 候选框随图缩放

✅ 实时校验

错误以红色 ⚠ 徽章显示在节点标题栏,悬停查看详情。

校验项 类型
括号匹配 错误
未知函数 错误
函数参数数量不符 错误
无效赋值 错误
重复输出名 警告
@output 缺少变量名 警告
输入框红色边框 视觉反馈

📐 命名常量

(PI)(E) 在分组括号内视为字面常量(π ≈ 3.14159,e ≈ 2.71828)。裸 PI/E 或函数调用内的 sin(PI) 视为变量(创建输入引脚)。

-- (PI) = 字面量π,不是变量
-- sin(PI) = PI 是变量输入
result = (PI) + sin(PI)
@output result

→ 1 输入引脚 + 1 输出

-- 弹道计算
dx = X1 - X0
dz = Z1 - Z0
w = sqrt(dx*dx + dz*dz)
secTheta = 1 / cos(THETA)
y = (99*secTheta/(20*N)+tan(THETA))*w + 99*ln(1-2*(w*secTheta-K)/(199*N))/(20*ln(100/99)) - 99*K/(20*N) + 2
@output y
@output w
@output secTheta

7输入 + 3输出

18个数学函数: sin cos tan asin acos atan2 sinh cosh sqrt ln log exp sec csc cot abs


🚌 BUS 总线系统

全局命名通道跨计算机通信系统,类似发布-订阅消息总线。

功能 说明
🚌 BUS_OUT 写入命名通道+频段
🚌 BUS_IN 从通道读取频段值
📋 频段 每通道命名字段
🔢 引用计数 无引用时自动清理
⚠️ 冲突检测 拒绝重名通道

🧩 节点参考(86 种)

📦 数值
节点 说明
常量 输出常量值
红石输入 从红石链接网络读取
私有信号输入 从命名通道读取浮点数
总线输入 从总线通道读取频段值
🔢 基础运算
节点 说明
加法 A + B
减法 A - B
乘法 A × B
除法 A ÷ B(B=0时为0)
模运算 A % B
次幂 A ^ B
次方根 A的B次方根
绝对值 |input|
向上取整 向上取整
向下取整 向下取整
📐 高级运算
节点 说明
公式 多行脚本编辑器
保留N位小数 保留N位小数
比较路由 |A-B| 智能信号分流
姿态换算 姿态角转换
分割 正负信号分离

三角函数(度): 正弦 · 余弦 · 正切 · 反正弦 · 反余弦 · 反正切(双参数)· 双曲正弦 · 双曲余弦

其他: 平方根 · 自然对数 · 常用对数 · 指数 · 正割 · 余割 · 余切 · 角度展开 · 方向(3入3出)

🧠 逻辑
节点 说明
大于 A > B
小于 A < B
大于等于 A ≥ B
小于等于 A ≤ B
等于 A = B
或门 A > 0.5 或 B > 0.5
布尔 布尔(可反转)
闸门 信号门(设置/复位/切换)
继电器A 双掷继电器 — 触点 false→A, 触点 true→B
继电器B 单掷合并继电器 — 输出 = 触点 ? B : A
🎛️ 控制
节点 说明
PID控制器 SP/PV PID(0~16),抗积分饱和
动力PID 带基础动力的PID
限制 限幅
映射范围 范围映射
📤 输出
节点 说明
红石输出 写入红石链接(0~15)
私有信号输出 写入命名通道
总线输出 写入总线通道
转速控制 转速控制(-256~256)
⏱️ 时序(仅编程计算机)
节点 说明
延时 延时N tick
锁存器 Set/Reset锁存器,可配置默认状态
T触发器 切换触发器,可配置默认状态
脉冲延长 脉冲延长N tick
循环 每隔一定间隔触发脉冲,循环重复N次
保险 触发→2-tick脉冲→冷却
累计器 上升沿步进计数器
连续积分器 连续积分,可配置限幅
🎮 输入(控制座椅+姿态传感器)
节点 说明
键盘按键 58键绑定
鼠标摇杆 双模式:增量(鼠标位移)/绝对值(带记忆摇杆)。编辑区切换
视角差 视角差
鼠标按键 鼠标左/右键
手柄摇杆 双摇杆 LX/LY/RX/RY
手柄按键 15按键
手柄扳机 模拟扳机 LT/RT(0~1)
世界视角 玩家绝对世界视角方向
姿态 子世界姿态
前方朝向 结构世界空间朝向
加速度 结构本地加速度
速度 结构本地速度
世界坐标 世界坐标(可偏移)
目标输出 雷达目标 X/Y/Z/实体ID/距离
🖼️ 显示(仅全息显示器)
节点 说明
文本 带颜色的文字显示
数值显示 浮点数值显示
图像 16×16像素图片,信号驱动位置
图像序列 多帧动画,信号驱动帧
📦 结构
节点 说明
封装 在节点内嵌套子图
封装输入 外部输入引脚
封装输出 外部输出引脚
🔧 调试(全部方块)
节点 说明
便利贴 可调大小/滚动/三色自定义。拖拽顶部移动,父级移动携带内部节点。纯视觉辅助。选中节点按 C 包裹。
信号发生器 测试信号源,XY曲线预览+Y轴范围标注,手动控制点曲线或自定义 f(x) 公式,频率发生/指定模式输出,百分位数稳健自动缩放
信号探针 实时信号监视,100 tick趋势图,百分位数稳健自动缩放(p1-p99),冻结/清除

信号发生器模式:

模式 说明
🎯 手动曲线 XY图上拖拽控制点。双击添加,右键删除,XY双向自由拖拽(X被相邻点夹持,服务端排序)。多人协作同步。
📐 自定义公式 输入公式表达式,变量 x(0~1)。支持全部数学函数(三角函数用度),自动全角括号转换。speed/amplitude 禁用。
🔄 频率发生 X自动0→1循环推进。speed控制速度(仅手动模式)。天蓝色标记线显示当前X位置。
🎯 指定模式 拖拽天蓝色标记线设置X值。无输入框,纯拖拽交互。

信号探针功能:

  • 100-tick环形缓冲趋势图,百分位数稳健自动缩放(p1-p99)
  • 百分位过滤替代固定 ±5 裁剪 — 正确显示大范围数据(如 0~360)
  • 右键:冻结/解冻、清除历史
  • 蓝图未运行时显示 "---"

🎮 操作指南

操作 按键
添加节点 右键空白
编辑参数 左键→▶
连接 拖拽输出→输入
删除节点 悬停+X
删除连线 TAB+左键点击
删除选中 Delete / Backspace
框选 TAB+拖拽
复制 Ctrl + D
撤回 Ctrl + Z
重做 Ctrl + Y
注释包裹 选中节点+C
编辑注释文本 双击注释节点
调整注释大小 拖动右下角
滚动注释 Ctrl+滚轮
缩放 滚轮
平移 右键拖拽
打开编辑器 右键
控制座椅 — 乘坐 右键(空手)
控制座椅/雷达 — 编辑器 Shift+右键
控制座椅 — 下马 ~
控制座椅 — 切换模式 TAB
控制座椅 — 释放鼠标 ESC
信号发生器 — 添加控制点 双击XY图
信号发生器 — 删除控制点 右键控制点
信号发生器 — 拖拽控制点 左键拖拽(X被夹持,Y自由)
信号发生器 — 拖拽X标记 左键拖拽天蓝色线(输入模式)
信号发生器 — 切换模式 点击切换按钮(二次点击确认)
探针 — 冻结/解冻 双击探针节点
探针 — 清除历史 右键探针节点
书签 — 打开面板 点击右下角★
书签 — 添加 面板内[+]Ctrl+M
书签 — 重命名 点击书签行✎
书签 — 删除 点击书签行×
书签 — 跳转 点击→或名称
书签 — 拖拽排序 拖拽名称区域到新位置
书签 — 重置视角 面板[↺]Home

🔄 Sable 物理集成

与Sable物理引擎深度集成,支持旋转结构。

方块 功能
控制座椅 实体yaw追踪子世界
姿态传感器 读取姿态四元数

线程安全: 共享字段 volatile无Sable: 控制座椅完全可用,传感器输出0


💾 蓝图兼容

全部七种方块支持蓝图大炮,图与状态完整保留。

采用 Create 官方 IMergeableBE + SafeNbtWriter 接口


📦 合成配方

方块 材料
🖥️ 全息显示器 红石链接×2 + 精密构件 + 玻璃板×2 + 黄铜机壳 + 萤石粉×2
🖥️ 蓝图计算机 红石链接×2 + 精密构件 + 玻璃板×2 + 中继器 + 比较器 + 黄铜机壳×2
⚡ 转速代理 黄铜锭×4 + 齿轮 + 玻璃板×2 + 比较器 + 安山岩机壳
🔌 编程计算机 安山岩机壳×4 + 中继器 + 玻璃板×2 + 比较器 + 安山合金
🪑 控制座椅 重型测重压力板 + 铁锭×2 + 黄铜机壳 + 红石 + 红石链接×4
📐 姿态传感器 铁锭×6 + 中继器 + 比较器 + 黄铜机壳×2
📡 雷达 显示器×2 + 铁锭×4 + 黄铜机壳 + 红石块×2
📱 便携终端 红石链接×4 + 蓝图计算机 + 玻璃板×4

⚙️ 方块属性

属性
硬度 1.0(空手可破坏)
空手破坏 掉落无NBT
扳手右键 旋转方向
扳手Shift+右键 收回保留NBT

🔧 技术亮点

特性 说明
👥 多人协作 实时编辑、光标追踪、节点锁
⚡ 服务端权威评估 客户端接收快照,无本地评估器
⚡ 拓扑排序求值 O(1) 输入查询缓存
🚀 GC友好 重用求值器
🔄 信号总线 全局命名通道通信
🧹 PID抗饱和 积分上限钳制
🛡️ 环检测 编译时循环引用检测
🎮 GLFW原始输入 绕过MC键位系统
🔄 Sable集成 子世界姿态读取

📜 更新日志

v1.2.4 — 多人协作 + 调试工具链 + 公式编辑器体验

👥 多人协作

全部 7 种方块支持多人实时协作编辑同一节点图。

功能 说明
🖱️ 实时光标 彩色十字准星 + 玩家名
📦 远程拖拽节点 远程移动平滑插值动画
🔗 连线预览 拖拽连线时实时贝塞尔曲线
👤 玩家列表 右侧竖向列表,房主高亮
🔒 节点锁定 像素编辑时自动锁定
⚡ 加入离开 打开即现,关闭即消
✏️ 操作同步 GraphOp + OpExecutor 模型,服务器权威 ID 分配

⚡ 架构重构

改动 说明
🖥️ 服务端评估 移除客户端 GraphEvaluator。所有评估在服务端运行;通过 ClientboundGraphEvalPacket + EvalSnapshot 同步结果。修复客户端 PRIVATE_IN/BUS_IN 始终返回 0 的问题。
🏗️ 统一 BE 基类 SyncedGraphBlockEntity 整合了 7 个 BE 中约 200 行重复代码(BUS 生命周期、RedstoneLink、NBT、同步、EvalSnapshot)。
📦 Blob 通道 BlobDataPacket + BlobRegistry 用于分块传输大数据。SET_IMAGE_PIXELS 从 Base64 改为直接传输 int[]

🔧 调试工具链

工具 说明
📶 信号发生器 测试信号源。手动曲线模式(可拖拽控制点、X 夹持、服务端排序)或自定义 f(x) 公式(全部数学函数、自动全角括号转换)。频率生成(自动循环 X)或输入驱动(拖拽天蓝色标记)。Y 轴自动缩放带 ±5 离群值裁剪。
📊 信号探针 实时监视器,100-tick 趋势图。Y 轴自动缩放带离群值裁剪。右键冻结/解冻/清除。

📌 视角书签

  • ★ 按钮(右下角,▼ 上方)开关书签面板
  • [+] / Ctrl+M 保存当前视角,[↺] / Home 重置到原点
  • [✎] 重命名,[✕] 删除,[→] 或点击名称跳转,带 200ms 缓入缓出过渡
  • 拖拽名称区域排序,通过 MOVE_BOOKMARK 操作同步
  • 点击命名对话框外部取消;Esc 由统一弹窗栈处理
  • 通过 ADD_BOOKMARK / REMOVE_BOOKMARK / RENAME_BOOKMARK / MOVE_BOOKMARK 操作多人同步

🐛 修复与打磨

  • 🔧 图初始化onLoad() 提升 generation 以强制首 tick 完全重编译。
  • 🚌 BUS 通道registerChannels() 不再要求 bandCount()>0;空频段通道也注册,使 BUS_IN 立即可读。
  • 🎨 颜色选择器 UX — ESC 同时关闭选择器和面板。复制的节点获得 sortB = 原始值+1
  • 📝 双语注释 — 所有 graph/blocks/network/ 源码注释现在为中英双语。
  • 🐛 封装调试可见性EvalSnapshot 现在捕获子评估器输出 + debugTimes。封装内信号发生器(蓝色 X 标记线)和探针现在正确显示。
  • ⌨️ Esc 键委派 — Esc 现在先关闭子 UI(书签重命名、导出/导入对话框、颜色选择器)再关闭整个编辑界面。
  • 🔒 软锁作用域 — 节点锁定现在按 ownerNodeId 限定作用域。在封装内选中节点不再误锁主图同 ID 节点。
  • 🖱️ 光标作用域隔离 — 远端玩家光标按作用域过滤;封装内的光标从主图视图隐藏,反之亦然。
  • 🟡 封装占用高亮 — 其他玩家在封装内部编辑时,主图中的封装节点显示金色边框+玩家名。
  • 📝 封装 I/O 改名同步 — 重命名 ENCAP_INPUT / ENCAP_OUTPUT 现在发送 SET_DISPLAY_TEXT 操作以支持服务端同步 + 撤销。
  • 📋 Ctrl+D 复制修复 — 复制现在使用服务端权威 ID 分配(ADD_NODE_REQUEST → ACK);数据操作延迟到所有真实 ID 分配完成后执行。封装节点的子图内容递归同步。修复“其他客户端上节点为空”的问题。
  • 📐 手动曲线固定 Y 轴 — 信号发生器手动曲线模式现在使用固定 Y 范围 [-1.1, 1.1];公式模式保留自动缩放。控制点钳制到可见范围并在边框上方渲染。

🔗 稳定引脚ID重构

连接现在绑定到稳定的字符串引脚标识符,而非位置整数索引。引脚的插入、删除或重排不再破坏现有连接——它们按名称跟随引脚。

系统 pinId 来源 修复前 修复后
FORMULA 输入 变量名(如 ABx 添加/移除变量会使引脚索引偏移 — 连接断裂或指向错误的引脚 连接跟随变量名;ensureScriptParsed() 消除懒解析竞态条件
FORMULA 输出 @output 标签(如 resultangle 输出重排会破坏下游连接 连接跟踪输出标签;"out0" 默认值正确处理
封装 I/O 子节点 ID(按 Y 排序,然后按 ID) 拖拽 ENCAP_INPUT/OUTPUT 节点改变引脚顺序 — 外部连接静默偏移 pinId = 子节点 ID,拖拽不变;子图结构编辑后重建父缓存
BUS 频段 频段名(如 band_0band_1 插入/移除/重排频段清除所有连接或导致索引漂移 仅实际删除的频段上的连接被移除;重排的频段保留

关键变更:

  • NodeConnection 新增 fromPinId / toPinId 字段;save() / load() 向后兼容
  • GraphNode 新增 inputPinIndex(id) / outputPinIndex(id) / inputPinId(i) / outputPinId(i) — 按节点类型解析 pinId↔索引
  • NodeGraph.rebuildInputCache() 将所有 pinId 解析为当前索引,清理过期连接
  • GraphMigration V3→V4:一次性 NBT 升级,将 FORMULA、ENCAP、BUS 和通用节点的整数引脚转换为稳定 pinId(递归进入子图)
  • GraphEvaluator BUS 评估和 ENCAP 引脚注入现在按 pinId 而非缓存位置匹配
  • BusChannelHelper.syncBandsFromServer 仅断开实际删除的频段(按名称),保留重排的频段
  • NbtVersions.DATA_VERSION 从 3 提升到 4
  • 从 v1.2.5 路线图中消除了约 200 行 REWIRE/重连复杂度 — 引脚重排现在是免费的

相关文档:docs/v1.2.4-pin-id-stability-plan.md

🧠 继电器节点

两个用于条件信号路由的新逻辑节点 — 蓝图计算机和编程计算机均可用。

节点 说明
继电器A SPDT(双掷)— 3 输入(A、B、触点),2 输出。触点 ≤0.5 → A输出=A,B输出=0;触点 >0.5 → A输出=0,B输出=B。互斥投掷,如同物理继电器。
继电器B SPST(单掷)— 3 输入(A、B、触点),1 输出。触点 >0.5 → 输出=B;否则 → 输出=A。合并单掷变体。

两者都使用与 BOOL/GATE/OR 一致的标准 >0.5 阈值。无参数,纯组合逻辑 — 开箱即用兼容多人协作和封装。

🪑 Sable 子关卡控制座椅相机

Sable 旋转结构上控制座椅的两种相机模式。座椅世界朝向由客户端根据方块 FACING + Sable 渲染姿态四元数实时计算,不依赖实体 yaw 同步。

模式 相机 输出
FIXED(默认) 锁定到座椅世界朝向(偏航+俯仰)。ControlSeatCameraMixin 禁用 Sable 相机旋转以防止双重旋转。 摇杆 mx/my 来自鼠标增量
VIEW_DIFFERENCE 自由相机,鼠标控制。Sable 不旋转视角。 vy = playerYaw - seatWorldYawvp = playerPitch - seatWorldPitch
  • ControlSeatBlockEntitySable:修复缺失的 setYRot() — 实体 yaw 现在正确更新 yRotyRotO
  • ControlSeatEntity:在子关卡内跳过手动 setPos(Sable 处理定位)。
  • ControlSeatCameraMixin:注册在 required:false 的 sable mixin 配置中 — 无 Sable 时静默跳过。

🎮 鼠标摇杆绝对值模式

编辑区提供每节点独立开关,在增量(默认,鼠标位移即输出)和绝对值(累积摇杆位置,停手保持)之间切换。

  • 复用 TOGGLE_BOOL 操作流水线 — 服务端权威、支持撤销、多人同步。
  • 绝对值每 tick 累积系数 1/6,实现平滑控制。
  • 摇杆位置在 GUI 开/关之间保持。
  • X/Y 轴独立累积。

🔧 信号发生器自动缩放修复

  • 根本原因computeVisibleRange() 使用固定 ±5 裁剪,将大范围公式(如 x*360)压缩到约 6 单位的 Y 窗口,而渲染使用原始值 → 曲线绘制到图表角落,看起来像反比例函数。
  • 修复:将 ±5 硬裁剪替换为基于百分位数的稳健范围(p1–p99)。仅过滤极端离群值(|v| ≥ 1e6)和 NaN/Inf。DEBUG_SIGNAL_GENDEBUG_PROBE 图表使用相同逻辑。
  • Y 轴范围标签:图表右上角现在显示 min … max(如 0.0 … 360.0),缩放立即可见。
  • 缓存:公式编译缓存(debugFormulaRpn)在公式编辑时正确失效 — 图表即时刷新。

🎨 公式编辑器体验

语法高亮 — 基于标记的实时着色,9 类:函数(黄)、常量(粉)、标识符(青)、数字(橙)、运算符/括号(灰)、注释(绿)、@output/赋值(紫)、未知(红色下划线)。标记缓存避免每帧重复解析。

自动补全候选框 — 输入标识符字符触发过滤下拉列表(函数、命名常量、当前变量);输入 @ 立即建议 @output。键盘:↑↓ 导航,Tab/Enter 接受,Esc 关闭。鼠标