Packages
surface
0.7.2
0.12.3
0.12.2
0.12.1
0.12.0
0.11.5
0.11.4
0.11.3
0.11.2
0.11.1
0.11.0
0.10.0
0.9.5
0.9.4
0.9.3
0.9.2
0.9.1
0.9.0
0.8.4
0.8.3
0.8.2
0.8.1
0.8.0
0.7.6
0.7.5
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.1
0.6.0
0.5.2
0.5.1
0.5.0
0.4.1
0.4.0
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.1
0.1.0
0.1.0-alpha.2
0.1.0-alpha.1
0.1.0-alpha.0
A component based library for Phoenix LiveView
Current section
Files
Jump to
Current section
Files
lib/mix/tasks/surface/surface.init/patchers/formatter.ex
defmodule Mix.Tasks.Surface.Init.Patchers.Formatter do
@moduledoc false
# Common patches for `.formatter`
import Mix.Tasks.Surface.Init.ExPatcher
alias Mix.Tasks.Surface.Init.ExPatcher
def add_config(code, key, value) do
code
|> parse_string!()
|> halt_if(&find_keyword(&1, key), :already_patched)
|> append_keyword(key, value)
end
def add_import_dep(code, dep) do
code
|> parse_string!()
|> find_keyword_value(:import_deps)
|> halt_if(&find_list_item_with_code(&1, dep), :already_patched)
|> append_list_item(dep)
end
def add_input(code, pattern) do
code
|> parse_string!()
|> find_keyword_value(:inputs)
|> halt_if(&find_list_item_with_code(&1, pattern), :already_patched)
|> append_list_item(pattern)
end
def add_plugin(code, plugin) do
patcher = parse_string!(code)
case find_keyword_value(patcher, :plugins) do
%ExPatcher{node: nil} ->
append_keyword(patcher, :plugins, "[#{plugin}]")
plugins_patcher ->
plugins_patcher
|> halt_if(&find_list_item_with_code(&1, plugin), :already_patched)
|> append_list_item(plugin)
end
end
end