英文:
Highlighting the SQL schema name
问题
在VS Code中,选择SQL语言时,关键字会被高亮显示。我需要在高亮显示的地方,将位于句点之前的模式、表或别名以不同的颜色进行高亮显示(下面显示了应该高亮显示的内容)。
代码应该类似于这样:
screenshot
以下是上述截图中用于您的复制示例的代码:
SELECT TABLE.COL1, T2.COL2
FROM SCHEMA1.TABLE1
INNER JOIN SCHEMA1.TABLE2 AS T2 ON TABLE1.COL1 = T2.COL2
我不理解VS Code中的SQL代码高亮显示设置是如何工作的,我找不到有关如何进行设置的说明。
英文:
In VS Code, when selecting the SQL language, the keywords are highlighted. I need the schemas, tables, or aliases that stand in front of the dot to be highlighted in a different color (below shows what should be highlighted).
The code should look something like this:
screenshot
Here's the code used in the above screenshot for your repro purposes:
SELECT TABLE.COL1, T2.COL2
FROM SCHEMA1.TABLE1
INNER JOIN SCHEMA1.TABLE2 AS T2 ON TABLE1.COL1 = T2.COL2
I don't understand how the SQL code highlighting settings work in VS Code and I can't find instructions on how to do it.
答案1
得分: 0
如果您在命令面板中使用“Developer: Inspect Editor Token and Scopes”命令,并将光标放在您想要自定义颜色的上下文中,您会发现它们具有“constant.other.database-name.sql” TextMate范围(这有点奇怪,因为它们并不都是数据库名称-有些是表名称(我怀疑VS Code中的内置TextMate SQL语法](https://github.com/microsoft/vscode/blob/main/extensions/sql/syntaxes/sql.tmLanguage.json)要么不是很好,要么达到了TextMate语法的技术限制),因此您可以使用以下配置:
"editor.tokenColorCustomizations": {
"[<主题名称>]": { // TODO 插入您的主题名称,或者删除此包装块以应用于所有主题
"textMateRules": [
{
"scope": "constant.other.database-name.sql",
"settings": {
"foreground": "#FF0000", // TODO
}
}
]
}
},
英文:
If you use the Developer: Inspect Editor Token and Scopes
command in the command palette and put the caret in the contexts you want to customize colours for, you'll see that they have the constant.other.database-name.sql
TextMate scope (which is odd, since not all of them are database names- some are table names (I suspect the builtin TextMate grammar for SQL in VS Code is not either very good, or hitting technical limitations of TextMate grammars)), so you can use the following config:
"editor.tokenColorCustomizations": {
"[<Theme Name>]": { // TODO insert your theme's name, or remove this wrapper block to apply to all themes
"textMateRules": [
{
"scope": "constant.other.database-name.sql",
"settings": {
"foreground": "#FF0000", // TODO
}
}
]
}
},
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论