1
0
mirror of https://github.com/Kitware/CMake.git synced 2025-10-14 02:08:27 +08:00

Utilities/ast-grep: add rules to remove CM_DBG usage

An easy way to detect and remove debugging left over from development.
The rules are disabled by default so that LSP usage doesn't interfere
when they are wanted.

To actually use the rules, severity flags are necessary:

    ast-grep scan --error=rm-cmdbg-includes --error=rm-cmdbg-macros

This command will report on instances; passing `-U` as well will update
the source.

Tests are also not run by default; see
https://github.com/ast-grep/ast-grep/issues/2023 to track its progress.
This commit is contained in:
Ben Boeckel
2025-05-29 00:03:20 +02:00
parent 9ffbef62ca
commit 43fbd92991
6 changed files with 89 additions and 0 deletions

View File

@@ -0,0 +1,16 @@
id: rm-cmdbg-includes
snapshots:
'#include "cmDebugTools.h"':
fixed: ''
labels:
- source: '#include "cmDebugTools.h"'
style: primary
start: 0
end: 25
'#include <cmDebugTools.h>':
fixed: ''
labels:
- source: '#include <cmDebugTools.h>'
style: primary
start: 0
end: 25

View File

@@ -0,0 +1,30 @@
id: rm-cmdbg-macros
snapshots:
CM_DBG(arg);:
fixed: arg;
labels:
- source: CM_DBG(arg)
style: primary
start: 0
end: 11
a = CM_DBG(arg);:
fixed: a = arg;
labels:
- source: CM_DBG(arg)
style: primary
start: 4
end: 15
b = a + CM_DBG(arg);:
fixed: b = a + arg;
labels:
- source: CM_DBG(arg)
style: primary
start: 8
end: 19
f(CM_DBG(arg));:
fixed: f(arg);
labels:
- source: CM_DBG(arg)
style: primary
start: 2
end: 13

View File

@@ -0,0 +1,8 @@
---
id: rm-cmdbg-includes
valid:
- '#include "NotcmDebugTools.h"'
- '#include <NotcmDebugTools.h>'
invalid:
- '#include "cmDebugTools.h"'
- '#include <cmDebugTools.h>'

View File

@@ -0,0 +1,10 @@
---
id: rm-cmdbg-macros
valid:
- CM_DBG;
- macro(expr);
invalid:
- CM_DBG(arg);
- f(CM_DBG(arg));
- b = a + CM_DBG(arg);
- a = CM_DBG(arg);

View File

@@ -0,0 +1,13 @@
---
id: rm-cmdbg-includes
language: Cpp
severity: 'off'
message: "Remove `cmDebugTools.h` includes before submission"
ignores:
# Unit tests for the header.
- Tests/CMakeLib/testDebug.cxx
rule:
any:
- pattern: '#include "cmDebugTools.h"'
- pattern: '#include <cmDebugTools.h>'
fix: ''

View File

@@ -0,0 +1,12 @@
---
id: rm-cmdbg-macros
language: Cpp
severity: 'off'
message: "Remove `CM_DBG` usage before submission"
ignores:
# Unit tests for the header.
- Tests/CMakeLib/testDebug.cxx
rule:
pattern: CM_DBG($EXPR)
kind: call_expression
fix: $EXPR