首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有办法扩展Codan ReturnChecker?

有没有办法扩展Codan ReturnChecker?
EN

Stack Overflow用户
提问于 2019-07-29 13:57:38
回答 2查看 32关注 0票数 1

org.eclipse.cdt.codan.internal.core.CodanRunner中,我找到了以下代码:

代码语言:javascript
复制
CheckersRegistry chegistry = CheckersRegistry.getInstance();

chegistry包含很多Checker,包括一个ReturnChecker

代码语言:javascript
复制
...
for (IChecker checker : chegistry) {
    ...
    ((IRunnableInEditorChecker) checker).processModel(model, context);
    ...
}

这段代码最终调用ReturnChecker的方法在函数体(IASTFunctionDefinition)中的语句中搜索返回语句。如果缺少该语句,则调用reportNoRet()。编辑器将该函数标记为"No return,in function returning non-void“。

有没有一种方法可以覆盖这个ReturnChecker (或任何其他检查器),使它在某些情况下不会调用"reportNoRet“?我还想知道是否有方法可以添加棋盘(我找不到扩展点)。

EN

回答 2

Stack Overflow用户

发布于 2019-07-30 04:23:09

您可以尝试扩展该类以执行您自己的检查,但将始终使用基本的检查器。也许为你的语言扩展创建一组新的棋子会更好。看一看here,你会发现如何添加新的跳棋。

票数 2
EN

Stack Overflow用户

发布于 2019-07-31 12:23:29

你绝对可以添加新的跳棋。正如在@greywolf82的链接中提到的,扩展点是org.eclipse.cdt.codan.core.checkers

我不知道有什么方法可以更细粒度地修改ReturnChecker的行为,而不是完全禁用特定的问题类型。您最好禁用ReturnChecker,然后根据需要的修改将其代码复制到您自己的检查器中。(禁用也可以使用org.eclipse.cdt.codan.core.checkerEnablement扩展点以声明方式完成)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/57247884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档