如何让 Atom 突出显示嵌入在 python 多行注释中的 SQL?

如何让 Atom 突出显示嵌入在 python 多行注释中的 SQL?

我正在使用带有嵌入式 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 语法高亮显示(其他语法尝试注入该功能)

[gh 问题解释] [相关语言-python问题]

如果你想为解决根本问题做出贡献,请查看 tree-sitter 文档并做出贡献语言-sql

相关内容