aboutsummaryrefslogtreecommitdiffstats
path: root/python/tidy
diff options
context:
space:
mode:
authorbors-servo <lbergstrom+bors@mozilla.com>2016-04-22 21:46:30 -0700
committerbors-servo <lbergstrom+bors@mozilla.com>2016-04-22 21:46:30 -0700
commit04f8ae56db0ba9df798b39a5b2f1bb1e23d6dcf3 (patch)
tree31045ce0f1e21740faa8853e05b7f57be63cb94a /python/tidy
parentabce9de2337d4d41ba977241b268f5774975f7b0 (diff)
parentb6b8ac6cd394a0ac6182c4c7aa5c500e10a6f214 (diff)
downloadservo-04f8ae56db0ba9df798b39a5b2f1bb1e23d6dcf3.tar.gz
servo-04f8ae56db0ba9df798b39a5b2f1bb1e23d6dcf3.zip
Auto merge of #10786 - zwn:tidy-modelines, r=Manishearth
tidy check for vim and emacs modelines See #10719. It skips *.webidl files for now since I am not sure where they come from and if they should be edited in tree or not. <!-- Reviewable:start --> --- This change is [<img src="https://reviewable.io/review_button.svg" height="35" align="absmiddle" alt="Reviewable"/>](https://reviewable.io/reviews/servo/servo/10786) <!-- Reviewable:end -->
Diffstat (limited to 'python/tidy')
-rw-r--r--python/tidy/servo_tidy/tidy.py10
-rw-r--r--python/tidy/servo_tidy_tests/modeline.txt5
-rw-r--r--python/tidy/servo_tidy_tests/test_tidy.py8
3 files changed, 22 insertions, 1 deletions
diff --git a/python/tidy/servo_tidy/tidy.py b/python/tidy/servo_tidy/tidy.py
index aca74956c6f..b8aee48ac1b 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
@@ -639,7 +647,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 f61c7961195..e07f0d1bb55 100644
--- a/python/tidy/servo_tidy_tests/test_tidy.py
+++ b/python/tidy/servo_tidy_tests/test_tidy.py
@@ -89,6 +89,14 @@ class CheckTidiness(unittest.TestCase):
self.assertEqual('found asterisk instead of minimum version number', errors.next()[2])
self.assertNoMoreErrors(errors)
+ 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)