Как позволить Phoenix live reload игнорировать временные файлы? - PullRequest
0 голосов
/ 06 мая 2018

Emacs генерирует временный файл при редактировании буфера, например, редактирование a.html.eex приведет к .#a.html.eex. К сожалению, так как расширение файла совпадает, живая перезагрузка Phoenix также будет запускаться в таких случаях. Есть ли способ, позволяющий live reload игнорировать такие файлы и таким образом отключать это поведение?

Ответы [ 2 ]

0 голосов
/ 26 апреля 2019

TL; DR

Сделайте это:

~r{web/templates/([^/]+/)*(?!\.\#)[^/]*\.eex$}

Объяснение

Документация предлагает регулярное выражение, подобное этому:

~r{web/templates/.*(eex)$}

Проблема в нашем случае в том, что часть .* соответствует чему-либо , включая /, но мы должны быть в состоянии поймать .# при начале имени файла.

Итак, мы делаем следующее:

  1. соответствует исходному фрагменту пути ...web/templates,
  2. записаться в подкаталоги,
  3. игнорировать все, что начинается с .#
  4. принять любой файл с расширением .eex.

Написано как расширенное регулярное выражение, это:

~r{
  web/templates/
  ([^/]+/)*        # recurse into directories
  (?!\.\#)         # ignore Emacs temporary files (`.#` prefix)
  [^/]*            # accept any file character
  \.eex$           # accept only .eex files
}x

Это то, что я положил в config/dev.exs, но, если вы хотите быть более кратким, используйте регулярное выражение из TL; DR

0 голосов
/ 06 мая 2018

Вы можете изменить регулярное выражение в config/dev.exs, чтобы оно совпадало только с путями, не содержащими #.

В config/dev.exs, изменить:

~r{web/templates/.*(eex)$}

до:

~r{web/templates/[^#]*(eex)$}
...