I’m posting this as a reference as I couldn’t find a post related to this error message.
This issue can arise in umbrella projects that have been generated a long time ago where the LiveView HEEx formatter didn’t exist yet and you want to get up-to-date. When you try to define the Phoenix.LiveView.HTMLFormatter
as a plugin module (only) in the apps/myapp_web/.formatter.exs
file you may get the following error:
** (UndefinedFunctionError) function Phoenix.LiveView.HTMLFormatter.format/2 is undefined (module Phoenix.LiveView.HTMLFormatter is not available)
Phoenix.LiveView.HTMLFormatter.format("<img src=\"/images/toggle_on.svg\" />\n", [file: "src/myapp/apps/myapp_web/lib/myapp_web/views/admin/helpers.ex", line: 11, sigil: :H, modifiers: [], opening_delimiter: "\"\"\"", import_deps: [:ecto, :ecto_sql, :phoenix, :surface, :assertions], plugins: [Phoenix.LiveView.HTMLFormatter], inputs: ["*.{heex,ex,exs}", "{lib,test}/**/*.{heex,ex,exs}"]])
(elixir 1.14.2) lib/code/formatter.ex:1348: Code.Formatter.maybe_sigil_to_algebra/4
(elixir 1.14.2) lib/code/formatter.ex:487: Code.Formatter.quoted_to_algebra/3
(elixir 1.14.2) lib/code/formatter.ex:576: anonymous fn/3 in Code.Formatter.block_args_to_algebra/4
(elixir 1.14.2) lib/code/formatter.ex:1960: Code.Formatter.each_quoted_to_algebra_with_comments/6
(elixir 1.14.2) lib/code/formatter.ex:1938: Code.Formatter.quoted_to_algebra_with_comments/6
(elixir 1.14.2) lib/code/formatter.ex:581: Code.Formatter.block_args_to_algebra/4
(elixir 1.14.2) lib/code/formatter.ex:1858: Code.Formatter.clauses_to_algebra/4
I noticed that I sometimes didn’t get this error when I ran mix format
the first time, but then every subsequent time.