【问题标题】:How to ignore SQL syntax in Visual Studio Code如何在 Visual Studio Code 中忽略 SQL 语法
【发布时间】:2018-03-22 04:39:19
【问题描述】:

您好,顾名思义,如何忽略 .php 文件上的 SQL 语法高亮显示?

如上图所示,Visual Studio Code 似乎认为 'DELETE /api/crm/contact_meetings....' 启动 SQL 查询并打乱整个文件的突出显示。

我已尝试检查 Visual Studio Code 的设置,但无济于事,我似乎无法找到相关的配置条目。

【问题讨论】:

标签: php visual-studio-code


【解决方案1】:

我遇到了同样的问题,我在 Crayons 的帖子的帮助下解决了这个问题。

只需删除这些行!

~\AppData\Local\Programs\Microsoft VS 代码\resources\app\extensions\php\syntaxes\php.tmLanguage.json

2531:       "sql-string-double-quoted": {
2532:           "begin": "\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\b)",
2533:           "beginCaptures": {
2534:               "0": {
2535:                   "name": "punctuation.definition.string.begin.php"
2536:               }
2537:           },
2538:           "contentName": "source.sql.embedded.php",
2539:           "end": "\"",
2540:           "endCaptures": {
2541:               "0": {
2542:                   "name": "punctuation.definition.string.end.php"
2543:               }
2544:           },
2545:           "name": "string.quoted.double.sql.php",
2546:           "patterns": [
2547:               {
2548:                   "include": "source.sql"
2549:               }
2550:           ]
2551:       },
2552:       "sql-string-single-quoted": {
2553:           "begin": "'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\b)",
2554:           "beginCaptures": {
2555:               "0": {
2556:                   "name": "punctuation.definition.string.begin.php"
2557:               }
2558:           },
2559:           "contentName": "source.sql.embedded.php",
2560:           "end": "'",
2561:           "endCaptures": {
2562:               "0": {
2563:                   "name": "punctuation.definition.string.end.php"
2564:               }
2565:           },
2566:           "name": "string.quoted.single.sql.php",
2567:           "patterns": [
2568:               {
2569:                   "include": "source.sql"
2570:               }
2571:           ]
2572:       },

我必须将它作为评论添加到 Crayons 的帖子中,但我不能,因为我对这里完全陌生。对不起。希望对你有帮助。

【讨论】:

    【解决方案2】:

    只是想指出,我也使用关键字 DELETE 来体验这一点。这个关键字肯定有问题。

    到目前为止,我的调查使我相信它要么是特定于语言的问题,要么是特定于主题的问题。

    PHP 的语言语法高亮规则取自 Atom 的定义——参见此处:https://github.com/atom/language-php/blob/master/grammars/php.cson 和此处https://github.com/atom/language-php/issues/321

    Visual Studio Code 通过php.tmLanguage.json 实现了这一点,您可以在~\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\php\syntaxes 中找到它。

    或者,它可能是一个特定主题的东西,可能在这里的某个地方~\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\theme-defaults\themes

    VS Code 团队表示,任何贡献或问题都应针对原始存储库(上面链接)来解决。我已经决定不值得我花时间进一步调查,但欢迎您尝试在那里提出问题:)

    如果你碰巧找到了解决办法,请告诉我!

    【讨论】:

      【解决方案3】:

      我知道这是旧的,但我找到了一个简单的答案。

      打开 ~\AppData\Local\Programs\Microsoft VS Code\resources\app\extensions\php\syntaxes\php.tmLanguage.json

      搜索并替换该行(有多个实例)

      SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND
      

      SELECT|INSERT|UPDATE|DELETE FROM|CREATE|REPLACE|ALTER|AND
      

      这将确保 SQL 格式仅在使用“delete from”时启动,同时保持正常语法突出显示不变。

      【讨论】:

        猜你喜欢
        • 2017-04-18
        • 2015-07-10
        • 2020-12-11
        • 2018-12-11
        • 2022-07-25
        • 2020-02-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多