summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGaurav Jain <gaurav@gauravjain.org>2014-05-14 02:28:35 -0400
committerGaurav Jain <gaurav@gauravjain.org>2014-05-14 02:28:35 -0400
commiteaa060a062951518866a308f2a9684b889ccaad1 (patch)
tree0b88abe57ef0ea7eb021d2b825bac0bd02829811
parent16b39eea26af87813151b03992f2ed4738057eaa (diff)
downloadpygments-eaa060a062951518866a308f2a9684b889ccaad1.tar.gz
Add support for embedded python in Vim scripts
-rw-r--r--pygments/lexers/text.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/pygments/lexers/text.py b/pygments/lexers/text.py
index fc1cc6a6..6885e652 100644
--- a/pygments/lexers/text.py
+++ b/pygments/lexers/text.py
@@ -17,6 +17,7 @@ from pygments.lexer import Lexer, LexerContext, RegexLexer, ExtendedRegexLexer,
from pygments.token import Punctuation, Text, Comment, Keyword, Name, String, \
Generic, Operator, Number, Whitespace, Literal
from pygments.util import get_bool_opt, ClassNotFound
+from pygments.lexers.agile import PythonLexer
from pygments.lexers.other import BashLexer
__all__ = ['IniLexer', 'PropertiesLexer', 'SourcesListLexer', 'BaseMakefileLexer',
@@ -835,8 +836,16 @@ class VimLexer(RegexLexer):
mimetypes = ['text/x-vim']
flags = re.MULTILINE
+ _python = r'py(?:t(?:h(?:o(?:n)?)?)?)?'
+
tokens = {
'root': [
+ (r'^([ \t:]*)(' + _python + r')([ \t]*)(<<)([ \t]*)(.*)((?:\n|.)*)(\5)',
+ bygroups(using(this), Keyword, Text, Operator, Text, Text,
+ using(PythonLexer), Text)),
+ (r'^([ \t:]*)(' + _python + r')(.*)',
+ bygroups(using(this), Keyword, using(PythonLexer))),
+
(r'^\s*".*', Comment),
(r'[ \t]+', Text),