Commits

Daniele Varrazzo committed 694ad58

Detect multiline strings and error output in psql session

Comments (0)

Files changed (2)

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)
 
 

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
Tip: Filter by directory path e.g. /media app.js to search for public/media/app.js.
Tip: Use camelCasing e.g. ProjME to search for ProjectModifiedEvent.java.
Tip: Filter by extension type e.g. /repo .js to search for all .js files in the /repo directory.
Tip: Separate your search with spaces e.g. /ssh pom.xml to search for src/ssh/pom.xml.
Tip: Use ↑ and ↓ arrow keys to navigate and return to view the file.
Tip: You can also navigate files with Ctrl+j (next) and Ctrl+k (previous) and view the file with Ctrl+o.
Tip: You can also navigate files with Alt+j (next) and Alt+k (previous) and view the file with Alt+o.