开源工具abaplint的介绍

长期以来,SAP提供的标准ABAP开发工具是我们对代码进行检查的唯一方式。这意味着我们只能对ABAP服务器上的ABAP代码做出分析,而离线代码则成为了纯粹的文本,开发者无法对其进行检查。abaplint的出现改变了这一点,它可以在一定程度上“理解”代码,帮助我们解决一些问题,和SAP的标准工具形成有效的互补。本文会介绍ABAP开发相关的工具abaplint以及它在开发过程中的应用。

 

本文链接:https://www.cnblogs.com/hhelibeb/p/12166288.html

原创内容,转载请注明

基本介绍

lint或linter是一种静态分析工具,可以分析并标记代码中的错误、bug、可疑结构。 abaplint是ABAP语言的linter,它基于typescript,可以在多种平台工作,作者是Lars Hvam(同时也是abapGit的作者)。

项目地址:https://github.com/abaplint/abaplint

和Code Inspector等其它静态分析工具类似,abaplint可以做到帮助我们找到有问题的代码、确保统一的代码风格等事情。

应用 在编辑器中的应用

以Visual Studio Code中的abaplint插件为例,它可以分析出代码中的错误,如下图,abaplint找出了短短一段代码中的10个问题。

开源工具abaplint的介绍

 

 

鼠标划过报错内容时,编辑器也会给出具体提示,如下图,(上面的黑色主题的提示框边界不是很明显,为了让读者看清楚提示框,这里主题颜色使用了Solarized Light)

开源工具abaplint的介绍

在持续集成(CI)中的应用

在编辑器中使用abaplint对代码进行实时检查是一种典型的应用方式,还有一种应用方式是通过abaplint对代码进行自动检查,它可以是持续集成中的一个场景。

比如,如果以Github作为代码托管平台,可以安装Github的abaplint应用(https://github.com/apps/abaplint),配置需要检查的repo后,每当对相应的repo发起pr或push,都会有自动的代码检查,Github也会显示检查结果。(类似SAP系统中的传输前检查CTS_REQUEST_CHECK)

下图是我的配置,

开源工具abaplint的介绍

 

 

进行一次commit之后,可以看到abaplint给出了26处问题和问题所在的代码位置。

 

开源工具abaplint的介绍

 

 

此外,也可以使用Travis CI或Gitlab的CI来执行abaplint的自动检查。具体可以参考该文:《Automatic checking of your ABAP code in Github/Gitlab with CI and abaplint》

应用范围

abaplint支持多种代码编辑器和代码托管平台,列表如下,

VS Code (source)

GitHub App

GitHub Actions

GitLab Pipelines

Bitbucket Pipelines

Azure Pipelines

Travis CI

Atom (待实现, source)

Code Climate Engine, 待实现

ABAP in Eclipse, (待实现, source)

配置

abaplint支持很多检查规则(并且在持续地更新中),可以通过abaplint.json文件来控制各个检查规则的启用与关闭、设置某些具体的检查参数。

abaplint-clean-code项目中包含了这些规则的介绍,和配置文件示例。第一次使用abaplint的用户可以以该项目中的配置文件示例作为模板,按照自己的需要,结合规则介绍进行修改。

关于规则介绍部分,它不仅给出了规则的效果,也参考sap的style guides给出了规则存在的具体原因。

以其中一个设置为例,

"method_length": { "statements": 25, "ignoreTestClasses": false, "errorWhenEmpty": true, "reason": "https://github.com/SAP/styleguides/blob/master/clean-abap/CleanABAP.md#keep-methods-small" },

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/zysdjy.html