【问题标题】:How to add syntax highlight to SQL line magic, cell magic and custom command in jupyter notebook?如何在 jupyter notebook 中为 SQL 行魔术、单元魔术和自定义命令添加语法高亮?
【发布时间】:2020-01-17 20:31:03
【问题描述】:

我正在寻找在 jupyter notebook 中突出显示 SQL 代码的方法。 我只能突出显示 SQL 单元格魔术,但不能突出显示线魔术和自定义设置。

案例1(工程)

突出显示单元格魔法(单元格以 %%sql 开头)

参考: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(); } }) ;
  });
});

案例2(无效)

Line Magic:行以 %sql 开头
我的尝试:将正则表达式更改为 ^%sql 但它不起作用。

%sql select * from Products limit 5;

案例 3(不起作用)

如何语法高亮自定义单元格(单元格以 ##%% 开头)
我的尝试:尝试将正则表达式更改为^##%%sql

##%%sql
q = " select * from customer limit 2;"
execute_query(q,dbname)

示例图片

在图像中,我们可以看到单元格魔术 %sql 命令未突出显示。 我希望它们被突出显示。

相关链接

【问题讨论】:

    标签: javascript python sql pandas jupyter-notebook


    【解决方案1】:

    这甚至适用于分配,如在第三个单元格中。目前多语言高亮不可用。所以它可以是 Python 或 SQL 语法,无论哪个先出现。

    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(); }
            });
        });
    });
    

    【讨论】:

      【解决方案2】:

      您可以在 colab 的内置文本编辑器中打开您的文件,以享受正确的亮点。当您从左侧的“文件”选项卡打开文本文件时,它会打开,并且可以使用“ctr+s”快捷方式保存。

      【讨论】:

        猜你喜欢
        • 2017-09-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-02
        • 1970-01-01
        • 2022-10-21
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多