Наблюдатели за файлами не работают в Intellij для комбинации isort и autoflake
У меня есть файл Python с многострочным оператором импорта:
from itertools import (
accumulate,
chain,
combinations,
combinations_with_replacement,
compress,
count,
islice,
product
)
из которого я пытаюсь удалить неиспользуемый импорт, сначала изменив оператор многострочного импорта на однострочный импорт:
isort -sl totest.py
autoflake --remove-all-unused-imports --remove-unused-variables -i totest.py
Он отлично работает в командной строке, но при использовании File Watchers в Intellij он не запускает autoflake при сохранении файла в первый раз. В принципе, чтобы обойти это, мне нужно:
- Отредактируйте, например, добавьте пробел
- Сохранить файл
Он форматируется так:
from itertools import accumulate from itertools import chain from itertools import combinations from itertools import combinations_with_replacement from itertools import compress from itertools import count from itertools import islice from itertools import product
А затем сделайте еще одно редактирование
- Сохранить файл
- И избыточный импорт удаляется
Шаги 4 и 5 являются избыточными.
Интересно, в чем может быть причина и где мне сообщить об этом? Команде IDEA Intellij, в isort или куда?
Вот мой watchers.xml
импортировать в Intellij.
<TaskOptions>
<TaskOptions>
<option name="arguments" value="--remove-all-unused-imports --remove-unused-variables -i $FilePath$" />
<option name="checkSyntaxErrors" value="true" />
<option name="description" />
<option name="exitCodeBehavior" value="ERROR" />
<option name="fileExtension" value="py" />
<option name="immediateSync" value="false" />
<option name="name" value="Remove unused variables and imports" />
<option name="output" value="$FilePath$" />
<option name="outputFilters">
<array />
</option>
<option name="outputFromStdout" value="false" />
<option name="program" value="autoflake" />
<option name="runOnExternalChanges" value="true" />
<option name="scopeName" value="Project Files" />
<option name="trackOnlyRoot" value="false" />
<option name="workingDir" value="" />
<envs />
</TaskOptions>
<TaskOptions>
<option name="arguments" value="-sp $$ProjectFileDir$/.isort.cfg $FilePath$" />
<option name="checkSyntaxErrors" value="true" />
<option name="description" />
<option name="exitCodeBehavior" value="ERROR" />
<option name="fileExtension" value="py" />
<option name="immediateSync" value="false" />
<option name="name" value="Organize imports" />
<option name="output" value="$FilePath$" />
<option name="outputFilters">
<array />
</option>
<option name="outputFromStdout" value="false" />
<option name="program" value="isort" />
<option name="runOnExternalChanges" value="true" />
<option name="scopeName" value="Project Files" />
<option name="trackOnlyRoot" value="false" />
<option name="workingDir" value="" />
<envs />
</TaskOptions>
<TaskOptions>
<option name="arguments" value="--config="$ProjectFileDir$"/pyproject.toml $FilePath$" />
<option name="checkSyntaxErrors" value="true" />
<option name="description" />
<option name="exitCodeBehavior" value="ERROR" />
<option name="fileExtension" value="py" />
<option name="immediateSync" value="false" />
<option name="name" value="Format code (with Black)" />
<option name="output" value="$FilePath$" />
<option name="outputFilters">
<array />
</option>
<option name="outputFromStdout" value="false" />
<option name="program" value="black" />
<option name="runOnExternalChanges" value="true" />
<option name="scopeName" value="Project Files" />
<option name="trackOnlyRoot" value="false" />
<option name="workingDir" value="" />
<envs />
</TaskOptions>
</TaskOptions>