aboutsummaryrefslogtreecommitdiffstats
path: root/debug_toolbar/panels/sql.py
diff options
context:
space:
mode:
authorRob Hudson2008-09-20 17:00:19 -0700
committerRob Hudson2008-09-20 17:00:19 -0700
commitf40ad85645f27fc4b80683acdbefd01a1da51afd (patch)
tree8c8702d6f68046a5b59fceba8af1b9e750b372d3 /debug_toolbar/panels/sql.py
parent7677c7e39c56a040dfb523169fcaa7d58645d2b8 (diff)
downloaddjango-debug-toolbar-f40ad85645f27fc4b80683acdbefd01a1da51afd.tar.bz2
Updating SQL panel to use Pygments for SQL highlighting if it's available,
moving the EXPLAIN link to the left to avoid scrolling. I have a feeling that the SQL panel could use a serious security review since we're passing SQL in via GET which is, I'm sure, a big no-no.
Diffstat (limited to 'debug_toolbar/panels/sql.py')
-rw-r--r--debug_toolbar/panels/sql.py19
1 files changed, 14 insertions, 5 deletions
diff --git a/debug_toolbar/panels/sql.py b/debug_toolbar/panels/sql.py
index cdcbd1b..4b059ac 100644
--- a/debug_toolbar/panels/sql.py
+++ b/debug_toolbar/panels/sql.py
@@ -57,9 +57,18 @@ class SQLDebugPanel(DebugPanel):
def reformat_sql(sql):
sql = sql.replace('`,`', '`, `')
- sql = sql.replace('` FROM `', '` \n FROM `')
- sql = sql.replace('` WHERE ', '` \n WHERE ')
- sql = sql.replace('` INNER JOIN ', '` \n INNER JOIN ')
- sql = sql.replace('` OUTER JOIN ', '` \n OUTER JOIN ')
- sql = sql.replace(' ORDER BY ', ' \n ORDER BY ')
+ sql = sql.replace('SELECT ', 'SELECT\n\t')
+ sql = sql.replace('` FROM ', '`\nFROM\n\t')
+ sql = sql.replace('` WHERE ', '`\nWHERE\n\t')
+ sql = sql.replace('` INNER JOIN ', '`\nINNER JOIN\n\t')
+ sql = sql.replace('` OUTER JOIN ', '`\nOUTER JOIN\n\t')
+ sql = sql.replace(' ORDER BY ', '\nORDER BY\n\t')
+ # Use Pygments to highlight SQL if it's available
+ try:
+ from pygments import highlight
+ from pygments.lexers import SqlLexer
+ from pygments.formatters import HtmlFormatter
+ sql = highlight(sql, SqlLexer(), HtmlFormatter(noclasses=True))
+ except ImportError:
+ pass
return sql