diff options
author | Zbynek Winkler <zbynek.winkler@gmail.com> | 2016-04-21 17:06:57 +0200 |
---|---|---|
committer | Zbynek Winkler <zbynek.winkler@gmail.com> | 2016-04-21 17:52:09 +0200 |
commit | b6b8ac6cd394a0ac6182c4c7aa5c500e10a6f214 (patch) | |
tree | 19a03971ad35e9718e13851eaa9f3c8afe9ed9fb /python/tidy | |
parent | 45562287e608f60203686435558bb8a9a614f9be (diff) | |
download | servo-b6b8ac6cd394a0ac6182c4c7aa5c500e10a6f214.tar.gz servo-b6b8ac6cd394a0ac6182c4c7aa5c500e10a6f214.zip |
tidy check for vim and emacs modelines.
See https://github.com/servo/servo/issues/10719.
Diffstat (limited to 'python/tidy')
-rw-r--r-- | python/tidy/servo_tidy/tidy.py | 10 | ||||
-rw-r--r-- | python/tidy/servo_tidy_tests/modeline.txt | 5 | ||||
-rw-r--r-- | python/tidy/servo_tidy_tests/test_tidy.py | 8 |
3 files changed, 22 insertions, 1 deletions
diff --git a/python/tidy/servo_tidy/tidy.py b/python/tidy/servo_tidy/tidy.py index 206346675e2..d90660ac238 100644 --- a/python/tidy/servo_tidy/tidy.py +++ b/python/tidy/servo_tidy/tidy.py @@ -133,6 +133,14 @@ def check_license(file_name, lines): yield (1, "incorrect license") +def check_modeline(file_name, lines): + for idx, line in enumerate(lines[:5]): + if re.search('^.*[ \t](vi:|vim:|ex:)[ \t]', line): + yield (idx + 1, "vi modeline present") + elif re.search('-\*-.*-\*-', line, re.IGNORECASE): + yield (idx + 1, "emacs file variables present") + + def check_length(file_name, idx, line): if file_name.endswith(".lock") or file_name.endswith(".json"): raise StopIteration @@ -638,7 +646,7 @@ def scan(faster=False, progress=True): # standard checks files_to_check = filter_files('.', faster, progress) checking_functions = (check_flake8, check_lock, check_webidl_spec, check_json) - line_checking_functions = (check_license, check_by_line, check_toml, check_rust, check_spec) + line_checking_functions = (check_license, check_by_line, check_toml, check_rust, check_spec, check_modeline) errors = collect_errors_for_files(files_to_check, checking_functions, line_checking_functions) # wpt lint checks wpt_lint_errors = check_wpt_lint_errors(get_wpt_files(faster, progress)) diff --git a/python/tidy/servo_tidy_tests/modeline.txt b/python/tidy/servo_tidy_tests/modeline.txt new file mode 100644 index 00000000000..2a3416953ce --- /dev/null +++ b/python/tidy/servo_tidy_tests/modeline.txt @@ -0,0 +1,5 @@ +# vim: set noexpandtab: +// vi: et: +/* ex: et: +anything -*-Lisp-*- + -*- mode: Lisp -*- diff --git a/python/tidy/servo_tidy_tests/test_tidy.py b/python/tidy/servo_tidy_tests/test_tidy.py index 031e0873a56..1c26ba17b3b 100644 --- a/python/tidy/servo_tidy_tests/test_tidy.py +++ b/python/tidy/servo_tidy_tests/test_tidy.py @@ -75,6 +75,14 @@ class CheckTidiness(unittest.TestCase): errors = tidy.collect_errors_for_files(iterFile('test.toml'), [tidy.check_toml], []) self.assertEqual('found asterisk instead of minimum version number', errors.next()[2]) + def test_modeline(self): + errors = tidy.collect_errors_for_files(iterFile('modeline.txt'), [], [tidy.check_modeline]) + self.assertEqual('vi modeline present', errors.next()[2]) + self.assertEqual('vi modeline present', errors.next()[2]) + self.assertEqual('vi modeline present', errors.next()[2]) + self.assertEqual('emacs file variables present', errors.next()[2]) + self.assertEqual('emacs file variables present', errors.next()[2]) + def do_tests(): suite = unittest.TestLoader().loadTestsFromTestCase(CheckTidiness) |