tools/indentlevel.py

Sun, 09 Apr 2023 15:59:08 +0300

author
Teemu Piippo <teemu.s.piippo@gmail.com>
date
Sun, 09 Apr 2023 15:59:08 +0300
changeset 362
e1d646a4cbd8
parent 317
852021f38b66
permissions
-rw-r--r--

Extracted the state of the program into a MainState structure, and extracted local functions of main() into static functions.
I was planning to make the core logic and state of the program into a Main class, which would be a QObject that would
have lots of signals and slots, but it looks like this works even without it

#!/usr/bin/env python3
import sys
too_many = 6
for filename in sys.argv[1:]:
	with open(filename) as file:
		at_start_of_new_block = False
		old_n = 0
		for linenumber, line in enumerate(file, 1):
			import re
			n = len(re.match('^(\t*).*$', line).group(1))
			if at_start_of_new_block and n >= too_many and old_n < too_many:
				print(f'{filename}:{linenumber}: warning: block with {n} indent levels', file = sys.stderr)
			at_start_of_new_block = line.strip().endswith('{')
			old_n = n

mercurial