热乎的 PR:https://github.com/KusionStack/KCLVM/pull/460
效果展示:
1 个赞
这是做了一个IDE吗?厉害
嗯嗯,通过 LSP 接 vscode
请问有所有错误信息的文档说明吗?
另外,在信息风格上,是否考虑尽量一致,比如:expected int, got str 给了用户编译器的期望以及探知到的现状。而 unterminated string 或 name ‘name’ is not defined 就没有比较明显的给用户的期望或者修正方面的建议。
警告信息也类似,module … but unused 如果是建议用户删去,包含在信息中如何?
顺便问下,打算提供中文版信息吗?
感谢反馈。错误信息的文档说明在这里:KCL Errors and Warnings | KCL programming language. 。后面还会持续完善错误信息、Tips 提示和错误信息 i18n 等。
另外,在 IDE 层面会根据编译器 Tips 通过小灯泡等方式提示用户修改。
刚开始看错误说明文档。1.1 KCL Syntax Error (E1xxx)
里,几个问题:
- InvalidSyntaxError 听起来范围很大。看例子里用户看到的都是
error[E1001]: InvalidSyntax
? - KCLIndentationError 的例子里报错信息和 KCLTabError 相同
- 报错信息有的是描述错误,如
positional argument follows keyword argument
,有的是修改建议如expected statement
,打算把风格一致化吗?
关于 tab 和空格,你觉得设计允许两种风格的好处值得带来的麻烦吗?或者说如果只允许空格的话会有什么不便呢?
感谢反馈
- 目前 KCL 报错是有一些问题(可能还不止这些),错误信息和错误代码还会在后续版本持续优化和统一,提升用户体验。
- KCL 目前同时允许 tab 和空格这块是和 python 保持了一致,个人感觉 [收益 < 成本], 其实作为一个 DSL 应该尽可能统一 style, 也有计划将 tab/空格风格统一,不过大部分 IDE 目前已经能够智能将 tab 转换为空格。
1 个赞