Skip to content

Commit 5c45e4a

Browse files
author
Thomaz Leite
committed
Pass colors parameter to inline handling functions in ANSIDocs
1 parent 5fa617a commit 5c45e4a

File tree

1 file changed

+33
-33
lines changed

1 file changed

+33
-33
lines changed

lib/iex/lib/iex/ansi_docs.ex

Lines changed: 33 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -142,19 +142,19 @@ defmodule IEx.ANSIDocs do
142142
## Text (paragraphs / lists)
143143

144144
defp process_text(doc=["" | _], para, indent, from_list, colors) do
145-
write_text(Enum.reverse(para), indent, from_list)
145+
write_text(Enum.reverse(para), indent, from_list, colors)
146146
process(doc, indent, colors)
147147
end
148148

149-
defp process_text([], para, indent, from_list, _colors) do
150-
write_text(Enum.reverse(para), indent, from_list)
149+
defp process_text([], para, indent, from_list, colors) do
150+
write_text(Enum.reverse(para), indent, from_list, colors)
151151
end
152152

153153
defp process_text([line | rest], para, indent, true, colors) do
154154
{ stripped, count } = strip_spaces(line, 0)
155155
case stripped do
156156
<<bullet, ?\s, item :: binary>> when bullet in @bullets ->
157-
write_text(Enum.reverse(para), indent, true)
157+
write_text(Enum.reverse(para), indent, true, colors)
158158
process_list(item, rest, count, indent, colors)
159159
_ ->
160160
process_text(rest, [line | para], indent, true, colors)
@@ -165,11 +165,11 @@ defmodule IEx.ANSIDocs do
165165
process_text(rest, [line | para], indent, from_list, colors)
166166
end
167167

168-
defp write_text(lines, indent, from_list) do
168+
defp write_text(lines, indent, from_list, colors) do
169169
lines
170170
|> Enum.join(" ")
171171
|> handle_links
172-
|> handle_inline(nil, [], [])
172+
|> handle_inline(nil, [], [], colors)
173173
|> String.split(%r{\s})
174174
|> write_with_wrap(column_width() - size(indent), indent, from_list)
175175

@@ -202,7 +202,7 @@ defmodule IEx.ANSIDocs do
202202

203203
## Helpers
204204

