summaryrefslogtreecommitdiff
path: root/pygments/lexers/text.py
diff options
context:
space:
mode:
Diffstat (limited to 'pygments/lexers/text.py')
-rw-r--r--pygments/lexers/text.py29
1 files changed, 28 insertions, 1 deletions
diff --git a/pygments/lexers/text.py b/pygments/lexers/text.py
index 6c2a4119..fc1cc6a6 100644
--- a/pygments/lexers/text.py
+++ b/pygments/lexers/text.py
@@ -26,7 +26,7 @@ __all__ = ['IniLexer', 'PropertiesLexer', 'SourcesListLexer', 'BaseMakefileLexer
'DebianControlLexer', 'DarcsPatchLexer', 'YamlLexer',
'LighttpdConfLexer', 'NginxConfLexer', 'CMakeLexer', 'HttpLexer',
'PyPyLogLexer', 'RegeditLexer', 'HxmlLexer', 'EbnfLexer',
- 'TodotxtLexer']
+ 'TodotxtLexer', 'DockerLexer']
class IniLexer(RegexLexer):
@@ -2017,3 +2017,30 @@ class TodotxtLexer(RegexLexer):
('\s+', IncompleteTaskText),
],
}
+
+
+class DockerLexer(RegexLexer):
+ """
+ Lexer for `Docker <http://docker.io>`_ configuration files.
+
+ .. versionadded:: 2.0
+ """
+ name = 'Docker'
+ aliases = ['docker', 'dockerfile']
+ filenames = ['Dockerfile', '*.docker']
+ mimetypes = ['text/x-dockerfile-config']
+
+ _keywords = (r'(?:FROM|MAINTAINER|RUN|CMD|EXPOSE|ENV|ADD|ENTRYPOINT|'
+ r'VOLUME|WORKDIR)')
+
+ flags = re.IGNORECASE | re.MULTILINE
+
+ tokens = {
+ 'root': [
+ (r'^(ONBUILD)(\s+)(%s)\b' % (_keywords,),
+ bygroups(Name.Keyword, Whitespace, Keyword)),
+ (_keywords + r'\b', Keyword),
+ (r'#.*', Comment),
+ (r'.+', using(BashLexer)),
+ ],
+ }