如何让 C# Arcanist linter 正常工作?
How to get a C# Arcanist linter working?
这是我运行时显示的内容 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# 开发),但是快速浏览源代码表明发现映射只是一个名为 [=32= 的字符串映射],它有 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": [
[ ".Tests/.Tests.Linux.csproj", ".Tests/bin/Debug/.Tests.dll" ],
[ ".Tests/.Tests.Windows.csproj", ".Tests/bin/Debug/.Tests.dll" ]
],
"([^\\]+)\\(.*?)\.cs": [
[ ".Tests\.Tests.Windows.csproj", ".Tests\bin\Debug\.Tests.dll" ]
],
"([^/]+)\.Tests/(.*?)\.cs": [
[ ".Tests/.Tests.Linux.csproj", ".Tests/bin/Debug/.Tests.dll" ],
[ ".Tests/.Tests.Windows.csproj", ".Tests/bin/Debug/.Tests.dll" ]
],
"([^\\]+)\.Tests\\(.*?)\.cs": [
[ ".Tests\.Tests.Windows.csproj", ".Tests\bin\Debug\.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": [
"/.Linux.csproj"
],
"([^\\]+)\\(.*?)\.cs": [
"\.Windows.csproj"
]
}
},
"license": {
"type": "tychaialicense",
"include": "(\.cs$)",
"exclude": [ "(\.Designer\.cs$)", "(Phabricator\.Conduit(.*+))", "(TychaiaProfilerEntityUtil\.cs)" ]
}
}
}
无论如何,如果您在使用 cstools 时遇到问题,我建议您在 Github 存储库上打开一个问题;他似乎很敏感。另外,作为开源开发人员,听到其他人正在使用您的作品总是很棒。
这是我运行时显示的内容 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# 开发),但是快速浏览源代码表明发现映射只是一个名为 [=32= 的字符串映射],它有 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": [
[ ".Tests/.Tests.Linux.csproj", ".Tests/bin/Debug/.Tests.dll" ],
[ ".Tests/.Tests.Windows.csproj", ".Tests/bin/Debug/.Tests.dll" ]
],
"([^\\]+)\\(.*?)\.cs": [
[ ".Tests\.Tests.Windows.csproj", ".Tests\bin\Debug\.Tests.dll" ]
],
"([^/]+)\.Tests/(.*?)\.cs": [
[ ".Tests/.Tests.Linux.csproj", ".Tests/bin/Debug/.Tests.dll" ],
[ ".Tests/.Tests.Windows.csproj", ".Tests/bin/Debug/.Tests.dll" ]
],
"([^\\]+)\.Tests\\(.*?)\.cs": [
[ ".Tests\.Tests.Windows.csproj", ".Tests\bin\Debug\.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": [
"/.Linux.csproj"
],
"([^\\]+)\\(.*?)\.cs": [
"\.Windows.csproj"
]
}
},
"license": {
"type": "tychaialicense",
"include": "(\.cs$)",
"exclude": [ "(\.Designer\.cs$)", "(Phabricator\.Conduit(.*+))", "(TychaiaProfilerEntityUtil\.cs)" ]
}
}
}
无论如何,如果您在使用 cstools 时遇到问题,我建议您在 Github 存储库上打开一个问题;他似乎很敏感。另外,作为开源开发人员,听到其他人正在使用您的作品总是很棒。