Skip to content

Commit

Permalink
Run mix format
Browse files Browse the repository at this point in the history
  • Loading branch information
rrrene committed Dec 22, 2023
1 parent c76a3a6 commit d85d5c8
Show file tree
Hide file tree
Showing 6 changed files with 233 additions and 59 deletions.
2 changes: 1 addition & 1 deletion lib/credo/check/readability/predicate_function_names.ex
Original file line number Diff line number Diff line change
Expand Up @@ -89,7 +89,7 @@ defmodule Credo.Check.Readability.PredicateFunctionNames do
end
end

defp issues_for_name(_op, {:unquote, _, [_|_]} = _name, _meta, issues, _issue_meta) do
defp issues_for_name(_op, {:unquote, _, [_ | _]} = _name, _meta, issues, _issue_meta) do
issues
end

Expand Down
146 changes: 118 additions & 28 deletions lib/credo/code/charlists.ex
Original file line number Diff line number Diff line change
Expand Up @@ -88,23 +88,35 @@ defmodule Credo.Code.Charlists do
end

for {sigil_start, sigil_end} <- removable_sigils do
defp parse_code(<<unquote(sigil_start)::utf8, t::binary>>, acc, replacement, empty_line_replacement) do
defp parse_code(
<<unquote(sigil_start)::utf8, t::binary>>,
acc,
replacement,
empty_line_replacement
) do
parse_removable_sigil(
t,
acc <> unquote(sigil_start),
unquote(sigil_end),
replacement, empty_line_replacement
replacement,
empty_line_replacement
)
end
end

for {sigil_start, sigil_end} <- all_heredocs_sigils do
defp parse_code(<<unquote(sigil_start)::utf8, t::binary>>, acc, replacement, empty_line_replacement) do
defp parse_code(
<<unquote(sigil_start)::utf8, t::binary>>,
acc,
replacement,
empty_line_replacement
) do
parse_heredoc(
t,
acc <> unquote(sigil_start),
replacement,
unquote(sigil_end), empty_line_replacement
unquote(sigil_end),
empty_line_replacement
)
end
end
Expand All @@ -118,12 +130,18 @@ defmodule Credo.Code.Charlists do
end

for {sigil_start, sigil_end} <- all_charlist_sigils do
defp parse_code(<<unquote(sigil_start)::utf8, t::binary>>, acc, replacement, empty_line_replacement) do
defp parse_code(
<<unquote(sigil_start)::utf8, t::binary>>,
acc,
replacement,
empty_line_replacement
) do
parse_charlist_sigil(
t,
acc <> unquote(sigil_start),
unquote(sigil_end),
replacement, empty_line_replacement
replacement,
empty_line_replacement
)
end
end
Expand Down Expand Up @@ -257,53 +275,77 @@ defmodule Credo.Code.Charlists do
<<"\\"::utf8, s::binary>>,
acc,
unquote(sigil_end),
replacement, empty_line_replacement
replacement,
empty_line_replacement
) do
{h, t} = String.next_codepoint(s)

parse_removable_sigil(t, acc <> "\\" <> h, unquote(sigil_end), replacement, empty_line_replacement)
parse_removable_sigil(
t,
acc <> "\\" <> h,
unquote(sigil_end),
replacement,
empty_line_replacement
)
end

defp parse_removable_sigil(
# \\
<<"\\\\"::utf8, t::binary>>,
acc,
unquote(sigil_end),
replacement, empty_line_replacement
replacement,
empty_line_replacement
) do
parse_removable_sigil(t, acc <> "\\\\", unquote(sigil_end), replacement, empty_line_replacement)
parse_removable_sigil(
t,
acc <> "\\\\",
unquote(sigil_end),
replacement,
empty_line_replacement
)
end

if sigil_end != "\"" do
defp parse_removable_sigil(
<<"\""::utf8, t::binary>>,
acc,
unquote(sigil_end),
replacement, empty_line_replacement
replacement,
empty_line_replacement
) do
parse_removable_sigil(t, acc <> "\"", unquote(sigil_end), replacement, empty_line_replacement)
parse_removable_sigil(
t,
acc <> "\"",
unquote(sigil_end),
replacement,
empty_line_replacement
)
end
end

defp parse_removable_sigil(
<<unquote("\\#{sigil_end}")::utf8, t::binary>>,
acc,
unquote(sigil_end),
replacement, empty_line_replacement
replacement,
empty_line_replacement
) do
parse_removable_sigil(
t,
acc <> unquote("\\#{sigil_end}"),
unquote(sigil_end),
replacement, empty_line_replacement
replacement,
empty_line_replacement
)
end

