我正在使用带有嵌入式 SQL 的 Python atom 编辑器,类似于:
import sqlite3
conn = sqlite3.connect('spider.sqlite')
cur = conn.cursor()
cur.execute('''SELECT COUNT(from_id) AS inbound, old_rank, new_rank, id, url
FROM Pages JOIN Links ON Pages.id = Links.to_id
WHERE html IS NOT NULL
GROUP BY id ORDER BY inbound DESC''')
count = 0
for row in cur :
if count < 50 : print(row)
count = count + 1
print(count, 'rows.')
cur.close()
任何参加过 Coursera Python 课程的人都会认出上面的代码——奇怪的是,在视频中,Chuck 博士的 atom 环境至少会突出显示常规大写的 sql 关键字,例如 SELECT、CREATE、FROM 等,但他从未提到必须对 atom 进行任何操作才能实现这一点。另一方面,在我的安装中,我看到的是三重引号内的所有内容都突出显示为注释文本(在我的主题中全部为绿色)。
尽管主线程指的是 MagicPython,但这个评论(https://github.com/MagicStack/MagicPython/issues/27#issuecomment-418155497) 表明 Atom 和 SublimeText 都原生支持高亮 SQL,但即使将 sublime 包安装到 Atom 中,也只会给我一个浅色的“sublimify”侧边栏,而我只想保留原生的深色 UI。
有人能指出正确的方向,让我在 python 中正确突出显示三重引号 SQL 吗?谢谢!
编辑:如果重要的话,我正在运行 MacOS Sierra (10.12.6)。
答案1
回答:转到settings
>core
并取消选中Use Tree Sitter Parsers
(它位于核心设置菜单的底部。您可能必须关闭并重新打开文档才能使更改生效。
导致问题的原因:
目前,language-sql 尚未提供 Tree-sitter 语法,因此 Atom 无法提供 SQL 语法高亮显示(其他语法尝试注入该功能)
如果你想为解决根本问题做出贡献,请查看 tree-sitter 文档并做出贡献语言-sql!