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

sel*_*ler 2 python pycharm isort

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

isort的输出是:

ERROR: C:\dev\path\to\a\project\file.py Imports are incorrectly sorted.
Run Code Online (Sandbox Code Playgroud)

根据文档投入 $FILE_PATH$应该是足够的但它不适合我的工作.我已经尝试了几种正则表达式样式而没有任何成功.

Mac*_*ski 5

tl; dr $FILE_PATH$(?<=\.py)( |$)用作过滤器.

所以(^|[\W])(?<file>(?:\p{Alpha}\:|/)[0-9 a-z_A-Z\-\\./]+)(?<=\.py)regexp用于$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输出格式修改为具有明确文件路径边界的东西,或者在regexp中使用更像花哨的东西,比如正面看后面,这会使你的过滤器看起来像这样: $FILE_PATH$(?<=\.py)( |$)

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