我有很多.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>