【问题标题】:How to disable highlighting for SQL code in phpstorm?如何在 phpstorm 中禁用 SQL 代码的突出显示?
【发布时间】:2021-05-18 10:42:28
【问题描述】:

如何在 phpstorm 中禁用 SQL 代码的高亮显示? 我曾经禁用所有 sql 检查..但是颜色和字体规则继续过分 我的 php 字符串颜色规则。 这是我想要实现的一个示例:

$var_php = " all text here is red , SELECT * and whatever sql code is in red too " ;

【问题讨论】:

    标签: phpstorm


    【解决方案1】:

    SQL 语言会自动注入包含 SQL 代码的字符串(通过典型模式检测,例如 select xx from 等)。如果您使用特殊标签(SQL),它也会注入 HEREDOC/NOWDOC。

    您可以禁用这些(在下面的屏幕截图中选择)和任何其他不需要的注入规则,或者在 Settings/Preferences | Editor | Language Injections 创建您自己的规则。

    P.S.由于您根本不需要任何 SQL/DB 支持,您可以完全禁用 SQL/数据库支持插件。


    如果您一般都喜欢这种注入,但只是不希望它们仅在特定位置(例如,因为误报匹配),那么您可以在该字符串中强制使用纯文本。例如:

    $str = /** @lang Text */ 'Select all entries from my cool database';
    

    请注意,此类注释必须放在实际字符串之前(因此可以在函数调用参数等中使用),而不是像普通 PHPDoc cmets 那样放在整个变量赋值/语句之前。

    附:其他方式也可以:在语言注入规则未自动检测到的某些字符串中强制执行 SQL(例如,当字符串被拆分为连接位或使用未知/意外的序列/语法时)。

    【讨论】:

    • 但是在 PhpStorm 10.0.3 中,你可以在 Settings -> Editor -> Language Injections 中找到它。
    • 谢谢,如果 jetbrain 的任何人正在阅读此内容,突出显示和下划线是一种矫枉过正.. 谈论眼痛
    【解决方案2】:

    您可以通过创建一个与 DQL 不匹配的新 IntelliLang 注入来禁用它,同时不理会其他 SQL 突出显示/检查。我使用了 : 字符的存在。这将防止 IDE 突出显示 DQL,并将其标记为错误或重新格式化不正确。

    我在这里创建了一个带有说明的 Gist:

    https://gist.github.com/willemnviljoen/d20ad8ad0cc365a7e80744328246610f

    【讨论】:

    • 虽然这在理论上可以回答这个问题,it would be preferable 在此处包含答案的基本部分,并提供链接以供参考。
    【解决方案3】:

    通常 PHPstorm 在决定何时将 SQL 字符串文字作为 SQL 代码进行检查方面做得很好。对于出错的个别情况,禁用单行检查的最“正确”方法可能是另一个答案中提到的 PHPDoc 注释,例如:

    $str = /** @lang Text */ 'Select the answer from the list';
    

    但这对我来说似乎很乱。幸运的是,您可以很容易地欺骗 PHPstorm,因为如果“句子”中的第一个单词不是 SQL 关键字(SELECT/UPDATE 等),它似乎会忽略该字符串。所以一个简单(虽然有点hackish)的方法就是分割字符串,比如:

    $str = 'Select'.' the answer from the list';
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-02-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多