summaryrefslogtreecommitdiff
path: root/scripts/detect_missing_analyse_text.py
diff options
context:
space:
mode:
authorAlexei Sholik <alcosholik@gmail.com>2014-06-05 04:07:19 +0300
committerAlexei Sholik <alcosholik@gmail.com>2014-06-05 04:07:19 +0300
commitdb1e5ef0852069e7a471e990e6024fdf1b9b8a61 (patch)
treea406476c1d6dd2e64df74b86eae10e376ebd5993 /scripts/detect_missing_analyse_text.py
downloadpygments-git-db1e5ef0852069e7a471e990e6024fdf1b9b8a61.tar.gz
Update ElixirLexer and example_elixir.ex
Elixir syntax has evolved quite significantly since the initial lexer was written. In this update I have rewritten most of the code to support modern Elixir (as of v0.14.0-dev). The example file has also been updated to give an quick overview of most of the language constructs.
Diffstat (limited to 'scripts/detect_missing_analyse_text.py')
-rw-r--r--scripts/detect_missing_analyse_text.py33
1 files changed, 33 insertions, 0 deletions
diff --git a/scripts/detect_missing_analyse_text.py b/scripts/detect_missing_analyse_text.py
new file mode 100644
index 00000000..ab58558e
--- /dev/null
+++ b/scripts/detect_missing_analyse_text.py
@@ -0,0 +1,33 @@
+from __future__ import print_function
+import sys
+
+from pygments.lexers import get_all_lexers, find_lexer_class
+from pygments.lexer import Lexer
+
+def main():
+ uses = {}
+
+ for name, aliases, filenames, mimetypes in get_all_lexers():
+ cls = find_lexer_class(name)
+ if not cls.aliases:
+ print(cls, "has no aliases")
+ for f in filenames:
+ if f not in uses:
+ uses[f] = []
+ uses[f].append(cls)
+
+ ret = 0
+ for k, v in uses.items():
+ if len(v) > 1:
+ #print "Multiple for", k, v
+ for i in v:
+ if i.analyse_text is None:
+ print(i, "has a None analyse_text")
+ ret |= 1
+ elif Lexer.analyse_text.__doc__ == i.analyse_text.__doc__:
+ print(i, "needs analyse_text, multiple lexers for", k)
+ ret |= 2
+ return ret
+
+if __name__ == '__main__':
+ sys.exit(main())