Merged with Spanish translations update and released them.

Sat, 30 Jul 2016 11:14:55 +0200

author
Detlev Offenbach <detlev@die-offenbachs.de>
date
Sat, 30 Jul 2016 11:14:55 +0200
changeset 5074
ce44b7cfa82b
parent 5072
aab59042fefb (diff)
parent 5073
6dabb2d09391 (current diff)
child 5079
afc7a0bfcbf7

Merged with Spanish translations update and released them.

i18n/eric6_es.qm file | annotate | diff | comparison | revisions
i18n/eric6_es.ts file | annotate | diff | comparison | revisions
--- a/ThirdParty/Pygments/pygments/CHANGES	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/CHANGES	Sat Jul 30 11:14:55 2016 +0200
@@ -6,6 +6,34 @@
 pull request numbers to the requests at
 <https://bitbucket.org/birkenfeld/pygments-main/pull-requests/merged>.
 
+Version 2.1.3
+-------------
+(released Mar 2, 2016)
+
+- Fixed regression in Bash lexer (PR#563)
+
+
+Version 2.1.2
+-------------
+(released Feb 29, 2016)
+
+- Fixed Python 3 regression in image formatter (#1215)
+- Fixed regression in Bash lexer (PR#562)
+
+
+Version 2.1.1
+-------------
+(relased Feb 14, 2016)
+
+- Fixed Jython compatibility (#1205)
+- Fixed HTML formatter output with leading empty lines (#1111)
+- Added a mapping table for LaTeX encodings and added utf8 (#1152)
+- Fixed image formatter font searching on Macs (#1188)
+- Fixed deepcopy-ing of Token instances (#1168)
+- Fixed Julia string interpolation (#1170)
+- Fixed statefulness of HttpLexer between get_tokens calls
+- Many smaller fixes to various lexers
+
 
 Version 2.1
 -----------
--- a/ThirdParty/Pygments/pygments/PKG-INFO	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/PKG-INFO	Sat Jul 30 11:14:55 2016 +0200
@@ -1,6 +1,6 @@
 Metadata-Version: 1.1
 Name: Pygments
-Version: 2.1
+Version: 2.1.3
 Summary: Pygments is a syntax highlighting package written in Python.
 Home-page: http://pygments.org/
 Author: Georg Brandl
--- a/ThirdParty/Pygments/pygments/__init__.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/__init__.py	Sat Jul 30 11:14:55 2016 +0200
@@ -26,7 +26,7 @@
     :license: BSD, see LICENSE for details.
 """
 
-__version__ = '2.1'
+__version__ = '2.1.3'
 __docformat__ = 'restructuredtext'
 
 __all__ = ['lex', 'format', 'highlight']
--- a/ThirdParty/Pygments/pygments/formatters/_mapping.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/formatters/_mapping.py	Sat Jul 30 11:14:55 2016 +0200
@@ -77,7 +77,7 @@
     footer = content[content.find("if __name__ == '__main__':"):]
 
     # write new file
-    with open(__file__, 'wb') as fp:
+    with open(__file__, 'w') as fp:
         fp.write(header)
         fp.write('FORMATTERS = {\n    %s\n}\n\n' % ',\n    '.join(found_formatters))
         fp.write(footer)
--- a/ThirdParty/Pygments/pygments/formatters/html.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/formatters/html.py	Sat Jul 30 11:14:55 2016 +0200
@@ -702,7 +702,9 @@
         if self.filename:
             yield 0, ('<span class="filename">' + self.filename + '</span>')
 
-        yield 0, ('<pre' + (style and ' style="%s"' % style) + '>')
+        # the empty span here is to keep leading empty lines from being
+        # ignored by HTML parsers
+        yield 0, ('<pre' + (style and ' style="%s"' % style) + '><span></span>')
         for tup in inner:
             yield tup
         yield 0, '</pre>'
--- a/ThirdParty/Pygments/pygments/formatters/img.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/formatters/img.py	Sat Jul 30 11:14:55 2016 +0200
@@ -82,9 +82,13 @@
         stdout, _ = proc.communicate()
         if proc.returncode == 0:
             lines = stdout.splitlines()
-            if lines:
-                path = lines[0].decode().strip().strip(':')
-                return path
+            for line in lines:
+                if line.startswith(b'Fontconfig warning:'):
+                    continue
+                path = line.decode().strip().strip(':')
+                if path:
+                    return path
+            return None
 
     def _create_nix(self):
         for name in STYLES['NORMAL']:
--- a/ThirdParty/Pygments/pygments/formatters/latex.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/formatters/latex.py	Sat Jul 30 11:14:55 2016 +0200
@@ -413,11 +413,18 @@
         outfile.write(u'\\end{' + self.envname + u'}\n')
 
         if self.full:
+            encoding = self.encoding or 'utf8'
+            # map known existings encodings from LaTeX distribution
+            encoding = {
+                'utf_8': 'utf8',
+                'latin_1': 'latin1',
+                'iso_8859_1': 'latin1',
+            }.get(encoding.replace('-', '_'), encoding)
             realoutfile.write(DOC_TEMPLATE %
                 dict(docclass  = self.docclass,
                      preamble  = self.preamble,
                      title     = self.title,
-                     encoding  = self.encoding or 'utf8',
+                     encoding  = encoding,
                      styledefs = self.get_style_defs(),
                      code      = outfile.getvalue()))
 
--- a/ThirdParty/Pygments/pygments/lexers/_mapping.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/lexers/_mapping.py	Sat Jul 30 11:14:55 2016 +0200
@@ -46,7 +46,7 @@
     'BBCodeLexer': ('pygments.lexers.markup', 'BBCode', ('bbcode',), (), ('text/x-bbcode',)),
     'BCLexer': ('pygments.lexers.algebra', 'BC', ('bc',), ('*.bc',), ()),
     'BaseMakefileLexer': ('pygments.lexers.make', 'Base Makefile', ('basemake',), (), ()),
-    'BashLexer': ('pygments.lexers.shell', 'Bash', ('bash', 'sh', 'ksh', 'shell'), ('*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'PKGBUILD'), ('application/x-sh', 'application/x-shellscript')),
+    'BashLexer': ('pygments.lexers.shell', 'Bash', ('bash', 'sh', 'ksh', 'shell'), ('*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass', '*.exheres-0', '*.exlib', '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'PKGBUILD'), ('application/x-sh', 'application/x-shellscript')),
     'BashSessionLexer': ('pygments.lexers.shell', 'Bash Session', ('console', 'shell-session'), ('*.sh-session', '*.shell-session'), ('application/x-shell-session', 'application/x-sh-session')),
     'BatchLexer': ('pygments.lexers.shell', 'Batchfile', ('bat', 'batch', 'dosbatch', 'winbatch'), ('*.bat', '*.cmd'), ('application/x-dos-batch',)),
     'BefungeLexer': ('pygments.lexers.esoteric', 'Befunge', ('befunge',), ('*.befunge',), ('application/x-befunge',)),
@@ -130,7 +130,7 @@
     'ElixirConsoleLexer': ('pygments.lexers.erlang', 'Elixir iex session', ('iex',), (), ('text/x-elixir-shellsession',)),
     'ElixirLexer': ('pygments.lexers.erlang', 'Elixir', ('elixir', 'ex', 'exs'), ('*.ex', '*.exs'), ('text/x-elixir',)),
     'ElmLexer': ('pygments.lexers.elm', 'Elm', ('elm',), ('*.elm',), ('text/x-elm',)),
-    'EmacsLispLexer': ('pygments.lexers.lisp', 'EmacsLisp', ('emacs', 'elisp'), ('*.el',), ('text/x-elisp', 'application/x-elisp')),
+    'EmacsLispLexer': ('pygments.lexers.lisp', 'EmacsLisp', ('emacs', 'elisp', 'emacs-lisp'), ('*.el',), ('text/x-elisp', 'application/x-elisp')),
     'ErbLexer': ('pygments.lexers.templates', 'ERB', ('erb',), (), ('application/x-ruby-templating',)),
     'ErlangLexer': ('pygments.lexers.erlang', 'Erlang', ('erlang',), ('*.erl', '*.hrl', '*.es', '*.escript'), ('text/x-erlang',)),
     'ErlangShellLexer': ('pygments.lexers.erlang', 'Erlang erl session', ('erl',), ('*.erl-sh',), ('text/x-erl-shellsession',)),
@@ -457,7 +457,7 @@
     footer = content[content.find("if __name__ == '__main__':"):]
 
     # write new file
-    with open(__file__, 'wb') as fp:
+    with open(__file__, 'w') as fp:
         fp.write(header)
         fp.write('LEXERS = {\n    %s,\n}\n\n' % ',\n    '.join(found_lexers))
         fp.write(footer)
--- a/ThirdParty/Pygments/pygments/lexers/c_cpp.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/lexers/c_cpp.py	Sat Jul 30 11:14:55 2016 +0200
@@ -216,6 +216,8 @@
                 'final'), suffix=r'\b'), Keyword),
             (r'char(16_t|32_t)\b', Keyword.Type),
             (r'(class)(\s+)', bygroups(Keyword, Text), 'classname'),
+            # C++11 raw strings
+            (r'R"\(', String, 'rawstring'),
             inherit,
         ],
         'root': [
@@ -232,10 +234,15 @@
             # template specification
             (r'\s*(?=>)', Text, '#pop'),
         ],
+        'rawstring': [
+            (r'\)"', String, '#pop'),
+            (r'[^)]+', String),
+            (r'\)', String),
+        ],
     }
 
     def analyse_text(text):
-        if re.search('#include <[a-z]+>', text):
+        if re.search('#include <[a-z_]+>', text):
             return 0.2
         if re.search('using namespace ', text):
             return 0.4
--- a/ThirdParty/Pygments/pygments/lexers/chapel.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/lexers/chapel.py	Sat Jul 30 11:14:55 2016 +0200
@@ -44,12 +44,13 @@
             (words((
                 'align', 'atomic', 'begin', 'break', 'by', 'cobegin', 'coforall',
                 'continue', 'delete', 'dmapped', 'do', 'domain', 'else', 'enum',
-                'export', 'extern', 'for', 'forall', 'if', 'index', 'inline',
-                'iter', 'label', 'lambda', 'let', 'local', 'new', 'noinit', 'on',
-                'otherwise', 'pragma', 'private', 'public', 'reduce',
-                'require', 'return', 'scan', 'select', 'serial', 'single',
-                'sparse', 'subdomain', 'sync', 'then', 'use', 'when', 'where',
-                'while', 'with', 'yield', 'zip'), suffix=r'\b'),
+                'except', 'export', 'extern', 'for', 'forall', 'if', 'index',
+                'inline', 'iter', 'label', 'lambda', 'let', 'local', 'new',
+                'noinit', 'on', 'only', 'otherwise', 'pragma', 'private',
+                'public', 'reduce', 'require', 'return', 'scan', 'select',
+                'serial', 'single', 'sparse', 'subdomain', 'sync', 'then',
+                'use', 'when', 'where', 'while', 'with', 'yield', 'zip'),
+                   suffix=r'\b'),
              Keyword),
             (r'(proc)((?:\s|\\\s)+)', bygroups(Keyword, Text), 'procname'),
             (r'(class|module|record|union)(\s+)', bygroups(Keyword, Text),
--- a/ThirdParty/Pygments/pygments/lexers/dotnet.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/lexers/dotnet.py	Sat Jul 30 11:14:55 2016 +0200
@@ -97,17 +97,17 @@
                  Comment.Preproc),
                 (r'\b(extern)(\s+)(alias)\b', bygroups(Keyword, Text,
                  Keyword)),
-                (r'(abstract|as|async|await|base|break|case|catch|'
+                (r'(abstract|as|async|await|base|break|by|case|catch|'
                  r'checked|const|continue|default|delegate|'
                  r'do|else|enum|event|explicit|extern|false|finally|'
                  r'fixed|for|foreach|goto|if|implicit|in|interface|'
-                 r'internal|is|lock|new|null|operator|'
+                 r'internal|is|let|lock|new|null|on|operator|'
                  r'out|override|params|private|protected|public|readonly|'
                  r'ref|return|sealed|sizeof|stackalloc|static|'
                  r'switch|this|throw|true|try|typeof|'
                  r'unchecked|unsafe|virtual|void|while|'
                  r'get|set|new|partial|yield|add|remove|value|alias|ascending|'
-                 r'descending|from|group|into|orderby|select|where|'
+                 r'descending|from|group|into|orderby|select|thenby|where|'
                  r'join|equals)\b', Keyword),
                 (r'(global)(::)', bygroups(Keyword, Punctuation)),
                 (r'(bool|byte|char|decimal|double|dynamic|float|int|long|object|'
--- a/ThirdParty/Pygments/pygments/lexers/hdl.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/lexers/hdl.py	Sat Jul 30 11:14:55 2016 +0200
@@ -108,8 +108,8 @@
                 'trior', 'tri0', 'tri1', 'trireg', 'uwire', 'wire', 'wand', 'wo'
                 'shortreal', 'real', 'realtime'), suffix=r'\b'),
              Keyword.Type),
-            ('[a-zA-Z_]\w*:(?!:)', Name.Label),
-            ('[a-zA-Z_]\w*', Name),
+            (r'[a-zA-Z_]\w*:(?!:)', Name.Label),
+            (r'\$?[a-zA-Z_]\w*', Name),
         ],
         'string': [
             (r'"', String, '#pop'),
@@ -250,8 +250,8 @@
                 'trior', 'tri0', 'tri1', 'trireg', 'uwire', 'wire', 'wand', 'wo'
                 'shortreal', 'real', 'realtime'), suffix=r'\b'),
              Keyword.Type),
-            ('[a-zA-Z_]\w*:(?!:)', Name.Label),
-            ('[a-zA-Z_]\w*', Name),
+            (r'[a-zA-Z_]\w*:(?!:)', Name.Label),
+            (r'\$?[a-zA-Z_]\w*', Name),
         ],
         'classname': [
             (r'[a-zA-Z_]\w*', Name.Class, '#pop'),
@@ -308,20 +308,27 @@
             (r'[~!%^&*+=|?:<>/-]', Operator),
             (r"'[a-z_]\w*", Name.Attribute),
             (r'[()\[\],.;\']', Punctuation),
-            (r'"[^\n\\]*"', String),
+            (r'"[^\n\\"]*"', String),
 
             (r'(library)(\s+)([a-z_]\w*)',
              bygroups(Keyword, Text, Name.Namespace)),
             (r'(use)(\s+)(entity)', bygroups(Keyword, Text, Keyword)),
+            (r'(use)(\s+)([a-z_][\w.]*\.)(all)',
+             bygroups(Keyword, Text, Name.Namespace, Keyword)),
             (r'(use)(\s+)([a-z_][\w.]*)',
              bygroups(Keyword, Text, Name.Namespace)),
+            (r'(std|ieee)(\.[a-z_]\w*)',
+             bygroups(Name.Namespace, Name.Namespace)),
+            (words(('std', 'ieee', 'work'), suffix=r'\b'),
+             Name.Namespace),
             (r'(entity|component)(\s+)([a-z_]\w*)',
              bygroups(Keyword, Text, Name.Class)),
             (r'(architecture|configuration)(\s+)([a-z_]\w*)(\s+)'
              r'(of)(\s+)([a-z_]\w*)(\s+)(is)',
              bygroups(Keyword, Text, Name.Class, Text, Keyword, Text,
                       Name.Class, Text, Keyword)),
-
+            (r'([a-z_]\w*)(:)(\s+)(process|for)',
+             bygroups(Name.Class, Operator, Text, Keyword)),
             (r'(end)(\s+)', bygroups(using(this), Text), 'endblock'),
 
             include('types'),
@@ -341,7 +348,7 @@
                 'boolean', 'bit', 'character', 'severity_level', 'integer', 'time',
                 'delay_length', 'natural', 'positive', 'string', 'bit_vector',
                 'file_open_kind', 'file_open_status', 'std_ulogic', 'std_ulogic_vector',
-                'std_logic', 'std_logic_vector'), suffix=r'\b'),
+                'std_logic', 'std_logic_vector', 'signed', 'unsigned'), suffix=r'\b'),
              Keyword.Type),
         ],
         'keywords': [
@@ -357,8 +364,8 @@
                 'next', 'nor', 'not', 'null', 'of', 'on',
                 'open', 'or', 'others', 'out', 'package', 'port',
                 'postponed', 'procedure', 'process', 'pure', 'range', 'record',
-                'register', 'reject', 'return', 'rol', 'ror', 'select',
-                'severity', 'signal', 'shared', 'sla', 'sli', 'sra',
+                'register', 'reject', 'rem', 'return', 'rol', 'ror', 'select',
+                'severity', 'signal', 'shared', 'sla', 'sll', 'sra',
                 'srl', 'subtype', 'then', 'to', 'transport', 'type',
                 'units', 'until', 'use', 'variable', 'wait', 'when',
                 'while', 'with', 'xnor', 'xor'), suffix=r'\b'),
--- a/ThirdParty/Pygments/pygments/lexers/julia.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/lexers/julia.py	Sat Jul 30 11:14:55 2016 +0200
@@ -65,7 +65,7 @@
                 bygroups(Keyword, Name.Function), 'funcname'),
 
             # types
-            (r'(type|typealias|abstract)((?:\s|\\\s)+)',
+            (r'(type|typealias|abstract|immutable)((?:\s|\\\s)+)',
                 bygroups(Keyword, Name.Class), 'typename'),
 
             # operators
@@ -132,14 +132,23 @@
         'string': [
             (r'"', String, '#pop'),
             (r'\\\\|\\"|\\\n', String.Escape),  # included here for raw strings
-            (r'\$(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?',
-                String.Interpol),
-            (r'[^\\"$]+', String),
-            # quotes, dollar signs, and backslashes must be parsed one at a time
-            (r'["\\]', String),
-            # unhandled string formatting sign
-            (r'\$', String)
+            # Interpolation is defined as "$" followed by the shortest full
+            # expression, which is something we can't parse.
+            # Include the most common cases here: $word, and $(paren'd expr).
+            (r'\$[a-zA-Z_]+', String.Interpol),
+            (r'\$\(', String.Interpol, 'in-intp'),
+            # @printf and @sprintf formats
+            (r'%[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?[hlL]?[diouxXeEfFgGcrs%]',
+             String.Interpol),
+            (r'[^$%"\\]+', String),
+            # unhandled special signs
+            (r'[$%"\\]', String),
         ],
+        'in-intp': [
+            (r'[^()]+', String.Interpol),
+            (r'\(', String.Interpol, '#push'),
+            (r'\)', String.Interpol, '#pop'),
+        ]
     }
 
     def analyse_text(text):
--- a/ThirdParty/Pygments/pygments/lexers/lisp.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/lexers/lisp.py	Sat Jul 30 11:14:55 2016 +0200
@@ -1488,7 +1488,7 @@
     .. versionadded:: 2.1
     """
     name = 'EmacsLisp'
-    aliases = ['emacs', 'elisp']
+    aliases = ['emacs', 'elisp', 'emacs-lisp']
     filenames = ['*.el']
     mimetypes = ['text/x-elisp', 'application/x-elisp']
 
--- a/ThirdParty/Pygments/pygments/lexers/python.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/lexers/python.py	Sat Jul 30 11:14:55 2016 +0200
@@ -213,6 +213,26 @@
 
     uni_name = "[%s][%s]*" % (uni.xid_start, uni.xid_continue)
 
+    def innerstring_rules(ttype):
+        return [
+            # the old style '%s' % (...) string formatting (still valid in Py3)
+            (r'%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?'
+             '[hlL]?[diouxXeEfFgGcrs%]', String.Interpol),
+            # the new style '{}'.format(...) string formatting
+            (r'\{'
+             '((\w+)((\.\w+)|(\[[^\]]+\]))*)?' # field name
+             '(\![sra])?'                      # conversion
+             '(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[bcdeEfFgGnosxX%]?)?'
+             '\}', String.Interpol),
+
+            # backslashes, quotes and formatting signs must be parsed one at a time
+            (r'[^\\\'"%\{\n]+', ttype),
+            (r'[\'"\\]', ttype),
+            # unhandled string formatting sign
+            (r'%|(\{{1,2})', ttype)
+            # newlines are an error (use "nl" state)
+        ]
+
     tokens = PythonLexer.tokens.copy()
     tokens['keywords'] = [
         (words((
@@ -295,23 +315,8 @@
         (uni_name, Name.Namespace),
         default('#pop'),
     ]
-    tokens['strings'] = [
-        # the old style '%s' % (...) string formatting (still valid in Py3)
-        (r'%(\(\w+\))?[-#0 +]*([0-9]+|[*])?(\.([0-9]+|[*]))?'
-         '[hlL]?[diouxXeEfFgGcrs%]', String.Interpol),
-        # the new style '{}'.format(...) string formatting
-        (r'\{'
-         '((\w+)((\.\w+)|(\[[^\]]+\]))*)?' # field name
-         '(\![sra])?'                      # conversion
-         '(\:(.?[<>=\^])?[-+ ]?#?0?(\d+)?,?(\.\d+)?[bcdeEfFgGnosxX%]?)?'
-         '\}', String.Interpol),
-        # backslashes, quotes and formatting signs must be parsed one at a time
-        (r'[^\\\'"%\{\n]+', String),
-        (r'[\'"\\]', String),
-        # unhandled string formatting sign
-        (r'%|(\{{1,2})', String)
-        # newlines are an error (use "nl" state)
-    ]
+    tokens['strings-single'] = innerstring_rules(String.Single)
+    tokens['strings-double'] = innerstring_rules(String.Double)
 
     def analyse_text(text):
         return shebang_matches(text, r'pythonw?3(\.\d)?')
--- a/ThirdParty/Pygments/pygments/lexers/rdf.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/lexers/rdf.py	Sat Jul 30 11:14:55 2016 +0200
@@ -29,43 +29,56 @@
     filenames = ['*.rq', '*.sparql']
     mimetypes = ['application/sparql-query']
 
+    # character group definitions ::
+
+    PN_CHARS_BASE_GRP = (u'a-zA-Z'
+                         u'\u00c0-\u00d6'
+                         u'\u00d8-\u00f6'
+                         u'\u00f8-\u02ff'
+                         u'\u0370-\u037d'
+                         u'\u037f-\u1fff'
+                         u'\u200c-\u200d'
+                         u'\u2070-\u218f'
+                         u'\u2c00-\u2fef'
+                         u'\u3001-\ud7ff'
+                         u'\uf900-\ufdcf'
+                         u'\ufdf0-\ufffd'
+                         u'\U00010000-\U000effff')
+
+    PN_CHARS_U_GRP = (PN_CHARS_BASE_GRP + '_')
+
+    PN_CHARS_GRP = (PN_CHARS_U_GRP +
+                    r'\-' +
+                    r'0-9' +
+                    u'\u00b7' +
+                    u'\u0300-\u036f' +
+                    u'\u203f-\u2040')
+
+    HEX_GRP = '0-9A-Fa-f'
+
+    PN_LOCAL_ESC_CHARS_GRP = r' _~.\-!$&""()*+,;=/?#@%'
+
     # terminal productions ::
 
-    PN_CHARS_BASE = (u'(?:[a-zA-Z'
-                     u'\u00c0-\u00d6'
-                     u'\u00d8-\u00f6'
-                     u'\u00f8-\u02ff'
-                     u'\u0370-\u037d'
-                     u'\u037f-\u1fff'
-                     u'\u200c-\u200d'
-                     u'\u2070-\u218f'
-                     u'\u2c00-\u2fef'
-                     u'\u3001-\ud7ff'
-                     u'\uf900-\ufdcf'
-                     u'\ufdf0-\ufffd]|'
-                     u'[^\u0000-\uffff]|'
-                     u'[\ud800-\udbff][\udc00-\udfff])')
+    PN_CHARS_BASE = '[' + PN_CHARS_BASE_GRP + ']'
+
+    PN_CHARS_U = '[' + PN_CHARS_U_GRP + ']'
 
-    PN_CHARS_U = '(?:' + PN_CHARS_BASE + '|_)'
+    PN_CHARS = '[' + PN_CHARS_GRP + ']'
 
-    PN_CHARS = ('(?:' + PN_CHARS_U + r'|[\-0-9' +
-                u'\u00b7' +
-                u'\u0300-\u036f' +
-                u'\u203f-\u2040])')
+    HEX = '[' + HEX_GRP + ']'
 
-    HEX = '[0-9A-Fa-f]'
-
-    PN_LOCAL_ESC_CHARS = r'[ _~.\-!$&""()*+,;=/?#@%]'
+    PN_LOCAL_ESC_CHARS = '[' + PN_LOCAL_ESC_CHARS_GRP + ']'
 
     IRIREF = r'<(?:[^<>"{}|^`\\\x00-\x20])*>'
 
-    BLANK_NODE_LABEL = '_:(?:' + PN_CHARS_U + '|[0-9])(?:(?:' + PN_CHARS + '|\.)*' + \
-                       PN_CHARS + ')?'
+    BLANK_NODE_LABEL = '_:[0-9' + PN_CHARS_U_GRP + '](?:[' + PN_CHARS_GRP + \
+                       '.]*' + PN_CHARS + ')?'
 
-    PN_PREFIX = PN_CHARS_BASE + '(?:(?:' + PN_CHARS + '|\.)*' + PN_CHARS + ')?'
+    PN_PREFIX = PN_CHARS_BASE + '(?:[' + PN_CHARS_GRP + '.]*' + PN_CHARS + ')?'
 
-    VARNAME = '(?:' + PN_CHARS_U + '|[0-9])(?:' + PN_CHARS_U + \
-              u'|[0-9\u00b7\u0300-\u036f\u203f-\u2040])*'
+    VARNAME = u'[0-9' + PN_CHARS_U_GRP + '][' + PN_CHARS_U_GRP + \
+              u'0-9\u00b7\u0300-\u036f\u203f-\u2040]*'
 
     PERCENT = '%' + HEX + HEX
 
@@ -73,9 +86,9 @@
 
     PLX = '(?:' + PERCENT + ')|(?:' + PN_LOCAL_ESC + ')'
 
-    PN_LOCAL = ('(?:(?:' + PN_CHARS_U + '|[:0-9])|' + PLX + ')' +
-                '(?:(?:(?:' + PN_CHARS + '|[.:])|' + PLX + ')*(?:(?:' +
-                PN_CHARS + '|:)|' + PLX + '))?')
+    PN_LOCAL = ('(?:[' + PN_CHARS_U_GRP + ':0-9' + ']|' + PLX + ')' +
+                '(?:(?:[' + PN_CHARS_GRP + '.:]|' + PLX + ')*(?:[' +
+                PN_CHARS_GRP + ':]|' + PLX + '))?')
 
     EXPONENT = r'[eE][+-]?\d+'
 
--- a/ThirdParty/Pygments/pygments/lexers/shell.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/lexers/shell.py	Sat Jul 30 11:14:55 2016 +0200
@@ -35,6 +35,7 @@
     name = 'Bash'
     aliases = ['bash', 'sh', 'ksh', 'shell']
     filenames = ['*.sh', '*.ksh', '*.bash', '*.ebuild', '*.eclass',
+                 '*.exheres-0', '*.exlib',
                  '.bashrc', 'bashrc', '.bash_*', 'bash_*', 'PKGBUILD']
     mimetypes = ['application/x-sh', 'application/x-shellscript']
 
@@ -49,7 +50,7 @@
             (r'\$\(\(', Keyword, 'math'),
             (r'\$\(', Keyword, 'paren'),
             (r'\$\{#?', String.Interpol, 'curly'),
-            (r'\$[a-fA-F_][a-fA-F0-9_]*', Name.Variable),  # user variable
+            (r'\$[a-zA-Z_][a-zA-Z0-9_]*', Name.Variable),  # user variable
             (r'\$(?:\d+|[#$?!_*@-])', Name.Variable),      # builtin
             (r'\$', Text),
         ],
@@ -213,16 +214,16 @@
                        (_nl, _punct, _ws, _nl))
     _number = r'(?:-?(?:0[0-7]+|0x[\da-f]+|\d+)%s)' % _token_terminator
     _opword = r'(?:equ|geq|gtr|leq|lss|neq)'
-    _string = r'(?:"[^%s"]*"?)' % _nl
+    _string = r'(?:"[^%s"]*(?:"|(?=[%s])))' % (_nl, _nl)
     _variable = (r'(?:(?:%%(?:\*|(?:~[a-z]*(?:\$[^:]+:)?)?\d|'
                  r'[^%%:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:[^%%%s^]|'
                  r'\^[^%%%s])[^=%s]*=(?:[^%%%s^]|\^[^%%%s])*)?)?%%))|'
                  r'(?:\^?![^!:%s]+(?::(?:~(?:-?\d+)?(?:,(?:-?\d+)?)?|(?:'
                  r'[^!%s^]|\^[^!%s])[^=%s]*=(?:[^!%s^]|\^[^!%s])*)?)?\^?!))' %
                  (_nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl, _nl))
-    _core_token = r'(?:(?:(?:\^[%s]?)?[^%s%s%s])+)' % (_nl, _nl, _punct, _ws)
-    _core_token_compound = r'(?:(?:(?:\^[%s]?)?[^%s%s%s)])+)' % (_nl, _nl,
-                                                                 _punct, _ws)
+    _core_token = r'(?:(?:(?:\^[%s]?)?[^"%s%s%s])+)' % (_nl, _nl, _punct, _ws)
+    _core_token_compound = r'(?:(?:(?:\^[%s]?)?[^"%s%s%s)])+)' % (_nl, _nl,
+                                                                  _punct, _ws)
     _token = r'(?:[%s]+|%s)' % (_punct, _core_token)
     _token_compound = r'(?:[%s]+|%s)' % (_punct, _core_token_compound)
     _stoken = (r'(?:[%s]+|(?:%s|%s|%s)+)' %
--- a/ThirdParty/Pygments/pygments/lexers/sql.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/lexers/sql.py	Sat Jul 30 11:14:55 2016 +0200
@@ -148,8 +148,8 @@
             (r'\$\d+', Name.Variable),
             (r'([0-9]*\.[0-9]*|[0-9]+)(e[+-]?[0-9]+)?', Number.Float),
             (r'[0-9]+', Number.Integer),
-            (r"(E|U&)?'(''|[^'])*'", String.Single),
-            (r'(U&)?"(""|[^"])*"', String.Name),  # quoted identifier
+            (r"(E|U&)?'", String.Single, 'string'),
+            (r'(U&)?"', String.Name, 'quoted-ident'),  # quoted identifier
             (r'(?s)(\$[^$]*\$)(.*?)(\1)', language_callback),
             (r'[a-z_]\w*', Name),
 
@@ -164,6 +164,16 @@
             (r'[^/*]+', Comment.Multiline),
             (r'[/*]', Comment.Multiline)
         ],
+        'string': [
+            (r"[^']+", String.Single),
+            (r"''", String.Single),
+            (r"'", String.Single, '#pop'),
+        ],
+        'quoted-ident': [
+            (r'[^"]+', String.Name),
+            (r'""', String.Name),
+            (r'"', String.Name, '#pop'),
+        ],
     }
 
 
@@ -380,13 +390,13 @@
                 'DEFINED', 'DEFINER', 'DELETE', 'DELIMITER', 'DELIMITERS', 'DEREF', 'DESC',
                 'DESCRIBE', 'DESCRIPTOR', 'DESTROY', 'DESTRUCTOR', 'DETERMINISTIC',
                 'DIAGNOSTICS', 'DICTIONARY', 'DISCONNECT', 'DISPATCH', 'DISTINCT', 'DO',
-                'DOMAIN', 'DROP', 'DYNAMIC', 'DYNAMIC_FUNCTION', 'DYNAMIC_FUNCTION_CODE',
-                'EACH', 'ELSE', 'ENCODING', 'ENCRYPTED', 'END', 'END-EXEC', 'EQUALS', 'ESCAPE', 'EVERY',
+                'DOMAIN', 'DROP', 'DYNAMIC', 'DYNAMIC_FUNCTION', 'DYNAMIC_FUNCTION_CODE', 'EACH',
+                'ELSE', 'ELSIF', 'ENCODING', 'ENCRYPTED', 'END', 'END-EXEC', 'EQUALS', 'ESCAPE', 'EVERY',
                 'EXCEPTION', 'EXCEPT', 'EXCLUDING', 'EXCLUSIVE', 'EXEC', 'EXECUTE', 'EXISTING',
                 'EXISTS', 'EXPLAIN', 'EXTERNAL', 'EXTRACT', 'FALSE', 'FETCH', 'FINAL', 'FIRST', 'FOR',
                 'FORCE', 'FOREIGN', 'FORTRAN', 'FORWARD', 'FOUND', 'FREE', 'FREEZE', 'FROM', 'FULL',
                 'FUNCTION', 'G', 'GENERAL', 'GENERATED', 'GET', 'GLOBAL', 'GO', 'GOTO', 'GRANT', 'GRANTED',
-                'GROUP', 'GROUPING', 'HANDLER', 'HAVING', 'HIERARCHY', 'HOLD', 'HOST', 'IDENTITY',
+                'GROUP', 'GROUPING', 'HANDLER', 'HAVING', 'HIERARCHY', 'HOLD', 'HOST', 'IDENTITY', 'IF',
                 'IGNORE', 'ILIKE', 'IMMEDIATE', 'IMMUTABLE', 'IMPLEMENTATION', 'IMPLICIT', 'IN',
                 'INCLUDING', 'INCREMENT', 'INDEX', 'INDITCATOR', 'INFIX', 'INHERITS', 'INITIALIZE',
                 'INITIALLY', 'INNER', 'INOUT', 'INPUT', 'INSENSITIVE', 'INSERT', 'INSTANTIABLE',
--- a/ThirdParty/Pygments/pygments/lexers/templates.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/lexers/templates.py	Sat Jul 30 11:14:55 2016 +0200
@@ -251,7 +251,7 @@
         'funcparams': [
             (r'\$\{?', Punctuation, 'variable'),
             (r'\s+', Text),
-            (r',', Punctuation),
+            (r'[,:]', Punctuation),
             (r'"(\\\\|\\"|[^"])*"', String.Double),
             (r"'(\\\\|\\'|[^'])*'", String.Single),
             (r"0[xX][0-9a-fA-F]+[Ll]?", Number),
@@ -259,6 +259,8 @@
             (r'(true|false|null)\b', Keyword.Constant),
             (r'\(', Punctuation, '#push'),
             (r'\)', Punctuation, '#pop'),
+            (r'\{', Punctuation, '#push'),
+            (r'\}', Punctuation, '#pop'),
             (r'\[', Punctuation, '#push'),
             (r'\]', Punctuation, '#pop'),
         ]
@@ -875,7 +877,7 @@
             # yield style and script blocks as Other
             (r'<\s*(script|style)\s*.*?>.*?<\s*/\1\s*>', Other),
             (r'<\s*py:[a-zA-Z0-9]+', Name.Tag, 'pytag'),
-            (r'<\s*[a-zA-Z0-9:]+', Name.Tag, 'tag'),
+            (r'<\s*[a-zA-Z0-9:.]+', Name.Tag, 'tag'),
             include('variable'),
             (r'[<$]', Other),
         ],
--- a/ThirdParty/Pygments/pygments/lexers/textfmts.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/lexers/textfmts.py	Sat Jul 30 11:14:55 2016 +0200
@@ -122,6 +122,11 @@
 
     flags = re.DOTALL
 
+    def get_tokens_unprocessed(self, text, stack=('root',)):
+        """Reset the content-type state."""
+        self.content_type = None
+        return RegexLexer.get_tokens_unprocessed(self, text, stack)
+
     def header_callback(self, match):
         if match.group(1).lower() == 'content-type':
             content_type = match.group(5).strip()
--- a/ThirdParty/Pygments/pygments/token.py	Thu Jul 28 16:14:22 2016 +0200
+++ b/ThirdParty/Pygments/pygments/token.py	Sat Jul 30 11:14:55 2016 +0200
@@ -43,6 +43,14 @@
     def __repr__(self):
         return 'Token' + (self and '.' or '') + '.'.join(self)
 
+    def __copy__(self):
+        # These instances are supposed to be singletons
+        return self
+
+    def __deepcopy__(self, memo):
+        # These instances are supposed to be singletons
+        return self
+
 
 Token       = _TokenType()
 
--- a/changelog	Thu Jul 28 16:14:22 2016 +0200
+++ b/changelog	Sat Jul 30 11:14:55 2016 +0200
@@ -32,7 +32,7 @@
   -- ported the web browser to QtWebEngine as of Qt 5.6.0 because starting
      with this version QtWebKit is no longer (officially) supported
 - Third Party packages
-  -- updated Pygments to 2.1
+  -- updated Pygments to 2.1.3
   -- updated pep8 to 1.7.0
   -- updated coverage.py to 4.1.0
   -- updated pyflakes to 1.2.3+
Binary file i18n/eric6_es.qm has changed
--- a/i18n/eric6_es.ts	Thu Jul 28 16:14:22 2016 +0200
+++ b/i18n/eric6_es.ts	Sat Jul 30 11:14:55 2016 +0200
@@ -1,6 +1,5 @@
 <?xml version="1.0" encoding="utf-8"?>
-<!DOCTYPE TS>
-<TS version="2.1" language="es">
+<!DOCTYPE TS><TS version="2.0" language="es" sourcelanguage="">
 <context>
     <name>AboutDialog</name>
     <message>
@@ -1414,11 +1413,6 @@
         <translation>Cliente en background desconectado.</translation>
     </message>
     <message>
-        <location filename="../Utilities/BackgroundService.py" line="411"/>
-        <source>The background client for &lt;b&gt;{0}&lt;/b&gt; disconnect because of an unknown reason.&lt;br&gt;Should it be restarted?</source>
-        <translation type="obsolete">El cliente en background para &lt;b&gt;{0}&lt;/b&gt; ha desconectado por razón desconocida.&lt;br&gt;¿Reiniciarlo?</translation>
-    </message>
-    <message>
         <location filename="../Utilities/BackgroundService.py" line="405"/>
         <source>Erics background client disconnected because of an unknown reason.</source>
         <translation>El cliente en background de Eric ha desconectado debido a una razón desconocida.</translation>
@@ -1910,8 +1904,8 @@
     </message>
     <message>
         <location filename="../Helpviewer/Bookmarks/BookmarksMenu.py" line="145"/>
-        <source>Open in New &amp;Tab	Ctrl+LMB</source>
-        <translation>Abrir en Nueva &amp;Pestaña	Ctrl+LMB (botón izquierdo del ratón)</translation>
+        <source>Open in New &amp;Tab<byte value="x9"/>Ctrl+LMB</source>
+        <translation>Abrir en Nueva &amp;Pestaña<byte value="x9"/>Ctrl+LMB (botón izquierdo del ratón)</translation>
     </message>
     <message>
         <location filename="../Helpviewer/Bookmarks/BookmarksMenu.py" line="151"/>
@@ -1930,8 +1924,8 @@
     </message>
     <message>
         <location filename="../WebBrowser/Bookmarks/BookmarksMenu.py" line="166"/>
-        <source>Open in New Tab	Ctrl+LMB</source>
-        <translation>Abrir en Nueva Pestaña	 Ctrl+LMB (botón izquierdo del ratón)</translation>
+        <source>Open in New Tab<byte value="x9"/>Ctrl+LMB</source>
+        <translation>Abrir en Nueva Pestaña<byte value="x9"/> Ctrl+LMB (botón izquierdo del ratón)</translation>
     </message>
     <message>
         <location filename="../WebBrowser/Bookmarks/BookmarksMenu.py" line="169"/>
@@ -2014,8 +2008,8 @@
     </message>
     <message>
         <location filename="../Helpviewer/Bookmarks/BookmarksToolBar.py" line="93"/>
-        <source>Open in New &amp;Tab	Ctrl+LMB</source>
-        <translation>Abrir en Nueva &amp;Pestaña	Ctrl+LMB (botón izquierdo del ratón)</translation>
+        <source>Open in New &amp;Tab<byte value="x9"/>Ctrl+LMB</source>
+        <translation>Abrir en Nueva &amp;Pestaña<byte value="x9"/>Ctrl+LMB (botón izquierdo del ratón)</translation>
     </message>
     <message>
         <location filename="../Helpviewer/Bookmarks/BookmarksToolBar.py" line="104"/>
@@ -2029,8 +2023,8 @@
     </message>
     <message>
         <location filename="../WebBrowser/Bookmarks/BookmarksToolBar.py" line="91"/>
-        <source>Open in New Tab	Ctrl+LMB</source>
-        <translation>Abrir en Nueva Pestaña	 Ctrl+LMB (botón izquierdo del ratón)</translation>
+        <source>Open in New Tab<byte value="x9"/>Ctrl+LMB</source>
+        <translation>Abrir en Nueva Pestaña<byte value="x9"/> Ctrl+LMB (botón izquierdo del ratón)</translation>
     </message>
     <message>
         <location filename="../WebBrowser/Bookmarks/BookmarksToolBar.py" line="94"/>
@@ -16469,7 +16463,7 @@
     <name>HelpBrowser</name>
     <message>
         <location filename="../Helpviewer/HelpBrowserWV.py" line="1208"/>
-        <source>Open Link in New Tab	Ctrl+LMB</source>
+        <source>Open Link in New Tab<byte value="x9"/>Ctrl+LMB</source>
         <translation>Abrir enlace en Nueva Pestaña Ctrl+LMB (botón izquierdo del ratón)</translation>
     </message>
     <message>
@@ -67704,8 +67698,8 @@
     </message>
     <message>
         <location filename="../WebBrowser/WebBrowserView.py" line="543"/>
-        <source>Open Link in New Tab	Ctrl+LMB</source>
-        <translation>Abrir enlace en nueva pestaña Tab	Ctrl+LMB (botón izquierdo del ratón)</translation>
+        <source>Open Link in New Tab<byte value="x9"/>Ctrl+LMB</source>
+        <translation>Abrir enlace en nueva pestaña Tab<byte value="x9"/>Ctrl+LMB (botón izquierdo del ratón)</translation>
     </message>
     <message>
         <location filename="../WebBrowser/WebBrowserView.py" line="547"/>
@@ -69683,11 +69677,6 @@
         <translation>OK</translation>
     </message>
     <message>
-        <location filename="../WebBrowser/WebBrowserWindow.py" line="2209"/>
-        <source>Help Files (*.html *.htm);;PDF Files (*.pdf);;CHM Files (*.chm);;All Files (*)</source>
-        <translation type="obsolete">Archivos de Ayuda (*.html *.htm);;Archivos PDF (*.pdf);;Archivos CHM (*.chm);;Todos los Archivos (*)</translation>
-    </message>
-    <message>
         <location filename="../WebBrowser/WebBrowserWindow.py" line="2305"/>
         <source>&lt;b&gt;eric6 Web Browser - {0}&lt;/b&gt;&lt;p&gt;The eric6 Web Browser is a combined help file and HTML browser. It is part of the eric6 development toolset.&lt;/p&gt;&lt;p&gt;It is based on QtWebEngine {1} and Chrome {2}.&lt;/p&gt;</source>
         <translation>&lt;b&gt;Navegador Web de eric6- {0}&lt;/b&gt;&lt;p&gt;El Navegador Web de eric6 is una combinación de navegador de archivos de ayuda y de HTML. Es parte del conjunto de herramientas de desarrollo de eric6.&lt;/p&gt;&lt;p&gt;Está basado en QtWebEngine {1} y Chrome {2}.&lt;/p&gt;</translation>

eric ide

mercurial