python - 如何在 PyCharm 中为 isort 设置过滤器作为外部工具

标签 python pycharm isort

我正在尝试将 isort 设置为 PyCharm 中的外部工具。我无法设置过滤器以使文件路径成为链接。

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.由于它不指向真实文件,因此不会转换为链接。

因此,您可以将 isort 输出格式修改为具有明确文件路径边界的格式,或者在正则表达式中使用更花哨的格式,例如 positive look behind,这将使您的过滤器看起来像这样: $FILE_PATH$(?<=\.py)( |$)

要测试 Java 正则表达式,您可以使用 https://www.freeformatter.com/java-regex-tester.html如果提供的过滤器不能满足您的特定需求。

关于python - 如何在 PyCharm 中为 isort 设置过滤器作为外部工具,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45834139/

相关文章:

python - 如何使用 PyBox2d 检测碰撞并使用该信息

python - Django(1.4.2)出现如下错误如何解决

python - 无法修改 PyCharm 上的只读目录

python - 如何退出这个 while 循环?

python - BeautifulSoup - 拼写错误的类

python - python中的Language_check继承错误

python - 如何在 VS Code 和 PyCharm 上显示图像?

python - 如何在 Vim 中通过 ALE 运行 isort?

python - 手动对 python 目录进行排序,然后无法推送到远程存储库