强制 Ale 将 Perl::Critic 违规显示为警告而不是错误

Forcing Ale to display Perl::Critic violations as warnings rather than errors

我正在使用 vimAle 插件。默认情况下,perlcritic 次违规显示为错误。我希望看到它们显示为警告。根据 :help g:ale_type_map 我应该可以做到这一点,但我不清楚具体如何。

let g:ale_type_map = {'perl': {'E': 'W'}} 会将 perl 错误更改为警告。

let g:ale_type_map = {'perl': {'ES': 'WS'}} 似乎对批评违规没有任何影响。这些都不行:

let g:ale_type_map = {'perlcritic': {'ES': 'WS', 'E': 'W'}}
let g:ale_type_map = {'perl_perlcritic': {'ES': 'WS', 'E': 'W'}}

关于这方面的文档非常少,所以我不清楚这是语法问题、linter 名称问题还是其他问题。

听作者说这是正确的语法,它允许您为 perltidyPerl::Critic 设置选项:

let g:ale_type_map = {
\    'perl': {'ES': 'WS'}, 
\    'perlcritic': {'ES': 'WS', 'E': 'W'},
\}

我的问题是我的简单测试用例收到 perl 警告和 Perl::Critic 违规。装订线将 perl 警告显示为错误,但窗格底部显示 Perl::Critic 违规,这非常令人困惑。摆脱警告后,我能够将 Perl::Critic 违规行为视为警告。在 Ale 中已经有一个未解决的问题来解决这个问题,但我认为 post 此处的答案对其他有问题的人会有帮助。

要点是 ale_type_map 是一个字典,因此如果您尝试多次设置它,最后一个条目将获胜。如果您想处理多个 linter,上面的语法就是您想要的。