如何让Phoenix live重载忽略临时文件?

时间:2018-05-06 12:19:59

标签: emacs elixir phoenix-framework livereload

Emacs在编辑缓冲区时生成临时文件,例如编辑a.html.eex会产生.#a.html.eex。不幸的是,由于文件扩展名匹配,所以在这种情况下也会触发Phoenix live reload。有没有办法让live reload忽略这些文件,从而禁用这种行为?

2 个答案:

答案 0 :(得分:4)

您可以修改android:background中的正则表达式,仅匹配不包含config/dev.exs的路径。

#中,更改:

config/dev.exs

为:

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

答案 1 :(得分:1)

TL; DR

执行以下操作:

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

说明

documentation建议使用如下正则表达式:

~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中的正则表达式