My personal style
This commit is contained in:
commit
fa72e56346
67
main.py
Normal file
67
main.py
Normal file
|
@ -0,0 +1,67 @@
|
|||
|
||||
import re
|
||||
import subprocess
|
||||
import argparse
|
||||
|
||||
parser = argparse.ArgumentParser()
|
||||
parser.add_argument('project')
|
||||
|
||||
RULES_MAIN= [
|
||||
r"\b(System\.out\.println)\b",
|
||||
r"^\s*var\b\s*\w*\s*=\s*[^n ][^e][^w]",
|
||||
r"^\s*var\b\s*\w*\s*=\s*\r",
|
||||
]
|
||||
|
||||
DUMB_WORDS = [
|
||||
'derp', 'herp', 'fjerp', 'todo', 'attempts to',
|
||||
'actual',
|
||||
|
||||
# Misspelled words
|
||||
'concatinate', # Concatenate
|
||||
]
|
||||
|
||||
def re_select(options):
|
||||
return r'(?:' + r'|'.join(options) + r')'
|
||||
|
||||
def re_delimit(rule):
|
||||
return r'\b' + rule + r'\b'
|
||||
|
||||
def re_case_insensitive_sub(m):
|
||||
m = m.group(0)
|
||||
l = m.lower()
|
||||
u = m.upper()
|
||||
if l == u == m:
|
||||
return m
|
||||
else:
|
||||
return '['+l+u+']'
|
||||
|
||||
def re_case_insensitive(rule):
|
||||
return re.sub(r'\w', re_case_insensitive_sub, rule)
|
||||
|
||||
RE_DOC_COULD_BE_LINK = r'^(\s*(?:\/\*\*|\*).*)(\b[A-Z][a-z]\w*[A-Z]\w*)([ ,.])'
|
||||
|
||||
RULES_BOTH = [
|
||||
r"\.size\(\)\s*[=!<]=\s*0" ,
|
||||
r"\b(hasSize\(0\))\b" ,
|
||||
r"\b(\.size\(\)\)\.isEqualTo\()\b" ,
|
||||
r"\.get\([^)(]+\)\)\.isEqualTo",
|
||||
r"\bCollectors\.toMap\b",
|
||||
r"\bCollectors\.toList\b",
|
||||
re_delimit(re_select([re_case_insensitive(w) for w in DUMB_WORDS])),
|
||||
#RE_DOC_COULD_BE_LINK,
|
||||
]
|
||||
|
||||
def construct_cmd(rules, target):
|
||||
return ['ag', '--java', '(' + re_select(rules) + ')', target]
|
||||
|
||||
if __name__ == '__main__':
|
||||
args = parser.parse_args()
|
||||
|
||||
target = args.project
|
||||
|
||||
result1 = subprocess.run(construct_cmd(RULES_MAIN, target + '/main'))
|
||||
result2 = subprocess.run(construct_cmd(RULES_BOTH, target))
|
||||
|
||||
if result1.returncode == 0 or result2.returncode == 0:
|
||||
exit(1)
|
||||
|
Loading…
Reference in New Issue
Block a user