容错的 Gleam

主要观点:发布 Gleam [v1.2.0],聚焦改善语言服务器和开发者体验。
关键信息和重要细节

  • 容错编译:传统编译器遇编译错误立即停止,新特性遇错后会继续分析模块,返回所有错误及更新代码信息,提升语言服务器体验,后续会改进容错编译粒度和引入容错解析。
  • 语言服务器导入改进:语言服务器可自动补全导入的模块名、类型和值,可悬停查看文档,使用跳转定义功能。
  • 单行管道|>管道操作符可将函数输出传入另一函数,代码格式化可选择将管道函数放在一行或多行,可通过添加换行强制格式化拆分管道。
  • use表达式的改进错误消息:细化use表达式的错误消息,包括右侧不是函数、无参数或参数数量错误等情况,帮助学习和调试代码。
  • 类型/值混淆反馈:编译器会检查导入项是否为类型或值的匹配,若不匹配则解释混淆情况。
  • 断言穷尽性检查:编译器对let assert语法进行穷尽性检查,若模式覆盖所有情况则发出冗余断言警告。
  • 捕获常见崩溃错误:编译器会对todopanic表达式的错误使用发出警告,如panic字符串未作为消息使用。
  • 无效常量错误消息改进:若在常量中调用函数,会发出更有用的错误消息。
  • 不可达代码检测:在panic表达式后代码不可达时,编译器会发出警告。
  • 进一步的 Hex 集成:添加gleam hex revert命令可在发布 24 小时内撤销包发布,改进已发布包重复发布的错误消息。
  • 防止 Erlang 模块冲突:Gleam 构建工具在编译会覆盖 Erlang 模块的 Gleam 模块时会发出错误,避免应用升级时出现混淆错误。
  • 更好的构建工具错误:若manifest.toml文件无效或无法找到满足项目要求的包版本,会显示更有用的错误消息。
  • 冗余模式匹配警告:编译器会对多余的列表包装进行模式匹配发出警告,使用 Gleam 语言服务器可自动修复冗余的元组包装。
  • 帮助 JavaScript 程序员:为 JavaScript 程序员在 Gleam 代码中误输入===提供错误消息。
  • 其他改进:包含众多贡献者名单,感谢他们对 Gleam 项目的支持和贡献。查看变更日志可查看所有变更。
阅读 16
0 条评论