#诊断 #错误 #错误报告 #标识符 #语言 #SDML #

sdml-errors

简单领域建模语言 (SDML) 错误和诊断

2 个版本

0.1.6 2024 年 6 月 28 日
0.1.5 2024 年 6 月 28 日

#134 in 国际化 (i18n)


4 crate 中使用

自定义许可

80KB
1.5K SLoC

#+TITLE: 包 sdml-error #+AUTHOR: Simon Johnston #+EMAIL: [email protected] #+LANGUAGE: en #+STARTUP: overview hidestars inlineimages entitiespretty #+OPTIONS: author:nil created:nil creator:nil date:nil email:nil num:3 toc:nil

Rust 库,包含 Simple Domain Modeling Language (SDML) 的错误和诊断类型。

[https://crates.io/crates/sdml_errors] [https://docs.rs/sdml_errors]

此包是 Rust SDML 项目的一部分,并专门定义了项目的错误和诊断类型。该项目的目的是提供内存模型、解析器、生成器和 CLI 工具的惯用实现。

以下图示展示了此包在更广泛的项目背景中的位置。

#+CAPTION: 包组织 #+BEGIN_EXAMPLE ╭───────╮ │ CLI │ ╔══ │ crate │ ══╗ ║ ╰───────╯ ║ ┌╌╌╌╌╌╌╌╌┐ V V ┆ ┆ ╭───────╮ ╭──────────╮ 格式化源代码 ┆ 文件 ┆ ══> │ parse │ ══> │ generate │ ══> RDF 表示 ┆ ┆ │ ╰───────╯ ╰──────────╯ │ 图表 └╌╌╌╌╌╌╌╌┘ │ core/errors crate │ ╰──────────────────────────────────╯ ┌───────┐ ⋀ │ other │ ║ │ tools │ ════════════════╝ └───────┘ #+END_EXAMPLE

  • 变更

版本 0.1.6

  • 功能:在 =Error= 和 =GeneratorError= 中添加新的变体,供 =sdml-generator= crate 使用。

版本 0.1.5

  • 功能:添加新的诊断 =IdentifierNotPreferredCase=,其中标识符不符合其使用的首选样式。
    • 添加到 =ErrorCode= 的新代码。
    • 添加新函数 =identifier_not_preferred_case=。
    • 添加新枚举 =IdentifierCaseConvention=,用于标识要执行的样式。

版本 0.1.4

  • 功能:改进了多个诊断帮助信息。
  • 功能:添加共享的 =UseColor= 类型。

版本 0.1.3

  • 功能:添加新的诊断 =DeprecatedTermUsed=,其中标识符包含在提供的 =TermSet= 中列出的术语。
    • 添加到 =ErrorCode= 的新代码。
    • 添加新函数 =deprecated_term_used=。

版本 0.1.2

  • 功能:添加新的诊断 =DoubleUnderscoredIdentifier=,其中标识符包含两个(或更多)连续的下划线字符。
    • 添加到 =ErrorCode= 的新代码。
    • 添加新函数 =double_underscored_identifier=。

版本 0.1.1

  • 特性:添加新的诊断功能,用于处理 =PropertyReferenceNotProperty= 的情况,即成员中的属性名无法解析为属性定义。
    • 添加到 =ErrorCode= 的新代码。
    • 添加新函数 =property_reference_not_property=。

版本 0.1.0

首次发布。

  • 错误处理
    • 从 =sdml_core= 拷贝 =error= 模块,重命名为 =errors=。
    • 从现有的 =Error= 类型中移除诊断信息。
  • 诊断
    • 拷贝 =diagnostics= 模块。
    • 创建新的 =diagnostics::codes= 模块和 =ErrorCode= 枚举。
    • 创建新的 =diagnostics::functions= 模块和针对每个 =ErrorCode= 的函数。
  • 诊断报告
    • 创建新的 =diagnostics::reporter= 模块。
    • 创建新的 =Reporter= 特性。
    • 创建 =StandardStreamReporter=,将彩色和结构化的错误输出到控制台。
    • 创建 =BailoutReporter=,将第一个给出的诊断转换为错误。

依赖

~9–20MB
~256K SLoC