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.py47
1 files changed, 14 insertions, 33 deletions
diff --git a/pygments/lexers/text.py b/pygments/lexers/text.py
index 12abd35d..4ed18d17 100644
--- a/pygments/lexers/text.py
+++ b/pygments/lexers/text.py
@@ -30,7 +30,7 @@ from pygments.util import get_bool_opt
__all__ = ['IniLexer', 'SourcesListLexer', 'MakefileLexer', 'DiffLexer',
'IrcLogsLexer', 'TexLexer', 'GroffLexer', 'ApacheConfLexer',
'BBCodeLexer', 'MoinWikiLexer', 'RstLexer', 'VimLexer',
- 'GettextLexer', 'WeechatLogLexer']
+ 'GettextLexer']
class IniLexer(RegexLexer):
@@ -202,17 +202,25 @@ class IrcLogsLexer(RegexLexer):
name = 'IRC logs'
aliases = ['irc']
+ filenames = ['*.weechatlog']
mimetypes = ['text/x-irclog']
flags = re.VERBOSE | re.MULTILINE
timestamp = r"""
- ( (?: \[|\()? # Opening bracket or paren for the timestamp
+ (
+ # irssi / xchat and others
+ (?: \[|\()? # Opening bracket or paren for the timestamp
(?: # Timestamp
(?: (?:\d{1,4} [-/]?)+ # Date as - or /-separated groups of digits
[T ])? # Date/time separator: T or space
(?: \d?\d [:.]?)+ # Time as :/.-separated groups of 1 or 2 digits
)
- (?: \]|\))?\s+ )? # Closing bracket or paren for the timestamp
+ (?: \]|\))?\s+ # Closing bracket or paren for the timestamp
+ |
+ # weechat
+ \d{4}\s\w{3}\s\d{2}\s # Date
+ \d{2}:\d{2}:\d{2}\s+ # Time + Whitespace
+ )?
"""
tokens = {
'root': [
@@ -227,9 +235,9 @@ class IrcLogsLexer(RegexLexer):
bygroups(Comment.Preproc, Keyword, Generic.Inserted)),
# join/part msgs
("^" + timestamp + r"""
- (\s*(?:[*]{3}|-!-)\s*) # Star(s)
- ([^\s]+\s+) # Nick + Space
- (.*?\n) # Rest of message """,
+ (\s*(?:\*{3}|<?-[!@=P]?->?)\s*) # Star(s) or symbols
+ ([^\s]+\s+) # Nick + Space
+ (.*?\n) # Rest of message """,
bygroups(Comment.Preproc, Keyword, String, Comment)),
(r"^.*?\n", Text),
],
@@ -702,30 +710,3 @@ class GettextLexer(RegexLexer):
bygroups(Name.Variable, Number.Integer, Name.Variable, Text, String)),
]
}
-
-
-class WeechatLogLexer(RegexLexer):
- """
- Lexer for weechat log files.
-
- *New in Pygments 0.9.*
- """
- name = 'Weechat Log'
- aliases = ['weechatlog']
- filenames = ['*.weechatlog']
- mimetypes = ['text/x-weechatlog']
-
- tokens = {
- 'root' : [
- # date
- (r'(\d{4} \w{3} \d{2} \d{2}:\d{2}:\d{2})(\s+)',
- bygroups(Comment.Preproc, Whitespace)),
- # operators
- (r'(-=-|<--|-->|-@-|-P-)(.*)', bygroups(Operator, Text)),
- # messages
- (r'(<)(\w+)(>)(.*)', bygroups(Operator, Name, Operator, Text)),
- # log start/end
- (r'(\*\*\*\*[\w\s]+)(\d{4} \w{3} \d{2} \d{2}:\d{2}:\d{2}\s+)(\*\*\*\*)',
- Comment)
- ]
- }