Skip to content

Commit e2b8ab9

Browse files
author
José Valim
committed
Unify alias doc handling
Signed-off-by: José Valim <[email protected]>
1 parent 1dc6d10 commit e2b8ab9

File tree

1 file changed

+14
-26
lines changed

1 file changed

+14
-26
lines changed

lib/mix/lib/mix/tasks/help.ex

Lines changed: 14 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,6 @@ defmodule Mix.Tasks.Help do
7575
aliases = Enum.filter(load_aliases(), fn {name, _} -> String.contains?(name, pattern) end)
7676

7777
{docs, max} = build_doc_list(modules, aliases)
78-
7978
display_doc_list(docs, max)
8079
end
8180

@@ -95,39 +94,28 @@ defmodule Mix.Tasks.Help do
9594
opts
9695
end
9796

98-
case verbose_doc(task) do
99-
[single] ->
100-
print_doc(task, single, opts)
101-
102-
[alias_doc, task_doc] ->
103-
print_doc(task, alias_doc, opts)
104-
105-
note = "\nThere is also a task named \"#{task}\". The documentation is shown next.\n"
106-
107-
if ansi_docs?(opts) do
108-
IO.ANSI.Docs.print(note, opts)
109-
else
110-
IO.puts(note)
111-
end
112-
113-
print_doc(task, task_doc, opts)
97+
for doc <- verbose_doc(task) do
98+
print_doc(task, doc, opts)
11499
end
115100
end
116101

117102
def run(_) do
118103
Mix.raise("Unexpected arguments, expected \"mix help\" or \"mix help TASK\"")
119104
end
120105

121-
defp print_doc(task, {doc, location}, opts) do
106+
defp print_doc(task, {doc, location, note}, opts) do
122107
if ansi_docs?(opts) do
108+
opts = [width: width()] ++ opts
123109
IO.ANSI.Docs.print_heading("mix #{task}", opts)
124110
IO.ANSI.Docs.print(doc, opts)
111+
IO.puts("Location: #{location}")
112+
note && IO.puts("") && IO.ANSI.Docs.print(note, opts)
125113
else
126114
IO.puts("# mix #{task}\n")
127115
IO.puts(doc)
116+
IO.puts("\nLocation: #{location}")
117+
note && IO.puts([?\n, note, ?\n, ?\n])
128118
end
129-
130-
IO.puts("Location: #{location}")
131119
end
132120

133121
# Loadpaths without checks because tasks may be defined in deps.
@@ -224,24 +212,24 @@ defmodule Mix.Tasks.Help do
224212

225213
cond do
226214
has_alias? and has_task? ->
227-
[alias_doc(aliases[task]), task_doc(task)]
215+
note = "There is also a task named \"#{task}\". The documentation is shown next."
216+
[alias_doc(aliases[task], note), task_doc(task)]
228217

229218
has_alias? ->
230-
[alias_doc(aliases[task])]
219+
[alias_doc(aliases[task], nil)]
231220

232221
true ->
233222
[task_doc(task)]
234223
end
235224
end
236225

237-
defp alias_doc(task_name) do
238-
doc = "Alias for " <> inspect(task_name)
239-
{doc, "mix.exs"}
226+
defp alias_doc(task_name, note) do
227+
{"Alias for " <> inspect(task_name), "mix.exs", note}
240228
end
241229

242230
defp task_doc(task) do
243231
module = Mix.Task.get!(task)
244232
doc = Mix.Task.moduledoc(module) || "There is no documentation for this task"
245-
{doc, where_is_file(module)}
233+
{doc, where_is_file(module), nil}
246234
end
247235
end

0 commit comments

Comments
 (0)