如何为Postgres`COPY`命令修复VSCode语法突出显示

时间:2019-07-16 19:27:09

标签: postgresql visual-studio-code syntax-highlighting

我有很多.sql来自PostgreSQL数据库的文件。

(出于完整性考虑,它们是使用pg_extractor生成的,作为在git中检查数据库框架的一种方式。有数百个PL / pgSQL函数也需要作为其中一部分进行检查。应用程序代码。开发人员在其本地数据库服务器上处理功能,然后将其功能更改检入git。)

在这些文件中,数据使用PostgreSQL COPY命令表示。

例如,我们的骨架数据库具有以下表和数据:

CREATE TABLE roles (
    id serial NOT NULL,
    name text NOT NULL,
    name_display text NOT NULL,
    order_display integer NOT NULL
);

COPY roles (id, name, name_display, order_display) FROM stdin;
1   MASTER  Master  1
2   ORGANIZATION_ADMIN  Organization Admin  2
3   REGIONAL_ADMIN  Regional Admin  3
4   BRANCH_ADMIN    Branch Admin    5
5   SECURITY_ADMIN  Security Admin  8
6   BRANCH_MANAGER  Branch Manager  6
7   BRANCH_STAFF    Branch Staff    7
8   SECURITY_OPERATOR   Security Operator   9
9   REGIONAL_MANAGER    Regional Manager    4
\.

虽然上面的示例很简单,但有些示例要复杂得多。

我的问题是,当一个表包含带有单引号或双引号的数据时。在这种情况下,Visual Studio Code认为标记应打开带引号的字符串,并弄乱了文件其余部分的语法高亮显示。在带引号的字符串的实际情况下,这不是问题,但是,如果某些文本包含所有格(或紧缩)撇号,则会导致文件的其余部分(除非存在另一个撇号)被视为带引号的文本。

问题在于,COPY输入中的转义符无法转义,因为它应该是原始值(除了换行符,空值,定界符(默认为制表符)和转义符)字符(\本身)。

是否有一种方法可以使VSCode忽略COPY主体内的引号(从COPY语句结尾的分号,到结束主体的\.)? / p>

0 个答案:

没有答案