【问题标题】:How to suppress syntax inspection in PyCharm?如何抑制 PyCharm 中的语法检查?
【发布时间】:2014-10-16 05:02:49
【问题描述】:

我正在使用 PyCharm 3.4.1,我的函数中有这段代码:

cursor.execute('SELECT distinct "name_{0}", code, sort_order FROM {1}'.format(get_language(), ProgrammeLevel._meta.db_table))

PyCharm 正确识别该字符串包含 SQL 代码,但代码语法检查通知我由于FROM {1} 而出现语法错误,它说:<comma join expression> expected, got '{',这是一个有效点,但我知道我在做什么正在做。

对于大多数(如果不是全部)PyCharm 检查,我可以在正确的位置写一个# noinspection 注释,然后关闭一些代码的检查。我这样做是为了关闭PyProtectedMember 对我刚刚给出的代码 sn-p 的检查。如何关闭这行代码的语法检查?给noinspection评论的检查名称是什么?

【问题讨论】:

    标签: pycharm code-inspection


    【解决方案1】:

    这是通过语言注入而不是检查来控制的。

    要抑制错误:
    Settings -> Editor -> Language Injections 并取消选中以下框:
    python:"SQL select/delete/insert/update/create"


    或者,要仅在包含 {} 的字符串上禁用它,请将 Places Pattern 的末尾从 .* 更改为 [^{}]*,如下所示:

    + pyStringLiteralMatches("[ \\t\\r\\n]*(((SELECT|DELETE) .*FROM)|((INSERT|REPLACE) .*INTO)|(UPDATE .* SET)|((CREATE|DROP|ALTER) +(TABLE|INDEX))).*")
    

    到这里:

    + pyStringLiteralMatches("[ \\t\\r\\n]*(((SELECT|DELETE) .*FROM)|((INSERT|REPLACE) .*INTO)|(UPDATE .* SET)|((CREATE|DROP|ALTER) +(TABLE|INDEX)))[^{}]*")
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-01-24
      • 1970-01-01
      • 2021-06-08
      • 1970-01-01
      • 2017-07-14
      • 2018-10-30
      • 2021-11-23
      相关资源
      最近更新 更多