Issue
I was searching for ways to highlight SQL codes in jupyter notebook. I was able to highlight SQL cell magic only, but not line magic and custom settings.
Case 1 (works)
Highlight cell magic (cell startswith %%sql)
Ref: adding syntax highlighting to Jupyter notebook cell magic
require(['notebook/js/codecell'], function(codecell) {
codecell.CodeCell.options_default.highlight_modes['magic_text/x-mssql'] = {'reg':[/^%%sql/]} ;
Jupyter.notebook.events.one('kernel_ready.Kernel', function(){
Jupyter.notebook.get_cells().map(function(cell){
if (cell.cell_type == 'code'){ cell.auto_highlight(); } }) ;
});
});
Case 2(does not work)
Line Magic: line starts with %sql
My attempt: Change the regex to ^%sql
but it did not work.
%sql select * from Products limit 5;
Case 3 (does not work)
How to syntax highlight custom cells (cell startswith ##%%)
My attempt: Tried to changing regex to ^##%%sql
##%%sql
q = " select * from customer limit 2;"
execute_query(q,dbname)
Example image
In the image we can see that cell magic %sql commands are not highlighted.
I want them to be highlighted.
Related links
- adding syntax highlighting to Jupyter notebook cell magic
- IPython change input cell syntax highlighting logic for entire session
Solution
This will work even for assignments, as in the third cell. Currently multiple languages highlighting unavailable. So it will be either Python or SQL syntax, whatever comes first.
require(['notebook/js/codecell'], function (codecell) {
codecell.CodeCell.options_default.highlight_modes['magic_text/x-mssql'] = { 'reg': [/%?%sql/] };
Jupyter.notebook.events.one('kernel_ready.Kernel', function () {
Jupyter.notebook.get_cells().map(function (cell) {
if (cell.cell_type == 'code') { cell.auto_highlight(); }
});
});
});
Answered By - igrinis
0 comments:
Post a Comment
Note: Only a member of this blog may post a comment.