诊断 它 - 表达性诊断库
轻量级诊断记录器,基于 LLVMS 表达式诊断规格数字 :
特征
- 简单使用
- 受到 LLVMS 表达式诊断规格
- 提供诊断信息的背景
使用量
创建表达式诊断信息
import { DiagnosticsMessage, FixItHint } from '@dev-build-deploy/diagnose-it';
const lines = `steps:
- uses: actions/checkout@v2
- neds: [build, test]
- uses: actions/setup-node@v2`;
// Example use case
const message = DiagnosticsMessage.createError(
"example.yaml",
{
text: "Invalid keyword 'neds'",
linenumber: 9,
column: 5
}
)
// Add context to the diagnostics message
.setContext(7, lines)
// Add a FixIt Hint
.addFixitHint(FixItHint.createReplacement({ index: 5, length: 4 }, "needs"));
// Convert to string
console.log(message.toString());
// Apply FixIt Hints
console.log("Results after applying FixIt Hints:", message.applyFixitHints());
// Throw as an Error
throw message;
解析文件
您可以解析一个( 编译输出) 文件以获取任何表达式诊断消息 :
import * as diagnoseIt from '@dev-build-deploy/diagnose-it';
for await(const message of diagnoseIt.extractFromFile("build.log")) {
if (message.toJSON().type === "error") {
// Oh noes!
}
}
页:1任意
.sarif或者说.sarif.json文件将被解析为有效的 SARIF 结果内容
输出格式
DiagnoseIt 灵感来自 LLVMS 表达式诊断格式化· ;
然而,它并非旨在提供完全相容性.
捐款
有建议的话 DiagnoseIt 可以改进, 或者想要报告一个错误, 打开一个问题! 我们很乐意所有的贡献.
更多,请检查 贡献指南。 。 。 .
许可证
- 麻省理工学院 2023 凯文·德·钟 <[email protected]>