defp parse_removable_sigil(
<<unquote(sigil_end)::utf8, t::binary>>,
acc,
unquote(sigil_end),
replacement, empty_line_replacement
replacement,
empty_line_replacement
) do
parse_code(t, acc <> unquote(sigil_end), replacement, empty_line_replacement)
end
Expand All @@ -312,16 +354,24 @@ defmodule Credo.Code.Charlists do
<<"\n"::utf8, t::binary>>,
acc,
unquote(sigil_end),
replacement, empty_line_replacement
replacement,
empty_line_replacement
) do
parse_removable_sigil(t, acc <> "\n", unquote(sigil_end), replacement, empty_line_replacement)
parse_removable_sigil(
t,
acc <> "\n",
unquote(sigil_end),
replacement,
empty_line_replacement
)
end

defp parse_removable_sigil(
str,
acc,
unquote(sigil_end),
replacement, empty_line_replacement
replacement,
empty_line_replacement
)
when is_binary(str) do
{h, t} = String.next_codepoint(str)
Expand All @@ -343,7 +393,8 @@ defmodule Credo.Code.Charlists do
<<"\\\\"::utf8, t::binary>>,
acc,
unquote(sigil_end),
replacement, empty_line_replacement
replacement,
empty_line_replacement
) do
parse_charlist_sigil(t, acc, unquote(sigil_end), replacement, empty_line_replacement)
end
Expand All @@ -352,7 +403,8 @@ defmodule Credo.Code.Charlists do
<<"\\\""::utf8, t::binary>>,
acc,
unquote(sigil_end),
replacement, empty_line_replacement
replacement,
empty_line_replacement
) do
parse_charlist_sigil(t, acc, unquote(sigil_end), replacement, empty_line_replacement)
end
Expand All @@ -361,7 +413,8 @@ defmodule Credo.Code.Charlists do
<<unquote(sigil_end)::utf8, t::binary>>,
acc,
unquote(sigil_end),
replacement, empty_line_replacement
replacement,
empty_line_replacement
) do
parse_code(t, acc <> unquote(sigil_end), replacement, empty_line_replacement)
end
Expand All @@ -370,7 +423,8 @@ defmodule Credo.Code.Charlists do
<<"\n"::utf8, t::binary>>,
acc,
unquote(sigil_end),
replacement, empty_line_replacement
replacement,
empty_line_replacement
) do
acc =
if String.last(acc) == "\n" do
Expand All @@ -379,7 +433,13 @@ defmodule Credo.Code.Charlists do
acc
end

parse_charlist_sigil(t, acc <> "\n", unquote(sigil_end), replacement, empty_line_replacement)
parse_charlist_sigil(
t,
acc <> "\n",
unquote(sigil_end),
replacement,
empty_line_replacement
)
end

defp parse_charlist_sigil(
Expand All @@ -403,27 +463,57 @@ defmodule Credo.Code.Charlists do
# Heredocs
#

defp parse_heredoc(<<"\"\"\""::utf8, t::binary>>, acc, replacement, "\"\"\"", empty_line_replacement) do
defp parse_heredoc(
<<"\"\"\""::utf8, t::binary>>,
acc,
replacement,
"\"\"\"",
empty_line_replacement
) do
parse_code(t, acc <> ~s("""), replacement, empty_line_replacement)
end

defp parse_heredoc(<<"\'\'\'"::utf8, t::binary>>, acc, replacement, "\'\'\'", empty_line_replacement) do
defp parse_heredoc(
<<"\'\'\'"::utf8, t::binary>>,
acc,
replacement,
"\'\'\'",
empty_line_replacement
) do
parse_code(t, acc <> ~s('''), replacement, empty_line_replacement)
end

defp parse_heredoc("", acc, _replacement, _delimiter, _empty_line_replacement) do
acc
end

defp parse_heredoc(<<"\\\\"::utf8, t::binary>>, acc, replacement, delimiter, empty_line_replacement) do
defp parse_heredoc(
<<"\\\\"::utf8, t::binary>>,
acc,
replacement,
delimiter,
empty_line_replacement
) do
parse_heredoc(t, acc, replacement, delimiter, empty_line_replacement)
end

defp parse_heredoc(<<"\\\""::utf8, t::binary>>, acc, replacement, delimiter, empty_line_replacement) do
defp parse_heredoc(
<<"\\\""::utf8, t::binary>>,
acc,
replacement,
delimiter,
empty_line_replacement
) do
parse_heredoc(t, acc, replacement, delimiter, empty_line_replacement)
end

defp parse_heredoc(<<"\n"::utf8, t::binary>>, acc, replacement, delimiter, empty_line_replacement) do
defp parse_heredoc(
<<"\n"::utf8, t::binary>>,
acc,
replacement,
delimiter,
empty_line_replacement
) do
parse_heredoc(t, acc <> "\n", replacement, delimiter, empty_line_replacement)
end

Expand Down
Loading

0 comments on commit d85d5c8

Please sign in to comment.