如何让 C# Arcanist linter 工作
本文关键字:linter 工作 Arcanist | 更新日期: 2023-09-27 18:36:36
这是我
运行arc linters --verbose
时所说的:
AVAILABLE csharp (C#)
Configuration Options
severity (optional map<string|int, string>)
Provide a map from lint codes to adjusted severity levels: error,
warning, advice, autofix or disabled.
severity.rules (optional map<string, string>)
Provide a map of regular expressions to severity levels. All matching
codes have their severity adjusted.
discovery (map<string, list<string>>)
Provide a discovery map.
binary (string)
Override default binary.
什么是发现地图?它不会告诉你它是什么,但你必须拥有它。不幸的是,源代码并没有启发我。
二元的。。。我不想覆盖默认的二进制文件...什么是默认二进制文件?我必须覆盖它,所以我需要得到一个?我在哪里可以获得与Arcanist兼容的C#linter二进制文件?我唯一能找到的是 https://github.com/hach-que/cstools,但它抛出了一个例外。
让我知道我是否可以添加更多信息。
cstools 是你需要的;如果你查看 ArcanistCSharpLinter.php,你可以看到这一点,它在其中寻找 cslint.exe 作为默认二进制文件。
---编辑---
不确定你是否在寻找正确的工具;所提到的是这个由hach-que开发的工具,在这里:https://github.com/hach-que/cstools
我对这个 linter 不是很熟悉(自己不要做任何严肃的 C# 开发),但快速浏览源代码表明发现映射只是一个名为"发现"的字符串映射,其中包含 linter 的设置。
另请参阅:https://github.com/hach-que/cstools/issues/1
在此处复制粘贴示例,因为这似乎是 SO 策略:
示例 .arcconfig:
{
"project_id": "Tychaia",
"conduit_uri": "https://code.redpointsoftware.com.au/",
"arc.autostash": true,
"load": [
"Build/Arcanist"
],
"unit.engine": "XUnitTestEngine",
"unit.csharp.xunit.binary": "packages/xunit.runners.1.9.1/tools/xunit.console.clr4.exe",
"unit.csharp.cscover.binary": "cstools/cscover/bin/Debug/cscover.exe",
"unit.csharp.coverage.match": "/^Tychaia.*''.(dll|exe)$/",
"unit.csharp.discovery": {
"([^/]+)/(.*?)''.cs": [
[ "$1.Tests/$1.Tests.Linux.csproj", "$1.Tests/bin/Debug/$1.Tests.dll" ],
[ "$1.Tests/$1.Tests.Windows.csproj", "$1.Tests/bin/Debug/$1.Tests.dll" ]
],
"([^'''']+)''''(.*?)''.cs": [
[ "$1.Tests''$1.Tests.Windows.csproj", "$1.Tests''bin''Debug''$1.Tests.dll" ]
],
"([^/]+)''.Tests/(.*?)''.cs": [
[ "$1.Tests/$1.Tests.Linux.csproj", "$1.Tests/bin/Debug/$1.Tests.dll" ],
[ "$1.Tests/$1.Tests.Windows.csproj", "$1.Tests/bin/Debug/$1.Tests.dll" ]
],
"([^'''']+)''.Tests''''(.*?)''.cs": [
[ "$1.Tests''$1.Tests.Windows.csproj", "$1.Tests''bin''Debug''$1.Tests.dll" ]
]
}
}
示例 .arclint:
{
"linters": {
"csharp": {
"type": "csharp",
"include": "(''.cs$)",
"exclude": [ "(''.Designer''.cs$)", "(Phabricator''.Conduit(.*+))", "(TychaiaProfilerEntityUtil''.cs)" ],
"binary": "cstools/cslint/bin/Debug/cslint.exe",
"discovery": {
"([^/]+)/(.*?)''.cs": [
"$1/$1.Linux.csproj"
],
"([^'''']+)''''(.*?)''.cs": [
"$1''$1.Windows.csproj"
]
}
},
"license": {
"type": "tychaialicense",
"include": "(''.cs$)",
"exclude": [ "(''.Designer''.cs$)", "(Phabricator''.Conduit(.*+))", "(TychaiaProfilerEntityUtil''.cs)" ]
}
}
}
无论如何,如果你在让cstools工作时遇到问题,我建议在Github存储库上打开一个问题;他似乎反应迅速。此外,作为一名开源开发人员,听到其他人正在使用您的工作总是很高兴。