Book a Demo!
CoCalc Logo Icon
StoreFeaturesDocsShareSupportNewsAboutPoliciesSign UpSign In
Kitware
GitHub Repository: Kitware/CMake
Path: blob/master/Utilities/ast-grep/rules/cmhasliteralprefix-char.yml
5087 views
1
---
2
id: cmhasliteralprefix-char
3
language: Cpp
4
severity: warning
5
message: "`cmHasLiteralPrefix` with a one-char prefix search should use `cmHasPrefix`"
6
rule:
7
pattern: cmHasLiteralPrefix($HAYSTACK, $NEEDLE)
8
constraints:
9
NEEDLE:
10
regex: '^"(.|\\.)"$'
11
transform:
12
NEEDLE_CHANGE_QUOTE:
13
replace:
14
source: $NEEDLE
15
replace: '(^"|"$)'
16
by: "'"
17
NEEDLE_ESCAPE_SINGLE_QUOTE:
18
replace:
19
source: $NEEDLE_CHANGE_QUOTE
20
replace: "'''"
21
by: "'\\''"
22
NEEDLE_OUT:
23
replace:
24
source: $NEEDLE_ESCAPE_SINGLE_QUOTE
25
replace: '\\"'
26
by: '"'
27
fix: cmHasPrefix($HAYSTACK, $NEEDLE_OUT)
28
29