diff options
author | hhsprings <xwhhsprings@gmail.com> | 2015-11-10 12:26:20 +0900 |
---|---|---|
committer | hhsprings <xwhhsprings@gmail.com> | 2015-11-10 12:26:20 +0900 |
commit | edceaf3c4e99b75451e1394729e315e9ff03d12c (patch) | |
tree | 69956f98b7c15f638f1cea07696a6c03ca8e37df | |
parent | 77eac303fc676b8f272cc58e9eb5854cb94a50c3 (diff) | |
download | pygments-edceaf3c4e99b75451e1394729e315e9ff03d12c.tar.gz |
merge configs_pkgmng.py to configs.py.
-rw-r--r-- | pygments/lexers/_mapping.py | 4 | ||||
-rw-r--r-- | pygments/lexers/configs.py | 116 | ||||
-rw-r--r-- | pygments/lexers/configs_pkgmng.py | 129 |
3 files changed, 117 insertions, 132 deletions
diff --git a/pygments/lexers/_mapping.py b/pygments/lexers/_mapping.py index f75cface..64d6c852 100644 --- a/pygments/lexers/_mapping.py +++ b/pygments/lexers/_mapping.py @@ -284,7 +284,7 @@ LEXERS = { 'OocLexer': ('pygments.lexers.ooc', 'Ooc', ('ooc',), ('*.ooc',), ('text/x-ooc',)), 'OpaLexer': ('pygments.lexers.ml', 'Opa', ('opa',), ('*.opa',), ('text/x-opa',)), 'OpenEdgeLexer': ('pygments.lexers.business', 'OpenEdge ABL', ('openedge', 'abl', 'progress'), ('*.p', '*.cls'), ('text/x-openedge', 'application/x-openedge')), - 'PacmanConfLexer': ('pygments.lexers.configs_pkgmng', 'PacmanConf', ('pacmanconf',), ('pacman.conf',), ()), + 'PacmanConfLexer': ('pygments.lexers.configs', 'PacmanConf', ('pacmanconf',), ('pacman.conf',), ()), 'PanLexer': ('pygments.lexers.dsls', 'Pan', ('pan',), ('*.pan',), ()), 'ParaSailLexer': ('pygments.lexers.parasail', 'ParaSail', ('parasail',), ('*.psi', '*.psl'), ('text/x-parasail',)), 'PawnLexer': ('pygments.lexers.pawn', 'Pawn', ('pawn',), ('*.p', '*.pwn', '*.inc'), ('text/x-pawn',)), @@ -293,7 +293,7 @@ LEXERS = { 'PhpLexer': ('pygments.lexers.php', 'PHP', ('php', 'php3', 'php4', 'php5'), ('*.php', '*.php[345]', '*.inc'), ('text/x-php',)), 'PigLexer': ('pygments.lexers.jvm', 'Pig', ('pig',), ('*.pig',), ('text/x-pig',)), 'PikeLexer': ('pygments.lexers.c_like', 'Pike', ('pike',), ('*.pike', '*.pmod'), ('text/x-pike',)), - 'PkgConfigLexer': ('pygments.lexers.configs_pkgmng', 'PkgConfig', ('pkgconfig',), ('*.pc',), ()), + 'PkgConfigLexer': ('pygments.lexers.configs', 'PkgConfig', ('pkgconfig',), ('*.pc',), ()), 'PlPgsqlLexer': ('pygments.lexers.sql', 'PL/pgSQL', ('plpgsql',), (), ('text/x-plpgsql',)), 'PostScriptLexer': ('pygments.lexers.graphics', 'PostScript', ('postscript', 'postscr'), ('*.ps', '*.eps'), ('application/postscript',)), 'PostgresConsoleLexer': ('pygments.lexers.sql', 'PostgreSQL console (psql)', ('psql', 'postgresql-console', 'postgres-console'), (), ('text/x-postgresql-psql',)), diff --git a/pygments/lexers/configs.py b/pygments/lexers/configs.py index f6f280ee..c46d8bb8 100644 --- a/pygments/lexers/configs.py +++ b/pygments/lexers/configs.py @@ -19,7 +19,8 @@ from pygments.lexers.shell import BashLexer __all__ = ['IniLexer', 'RegeditLexer', 'PropertiesLexer', 'KconfigLexer', 'Cfengine3Lexer', 'ApacheConfLexer', 'SquidConfLexer', 'NginxConfLexer', 'LighttpdConfLexer', 'DockerLexer', - 'TerraformLexer', 'TermcapLexer', 'TerminfoLexer'] + 'TerraformLexer', 'TermcapLexer', 'TerminfoLexer', + 'PkgConfigLexer', 'PacmanConfLexer'] class IniLexer(RegexLexer): @@ -711,3 +712,116 @@ class TerminfoLexer(RegexLexer): (r'.', Literal), ], } + + +class PkgConfigLexer(RegexLexer): + """ + Lexer for `pkg-config + <http://www.freedesktop.org/wiki/Software/pkg-config/>`_ + (see also `manual page <http://linux.die.net/man/1/pkg-config>`_). + + .. versionadded:: 2.1 + """ + + name = 'PkgConfig' + aliases = ['pkgconfig',] + filenames = ['*.pc',] + mimetypes = [] + + tokens = { + 'root': [ + (r'#.*$', Comment.Single), + + # variable definitions + (r'^(\w+)(=)', bygroups(Name.Attribute, Operator)), + + # keyword lines + (r'^([\w.]+)(:)', + bygroups(Name.Tag, Punctuation), 'spvalue'), + + # variable references + include('interp'), + + # fallback + (r'[^${}#=:\n.]+', Text), + (r'.', Text), + ], + 'interp': [ + # you can escape literal "$" as "$$" + (r'\$\$', Text), + + # variable references + (r'\$\{', String.Interpol, 'curly'), + ], + 'curly': [ + (r'\}', String.Interpol, '#pop'), + (r'\w+', Name.Attribute), + ], + 'spvalue': [ + include('interp'), + + (r'#.*$', Comment.Single, '#pop'), + (r'\n', Text, '#pop'), + + # fallback + (r'[^${}#\n]+', Text), + (r'.', Text), + ], + } + + +class PacmanConfLexer(RegexLexer): + """ + Lexer for `pacman.conf + <https://www.archlinux.org/pacman/pacman.conf.5.html>`_. + + Actually, IniLexer works almost fine for this format, + but it yield error token. It is because pacman.conf has + a form without assignment like: + + UseSyslog + Color + TotalDownload + CheckSpace + VerbosePkgLists + + These are flags to switch on. + + .. versionadded:: 2.1 + """ + + name = 'PacmanConf' + aliases = ['pacmanconf',] + filenames = ['pacman.conf',] + mimetypes = [] + + tokens = { + 'root': [ + # comment + (r'#.*$', Comment.Single), + + # section header + (r'^\s*\[.*?\]\s*$', Keyword), + + # variable definitions + # (Leading space is allowed...) + (r'(\w+)(\s*)(=)', + bygroups(Name.Attribute, Text, Operator)), + + # flags to on + (r'^(\s*)(\w+)(\s*)$', + bygroups(Text, Name.Attribute, Text)), + + # built-in special values + (words(( + '$repo', # repository + '$arch', # architecture + '%o', # outfile + '%u', # url + ), suffix=r'\b'), + Name.Variable), + + # fallback + (r'.', Text), + ], + } diff --git a/pygments/lexers/configs_pkgmng.py b/pygments/lexers/configs_pkgmng.py deleted file mode 100644 index 5012930f..00000000 --- a/pygments/lexers/configs_pkgmng.py +++ /dev/null @@ -1,129 +0,0 @@ -# -*- coding: utf-8 -*- -""" - pygments.lexers.configs_pkgmng - ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - - Lexers for package manager configuration file formats. - - :copyright: Copyright 2006-2015 by the Pygments team, see AUTHORS. - :license: BSD, see LICENSE for details. -""" - -from pygments.lexer import RegexLexer, bygroups, include, words -from pygments.token import Text, Comment, Operator, Name, \ - Punctuation, String, Keyword - -__all__ = ['PkgConfigLexer', 'PacmanConfLexer'] - - -class PkgConfigLexer(RegexLexer): - """ - Lexer for `pkg-config - <http://www.freedesktop.org/wiki/Software/pkg-config/>`_ - (see also `manual page <http://linux.die.net/man/1/pkg-config>`_). - - .. versionadded:: 2.1 - """ - - name = 'PkgConfig' - aliases = ['pkgconfig',] - filenames = ['*.pc',] - mimetypes = [] - - tokens = { - 'root': [ - (r'#.*$', Comment.Single), - - # variable definitions - (r'^(\w+)(=)', bygroups(Name.Attribute, Operator)), - - # keyword lines - (r'^([\w.]+)(:)', - bygroups(Name.Tag, Punctuation), 'spvalue'), - - # variable references - include('interp'), - - # fallback - (r'[^${}#=:\n.]+', Text), - (r'.', Text), - ], - 'interp': [ - # you can escape literal "$" as "$$" - (r'\$\$', Text), - - # variable references - (r'\$\{', String.Interpol, 'curly'), - ], - 'curly': [ - (r'\}', String.Interpol, '#pop'), - (r'\w+', Name.Attribute), - ], - 'spvalue': [ - include('interp'), - - (r'#.*$', Comment.Single, '#pop'), - (r'\n', Text, '#pop'), - - # fallback - (r'[^${}#\n]+', Text), - (r'.', Text), - ], - } - - -class PacmanConfLexer(RegexLexer): - """ - Lexer for `pacman.conf - <https://www.archlinux.org/pacman/pacman.conf.5.html>`_. - - Actually, IniLexer works almost fine for this format, - but it yield error token. It is because pacman.conf has - a form without assignment like: - - UseSyslog - Color - TotalDownload - CheckSpace - VerbosePkgLists - - These are flags to switch on. - - .. versionadded:: 2.1 - """ - - name = 'PacmanConf' - aliases = ['pacmanconf',] - filenames = ['pacman.conf',] - mimetypes = [] - - tokens = { - 'root': [ - # comment - (r'#.*$', Comment.Single), - - # section header - (r'^\s*\[.*?\]\s*$', Keyword), - - # variable definitions - # (Leading space is allowed...) - (r'(\w+)(\s*)(=)', - bygroups(Name.Attribute, Text, Operator)), - - # flags to on - (r'^(\s*)(\w+)(\s*)$', - bygroups(Text, Name.Attribute, Text)), - - # built-in special values - (words(( - '$repo', # repository - '$arch', # architecture - '%o', # outfile - '%u', # url - ), suffix=r'\b'), - Name.Variable), - - # fallback - (r'.', Text), - ], - } |