如何在cpp文件中隐藏clangd支持的vim插件ALE的特定警告提示?

问题描述 投票:0回答:1

问题详情:

我下载了clangd for vim插件ALU来支持cpp语法自动补全,但是在C++代码中,总是出现如下警告消息:

'new' of type 'Vmux41' with extended alignment 64 [-Waligned-new=]

下面是我的mux数字电路测试平台文件的完整C++代码:

#include "verilated.h"
#include "verilated_vcd_c.h"
#include "../obj_dir/Vmux41.h"

VerilatedContext* contextp = NULL;
VerilatedVcdC* m_trace = NULL;

static Vmux41* dut;

void step_and_dump_wave(){
    dut->eval();
    contextp->timeInc(1);
    m_trace->dump(contextp->time());
}
void sim_init(){
    contextp = new VerilatedContext;
    m_trace = new VerilatedVcdC;
    dut = new Vmux41;               // <-- warning happens here
    contextp->traceEverOn(true);
    dut->trace(m_trace, 0);
    m_trace->open("waves/waveform_mux41.vcd");
}
void sim_exit(){
    step_and_dump_wave();
    m_trace->close();
}

int main() {
    sim_init();

        ...

    sim_exit();
}

在函数

sim_init
中,语句
dut = new Vmux41;
会得到上面的警告信息,我搜索了一些问题并询问了poe AI。最终答案是当前平台(Ubuntu 22.04)不支持这种对齐要求。

最后,我确认这与我的特定平台相关。所以我不需要解决它,只需隐藏它。

期待:

有没有什么方法可以在vim中隐藏这个特定的警告信息。 (其实侧边的警告栏让我很不爽)

vim autocomplete warnings clangd
1个回答
0
投票

ALE 在后台运行多个代码检查器(也称为 linter)。它被关闭,就像您在从命令行运行各个 linter 时关闭它一样。

在你的情况下GCC的-Waligned-new似乎是罪魁祸首,它可以通过传递

-Wno-aligned-new
来关闭。

相应地,添加到您的

vimrc
的行是:

let g:ale_cpp_cc_options = '-Wno-aligned-new'

使用 GCC 进行 linting 时抑制这一警告。

© www.soinside.com 2019 - 2024. All rights reserved.