我正在尝试将isort设置为PyCharm中的外部工具。我无法设置过滤器,因此文件路径是链接。
isort的输出是:
ERROR: C:\dev\path\to\a\project\file.py Imports are incorrectly sorted.
根据docs推荐$FILE_PATH$
应该足够但它对我不起作用。我已经尝试了几种正则表达式而没有任何成功。
答案 0 :(得分:5)
tl; dr使用 [whois.verisign-grs.com]
Domain Name: 99WEBTOOLS.COM
Registry Domain ID: 1836292680_DOMAIN_COM-VRSN
Registrar WHOIS Server: whois.PublicDomainRegistry.com
Registrar URL: http://www.publicdomainregistry.com
Updated Date: 2017-07-27T03:33:56Z
Creation Date: 2013-11-21T07:14:28Z
Registry Expiry Date: 2017-11-21T07:14:28Z
Registrar: PDR Ltd. d/b/a PublicDomainRegistry.com
Registrar IANA ID: 303
Registrar Abuse Contact Email: abuse-contact@publicdomainregistry.com
Registrar Abuse Contact Phone: +1.2013775952
Domain Status: clientTransferProhibited https://icann.org/epp#clientTransferProhibited
Name Server: NS1.HOSTNOLOGY.COM
Name Server: NS2.HOSTNOLOGY.COM
DNSSEC: unsigned
URL of the ICANN Whois Inaccuracy Complaint Form: https://www.icann.org/wicf/
>>> Last update of whois database: 2017-08-23T13:44:46Z <<<
For more information on Whois status codes, please visit https://icann.org/epp
作为过滤器。
所以$FILE_PATH$(?<=\.py)( |$)
是用于(^|[\W])(?<file>(?:\p{Alpha}\:|/)[0-9 a-z_A-Z\-\\./]+)(?<=\.py)
的正则表达式。资料来源:https://github.com/JetBrains/intellij-community/blob/d29c4fa1a73e03b852353186d792540150336b9f/platform/lang-api/src/com/intellij/execution/filters/RegexpFilter.java#L39
看看它是如何在那里允许空间的?
意味着它将抓取$FILE_PATH
,因为它不指向真实文件,它将不会转换为链接。
因此,您可以将 isort 输出格式修改为具有明确文件路径边界的内容,或者在regexp中使用更加花哨的内容,例如正面外观,这将使您的过滤器看起来像这样:
C:\dev\path\to\a\project\file.py Imports are incorrectly sorted.
如果提供的过滤器无法满足您的特定需求,则可以使用https://www.freeformatter.com/java-regex-tester.html来测试java regexp。