如何在 PyCharm 中为 isort 设置过滤器作为外部工具
How to set up filter for isort as external tool in PyCharm
我正在尝试在 PyCharm 中将 isort 设置为外部工具。我无法设置过滤器以使文件路径成为链接。
isort 的输出是:
ERROR: C:\dev\path\to\a\project\file.py Imports are incorrectly sorted.
根据 docs 的说法,输入 $FILE_PATH$
应该就足够了,但它对我不起作用。我尝试了几种正则表达式样式但都没有成功。
tl;dr 使用 $FILE_PATH$(?<=\.py)( |$)
作为过滤器。
所以 (^|[\W])(?<file>(?:\p{Alpha}\:|/)[0-9 a-z_A-Z\-\./]+)(?<=\.py)
是用于 $FILE_PATH
的正则表达式。资料来源:https://github.com/JetBrains/intellij-community/blob/d29c4fa1a73e03b852353186d792540150336b9f/platform/lang-api/src/com/intellij/execution/filters/RegexpFilter.java#L39
看看它是如何允许空格的?
意味着它将抓取 C:\dev\path\to\a\project\file.py Imports are incorrectly sorted.
,并且由于它不指向真实文件,因此不会被转换为 link.
因此,您可以将 isort 输出格式修改为具有清晰文件路径边界的格式,或者在正则表达式中使用更花哨的格式,例如 positive look behind,这将使您的过滤器看起来像这样:
$FILE_PATH$(?<=\.py)( |$)
如果提供的过滤器不能满足您的特定需求,您可以使用 https://www.freeformatter.com/java-regex-tester.html 测试 java 正则表达式。
我正在尝试在 PyCharm 中将 isort 设置为外部工具。我无法设置过滤器以使文件路径成为链接。
isort 的输出是:
ERROR: C:\dev\path\to\a\project\file.py Imports are incorrectly sorted.
根据 docs 的说法,输入 $FILE_PATH$
应该就足够了,但它对我不起作用。我尝试了几种正则表达式样式但都没有成功。
tl;dr 使用 $FILE_PATH$(?<=\.py)( |$)
作为过滤器。
所以 (^|[\W])(?<file>(?:\p{Alpha}\:|/)[0-9 a-z_A-Z\-\./]+)(?<=\.py)
是用于 $FILE_PATH
的正则表达式。资料来源:https://github.com/JetBrains/intellij-community/blob/d29c4fa1a73e03b852353186d792540150336b9f/platform/lang-api/src/com/intellij/execution/filters/RegexpFilter.java#L39
看看它是如何允许空格的?
意味着它将抓取 C:\dev\path\to\a\project\file.py Imports are incorrectly sorted.
,并且由于它不指向真实文件,因此不会被转换为 link.
因此,您可以将 isort 输出格式修改为具有清晰文件路径边界的格式,或者在正则表达式中使用更花哨的格式,例如 positive look behind,这将使您的过滤器看起来像这样:
$FILE_PATH$(?<=\.py)( |$)
如果提供的过滤器不能满足您的特定需求,您可以使用 https://www.freeformatter.com/java-regex-tester.html 测试 java 正则表达式。