ThirdParty/Pygments/pygments/modeline.py

changeset 4172
4f20dba37ab6
child 4697
c2e9bf425554
diff -r 8bc578136279 -r 4f20dba37ab6 ThirdParty/Pygments/pygments/modeline.py
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/ThirdParty/Pygments/pygments/modeline.py	Wed Mar 11 18:32:27 2015 +0100
@@ -0,0 +1,40 @@
+# -*- coding: utf-8 -*-
+"""
+    pygments.modeline
+    ~~~~~~~~~~~~~~~~~
+
+    A simple modeline parser (based on pymodeline).
+
+    :copyright: Copyright 2006-2014 by the Pygments team, see AUTHORS.
+    :license: BSD, see LICENSE for details.
+"""
+
+import re
+
+__all__ = ['get_filetype_from_buffer']
+
+modeline_re = re.compile(r'''
+    (?: vi | vim | ex ) (?: [<=>]? \d* )? :
+    .* (?: ft | filetype | syn | syntax ) = ( [^:\s]+ )
+''', re.VERBOSE)
+
+def get_filetype_from_line(l):
+    m = modeline_re.search(l)
+    if m:
+        return m.group(1)
+
+def get_filetype_from_buffer(buf, max_lines=5):
+    """
+    Scan the buffer for modelines and return filetype if one is found.
+    """
+    lines = buf.splitlines()
+    for l in lines[-1:-max_lines-1:-1]:
+        ret = get_filetype_from_line(l)
+        if ret:
+            return ret
+    for l in lines[max_lines:0:-1]:
+        ret = get_filetype_from_line(l)
+        if ret:
+            return ret
+
+    return None

eric ide

mercurial