PHP CS Fixer File Watcher вызывает конфликт файлового кэша в PHPStorm

Я использую File Watcher, определяемый как этот

введите здесь описание изображения

Вот мой watchers.xml файл:

<?xml version="1.0" encoding="UTF-8"?>
<TaskOptions>
  <TaskOptions>
    <option name="arguments" value="fix $FileDir$/$FileName$ --verbose " />
    <option name="checkSyntaxErrors" value="false" />
    <option name="description" />
    <option name="exitCodeBehavior" value="ERROR" />
    <option name="fileExtension" value="php" />
    <option name="immediateSync" value="true" />
    <option name="name" value="PHP CS Fixer" />
    <option name="output" value="" />
    <option name="outputFilters">
      <array />
    </option>
    <option name="outputFromStdout" value="false" />
    <option name="program" value="/usr/local/bin/php-cs-fixer" />
    <option name="scopeName" value="Project Files" />
    <option name="trackOnlyRoot" value="false" />
    <option name="workingDir" value="$ProjectFileDir$" />
    <envs />
  </TaskOptions>
</TaskOptions>

Во время выполнения автосохранения я иногда получаю сообщение об ошибке о конфликте между изменениями в памяти и на диске.

введите здесь описание изображения

Как я могу решить эту проблему?


person Łukasz D. Tulikowski    schedule 19.05.2017    source источник
comment
Ну ... как я понимаю, PHP CS Fixer изменяет фактический файл (что бы он там ни исправлял - например, добавляет правильный отступ и т. д.). Неудивительно, что IDE видит, что текущий открытый и редактируемый файл изменяется извне, поэтому она спрашивает вас, что с этим делать.   -  person LazyOne    schedule 20.05.2017


Ответы (1)


Это происходит потому, что PHP CS Fixer изменяет файл, как сказал @LazyOne, но у вас есть пустое значение «Выходные пути для обновления», поэтому IDE не может знать об этих изменениях.

Установите значение «Выходные пути для обновления» на $FileName$ — так же, как и в аргументах — чтобы PhpStorm знал об изменениях (это зависит от значения «Рабочий каталог», которое было установлено в «Других параметрах» — если для него установлено значение $FileDir $, то вам не нужно указывать его в путях для обновления).

person Vlad Luchansky    schedule 22.05.2017
comment
Благодарю вас! Мой рабочий каталог в настоящее время установлен на $ProjectFileDir$. - person Łukasz D. Tulikowski; 24.05.2017