@@ -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