如何忽略Visual Studio代码中的SQL语法

时间:2018-03-22 04:39:19

标签: php visual-studio-code

enter image description here

嗨,正如标题所暗示的,我如何忽略我的.php文件上的SQL语法高亮?

正如您在上面的图片中看到的那样,Visual Studio Code似乎认为了 'DELETE /api/crm/contact_meetings....' 启动SQL查询并混淆整个文件的突出显示。

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

3 个答案:

答案 0 :(得分:1)

仅需注意,我也使用关键字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团队表示,任何贡献或问题都应针对原始存储库(上面已链接)解决。我认为不值得花时间进行进一步的调查,但是欢迎您尝试在那儿提出一个问题:)

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

enter image description here

答案 1 :(得分:1)

我遇到了同样的问题,我在蜡笔写的文章的帮助下进行了修复。

只需删除这些行!

  

〜\ AppData \ Local \ Programs \ Microsoft VS   代码\资源\ app \扩展名\ php \语法\ 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 :(得分:0)

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

打开 ~\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”时才生效,同时保持正常的语法高亮完好无损。