XLang DSL Plugin
在 Nop 平台中,所有的 DSL 都采用 XML 语法格式,使用统一的 xdef 元模型来提供规范化的形式约束和基本的属性语义。基于 xdef 元模型,我们可以实现统一的语法提示、关联分析、断点调试等功能,而无需针对每个 DSL 语言单独编写 IDE 插件。
插件的编译、安装可以参考文档: idea.md
DSL 语法格式
XLang DSL 采用 XML 格式,根节点上必须通过 x:schema
属性来指定所对应的 xdef 元模型,例如
|
语法提示
输入标签名、属性名、属性值的时候,会弹出 xdef 中定义的相关信息。
语法检查
插件会根据 xdef 定义检查标签名、属性名以及属性值的格式。不符合要求的语法元素会被增加 Error 标记。
快速文档
鼠标悬停在标签名、属性名以及属性值上时,会显示 xdef 文件中定义的文档
路径链接
鼠标悬停在路径格式的属性值上,同时按 CTRL 键,会提示跳转到路径所对应的文件。
对于 XPL 模板标签,则提示跳转到标签库的定义处。
XScript 代码高亮
<c:script/>
标签内的 XScript 代码高亮、代码文档、代码跳转、代码补全等。
DSL 文档格式增强
在 DSL 中的文档内容,推荐采用如下形式:
|
- 文档最开始的
[xxx]
表示标签或属性名称为xxx
; - 其余行开头的
>
(含一个空格)可仅用于多级列表开头,以避免因行首空白被移除而无法正确渲染 markdown 多级列表的问题;
节点文档渲染结果:
属性文档渲染结果:
为了避免恶意链接,markdown 中的链接和图片的地址均完整显示,以方便用户确认链接是否可信:
断点调试
在 XScript 脚本或者 Xpl 模板片段中可以增加断点。
插件增加了一个与 Run
和 Debug
指令平级的执行器 XLangDebug
,通过它启动后会同时启动 Java 调试器和启动 XLang 脚本语言调试器。
为了调试 XLang,需要引入 nop-xlang-debugger
模块
|