Add linter for strings attribute names
Only one bad example for now, which is a misspelling that's not
entirely uncommon and can lead to real problems (see linked bug).
Example output:
Line 58: 'my_new': Misspelled <string> attribute.
Actual: translateable
Example: translatable
Bug: 119884572
Test: with a misspelled attribute
Change-Id: If61412fe318a34191920781c4834584363080e11
diff --git a/tools/stringslint/stringslint.py b/tools/stringslint/stringslint.py
index 03c0b9a..afe91cd 100644
--- a/tools/stringslint/stringslint.py
+++ b/tools/stringslint/stringslint.py
@@ -145,6 +145,13 @@
if "translatable" in child.attrib and child.attrib["translatable"].lower() == "false":
continue
+ misspelled_attributes = [
+ ("translateable", "translatable"),
+ ]
+ for misspelling, expected in misspelled_attributes:
+ if misspelling in child.attrib:
+ error(child, "Misspelled <string> attribute.", misspelling, expected)
+
limit = re.search("CHAR[ _-]LIMIT=(\d+|NONE|none)", comment.text)
if limit is None:
info(child, "Missing CHAR LIMIT to aid translation",