Commits

Daniele Varrazzo committed 694ad58

Detect multiline strings and error output in psql session

  • Participants
  • Parent commits cfa5456

Comments (0)

Files changed (2)

File pygments/lexers/postgres.py

         (r"[^\s]+", String.Symbol),
     ]
 
-re_prompt = re.compile(r'^(\S.*?)??[=\-\(][#>]')
+re_prompt = re.compile(r'^(\S.*?)??[=\-\(\$\'\"][#>]')
 re_psql_command = re.compile(r'\s*\\')
 re_end_command = re.compile(r';\s*(--.*?)?$')
 re_psql_command = re.compile(r'(\s*)(\\.+?)(\s+)$')
                         out_token = Generic.Error
                     yield (mmsg.start(1), Generic.Strong, mmsg.group(1))
                     yield (mmsg.start(2), out_token, mmsg.group(2))
-                elif re_charhint.match(line):
+                else:
                     yield (0, out_token, line)
-                else:
-                    yield (0, Generic.Output, line)
 
 

File tests/examplefiles/psql_session.txt

         1
 (1 row)
 
+piro=> select (
+piro(> '
+piro'> ' || $$
+piro$> $$)
+piro-> from "
+piro"> foo";
+ERROR:  relation "
+foo" does not exist
+LINE 5: from "
+             ^
+
 testdb=> CREATE TABLE my_table (
 first integer not null default 0,
 second text) ; -- end of command