如何在 VarDecl 之后放置文本?

How to place text after VarDecl?

我想在使用 Clang 声明变量后写一篇评论。

我尝试使用 getLocEnd 函数:

void PreprocessConsumer::WriteId(clang::VarDecl *vd)
{
    auto location = vd->getLocEnd();

    _rewriter.InsertTextAfterToken(location, "//My label");
    _rewriter.overwriteChangedFiles();
}

对于这个输入

void f (int n)
    {
        float x[10];
    }

它在分号前加上注释:

void f (int n)
    {
        float x[10]//My label;
    }

但是我想让Clang在分号后写一个注释如下:

void f (int n)
    {
        float x[10];//My label
    }

解决方案是使用来自父 clang::Stmt 的 getLocEnd。