Как настроить фильтр для isort как внешнего инструмента в PyCharm
Я пытаюсь настроить isort как внешний инструмент в PyCharm. Я не могу настроить фильтр, чтобы пути к файлам были ссылками.
Выход из isort:
ERROR: C:\dev\path\to\a\project\file.py Imports are incorrectly sorted.
Согласно документам сдачи $FILE_PATH$
должно быть достаточно, но это не работает для меня. Я пробовал несколько стилей регулярных выражений без какого-либо успеха.
1 ответ
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 на что-то с четкими границами пути к файлу, либо использовать что-то более причудливое в регулярном выражении, например положительный взгляд, что сделает ваш фильтр похожим на это: $FILE_PATH$(?<=\.py)( |$)
Для тестирования регулярных выражений Java вы можете использовать https://www.freeformatter.com/java-regex-tester.html если предоставленный фильтр не соответствует вашим конкретным потребностям.