205-
defp write(style, string, colors // IEx.Options.get(:colors)) do
205+
defp write(style, string, colors) do
206206
color = colors[style]
207207
enabled = colors[:enabled]
208208
seq_color = IO.ANSI.escape_fragment("%{#{color}}", enabled)
@@ -284,64 +284,64 @@ defmodule IEx.ANSIDocs do
284284
@spaced [?_, ?*]
285285

286286
# Clauses for handling spaces
287-
defp handle_inline(<<?*, ?*, ?\s, rest :: binary>>, nil, buffer, acc) do
288-
handle_inline(rest, nil, [?\s, ?*, ?*|buffer], acc)
287+
defp handle_inline(<<?*, ?*, ?\s, rest :: binary>>, nil, buffer, acc, colors) do
288+
handle_inline(rest, nil, [?\s, ?*, ?*|buffer], acc, colors)
289289
end
290290

291-
defp handle_inline(<<mark, ?\s, rest :: binary>>, nil, buffer, acc) when mark in @spaced do
292-
handle_inline(rest, nil, [?\s, mark|buffer], acc)
291+
defp handle_inline(<<mark, ?\s, rest :: binary>>, nil, buffer, acc, colors) when mark in @spaced do
292+
handle_inline(rest, nil, [?\s, mark|buffer], acc, colors)
293293
end
294294

295-
defp handle_inline(<<?\s, ?*, ?*, rest :: binary>>, limit, buffer, acc) do
296-
handle_inline(rest, limit, [?*, ?*, ?\s|buffer], acc)
295+
defp handle_inline(<<?\s, ?*, ?*, rest :: binary>>, limit, buffer, acc, colors) do
296+
handle_inline(rest, limit, [?*, ?*, ?\s|buffer], acc, colors)
297297
end
298298

299-
defp handle_inline(<<?\s, mark, rest :: binary>>, limit, buffer, acc) when mark in @spaced do
300-
handle_inline(rest, limit, [mark, ?\s|buffer], acc)
299+
defp handle_inline(<<?\s, mark, rest :: binary>>, limit, buffer, acc, colors) when mark in @spaced do
300+
handle_inline(rest, limit, [mark, ?\s|buffer], acc, colors)
301301
end
302302

303303
# Clauses for handling escape
304-
defp handle_inline(<<?\\, ?\\, rest :: binary>>, limit, buffer, acc) do
305-
handle_inline(rest, limit, [?\\|buffer], acc)
304+
defp handle_inline(<<?\\, ?\\, rest :: binary>>, limit, buffer, acc, colors) do
305+
handle_inline(rest, limit, [?\\|buffer], acc, colors)
306306
end
307307

308-
defp handle_inline(<<?\\, ?*, ?*, rest :: binary>>, limit, buffer, acc) do
309-
handle_inline(rest, limit, [?*, ?*|buffer], acc)
308+
defp handle_inline(<<?\\, ?*, ?*, rest :: binary>>, limit, buffer, acc, colors) do
309+
handle_inline(rest, limit, [?*, ?*|buffer], acc, colors)
310310
end
311311

312312
# A escape is not valid inside `
313-
defp handle_inline(<<?\\, mark, rest :: binary>>, limit, buffer, acc)
313+
defp handle_inline(<<?\\, mark, rest :: binary>>, limit, buffer, acc, colors)
314314
when mark in [?_, ?*, ?`] and not(mark == limit and mark == ?`) do
315-
handle_inline(rest, limit, [mark|buffer], acc)
315+
handle_inline(rest, limit, [mark|buffer], acc, colors)
316316
end
317317

318318
# Inline start
319-
defp handle_inline(<<?*, ?*, rest :: binary>>, nil, buffer, acc) when rest != "" do
320-
handle_inline(rest, ?d, ["**"], [Enum.reverse(buffer)|acc])
319+
defp handle_inline(<<?*, ?*, rest :: binary>>, nil, buffer, acc, colors) when rest != "" do
320+
handle_inline(rest, ?d, ["**"], [Enum.reverse(buffer)|acc], colors)
321321
end
322322

323-
defp handle_inline(<<mark, rest :: binary>>, nil, buffer, acc) when rest != "" and mark in @single do
324-
handle_inline(rest, mark, [<<mark>>], [Enum.reverse(buffer)|acc])
323+
defp handle_inline(<<mark, rest :: binary>>, nil, buffer, acc, colors) when rest != "" and mark in @single do
324+
handle_inline(rest, mark, [<<mark>>], [Enum.reverse(buffer)|acc], colors)
325325
end
326326

327327
# Inline end
328-
defp handle_inline(<<?*, ?*, rest :: binary>>, ?d, buffer, acc) do
329-
handle_inline(rest, nil, [], [inline_buffer(buffer)|acc])
328+
defp handle_inline(<<?*, ?*, rest :: binary>>, ?d, buffer, acc, colors) do
329+
handle_inline(rest, nil, [], [inline_buffer(buffer, colors)|acc], colors)
330330
end
331331

332-
defp handle_inline(<<mark, rest :: binary>>, mark, buffer, acc) when mark in @single do
333-
handle_inline(rest, nil, [], [inline_buffer(buffer)|acc])
332+
defp handle_inline(<<mark, rest :: binary>>, mark, buffer, acc, colors) when mark in @single do
333+
handle_inline(rest, nil, [], [inline_buffer(buffer, colors)|acc], colors)
334334
end
335335

336-
defp handle_inline(<<char, rest :: binary>>, mark, buffer, acc) do
337-
handle_inline(rest, mark, [char|buffer], acc)
336+
defp handle_inline(<<char, rest :: binary>>, mark, buffer, acc, colors) do
337+
handle_inline(rest, mark, [char|buffer], acc, colors)
338338
end
339339

340-
defp handle_inline(<<>>, _mark, buffer, acc) do
340+
defp handle_inline(<<>>, _mark, buffer, acc, _colors) do
341341
iolist_to_binary Enum.reverse([Enum.reverse(buffer)|acc])
342342
end
343343

344-
defp inline_buffer(buffer) do
344+
defp inline_buffer(buffer, _colors) do
345345
[h|t] = Enum.reverse([IO.ANSI.reset|buffer])
346346
[color_for(h)|t]
347347
end

0 commit comments

Comments
 (0)