javascript - 如何在 jupyter notebook 中为 SQL 行魔术、单元魔术和自定义命令添加语法高亮?
问题描述
我正在寻找在 jupyter notebook 中突出显示 SQL 代码的方法。我只能突出显示 SQL 单元格魔术,但不能突出显示线魔术和自定义设置。
案例一(作品)
高亮单元格魔法(单元格以 %%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(不起作用)
Line Magic:行以 %sql 开头
我的尝试:将正则表达式更改为^%sql
但它不起作用。
%sql select * from Products limit 5;
案例3(不起作用)
如何语法突出显示自定义单元格(单元格以##%% 开头)
我的尝试:尝试将正则表达式更改为^##%%sql
##%%sql
q = " select * from customer limit 2;"
execute_query(q,dbname)
示例图片
在图像中,我们可以看到单元格魔术 %sql 命令未突出显示。我希望它们被突出显示。
相关链接
解决方案
这甚至适用于分配,如在第三个单元格中。目前多语言高亮不可用。所以它要么是 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(); }
});
});
});
推荐阅读
- android - Gradle:密码验证失败 - Android Studio
- python - 从python中的文档中获取数值
- discord.py - Discord.py 机器人消息绕过
- powershell - 使用 powershell 进行编码
- r - 如何检索 ggplot2 内部绘图大小和边距长度
- matlab - 导出为 .pdf [MATLAB] 时以正常样式保存希腊字母时出现问题
- c++ - 架构模式:处理两个相同实现的函数
- python - Django 单元测试 - 查询测试数据库内容
- php - 在 php codeigniter 中上传图片
- excel - Excel 中的游戏结果