Source IO.ANSI
Функциональность для отображения последовательностей ANSI.
Последовательности ANSI — это символы, встраиваемые в текст, используемые для управления форматированием, цветом и другими параметрами вывода на видеотерминалах.
Последовательности ANSI обычно включены на всех терминалах Unix. Они также доступны в консолях Windows начиная с Windows 10, хотя их необходимо явно включить для текущего пользователя в реестре, выполнив следующую команду:
reg add HKCU\Console /v VirtualTerminalLevel /t REG_DWORD /d 1
После выполнения указанной выше команды необходимо перезапустить текущую консоль.
Примеры
Поскольку последовательности ANSI встроены в текст, обычное использование этих функций заключается в конкатенации их вывода с текстом.
formatted_text = IO.ANSI.blue_background() <> "Example" <> IO.ANSI.reset() IO.puts(formatted_text)
Доступен также API более высокого уровня и более удобный с помощью IO.ANSI.format/1, где вы используете атомы для представления каждой последовательности ANSI и по умолчанию проверяете, включен ли ANSI:
IO.puts(IO.ANSI.format([:blue_background, "Example"]))
В случае, если ANSI отключен, последовательности ANSI просто игнорируются.
Краткое описание
Типы
Функции
- black()
Устанавливает цвет переднего плана на черный.
- black_background()
Устанавливает цвет заднего плана на черный.
- blink_off()
Мигание: выкл.
- blink_rapid()
Мигание: быстро. MS-DOS ANSI.SYS; 150 или более импульсов в минуту; не широко поддерживается.
- blink_slow()
Мигание: медленно. Менее 150 импульсов в минуту.
- blue()
Устанавливает цвет переднего плана на синий.
- blue_background()
Устанавливает цвет заднего плана на синий.
- bright()
Ярко (увеличенная интенсивность) или жирно.
- clear()
Очищает экран.
- clear_line()
Очищает строку.
- color(code)
Устанавливает цвет переднего плана.
- color(r, g, b)
Устанавливает цвет переднего плана по отдельным значениям RGB.
- color_background(code)
Устанавливает цвет заднего плана.
- color_background(r, g, b)
Устанавливает цвет заднего плана по отдельным значениям RGB.
- conceal()
Скрыть. Не широко поддерживается.
- crossed_out()
Зачеркнуто. Символы читаются, но помечены для удаления. Не широко поддерживается.
- cursor(line, column)
Перемещает курсор в абсолютную позицию, указанную по
lineиcolumn.- cursor_down(lines \\ 1)
Перемещает курсор
linesвниз.- cursor_left(columns \\ 1)
Перемещает курсор
columnsвлево.- cursor_right(columns \\ 1)
Перемещает курсор
columnsвправо.- cursor_up(lines \\ 1)
Перемещает курсор
linesвверх.- cyan()
Устанавливает цвет переднего плана на голубой.
- cyan_background()
Устанавливает цвет заднего плана на голубой.
- default_background()
Цвет фона по умолчанию.
- default_color()
Цвет текста по умолчанию.
- enabled?()
Проверяет, поддерживается ли и включена ли ANSI-раскраска на этом компьютере.
- encircled()
В кружке.
- faint()
Слабый (уменьшенная интенсивность). Не широко поддерживается.
- font_1()
Устанавливает альтернативный шрифт 1.
- font_2()
Устанавливает альтернативный шрифт 2.
- font_3()
Устанавливает альтернативный шрифт 3.
- font_4()
Устанавливает альтернативный шрифт 4.
- font_5()
Устанавливает альтернативный шрифт 5.
- font_6()
Устанавливает альтернативный шрифт 6.
- font_7()
Устанавливает альтернативный шрифт 7.
- font_8()
Устанавливает альтернативный шрифт 8.
- font_9()
Устанавливает альтернативный шрифт 9.
- format(ansidata, emit? \\ enabled?())
Форматирует аргумент типа chardata, преобразуя именованные ANSI-последовательности в фактические ANSI-коды.
- format_fragment(ansidata, emit? \\ enabled?())
Форматирует аргумент типа chardata, преобразуя именованные ANSI-последовательности в фактические ANSI-коды.
- framed()
Обрамление.
- green()
Устанавливает цвет переднего плана на зеленый.
- green_background()
Устанавливает цвет заднего плана на зеленый.
- home()
Перемещает курсор в начало.
- inverse()
Изображение: отрицательное. Меняет местами цвет переднего и заднего плана.
- inverse_off()
Изображение: положительное. Нормальный цвет переднего и заднего плана.
- italic()
Курсив: включен. Не широко поддерживается. Иногда обрабатывается как обрамление.
- light_black()
Устанавливает цвет переднего плана на светло-черный.
- light_black_background()
Устанавливает цвет заднего плана на светло-черный.
- light_blue()
Устанавливает цвет переднего плана на светло-синий.
- light_blue_background()
Устанавливает цвет заднего плана на светло-синий.
- light_cyan()
Устанавливает цвет переднего плана на светло-голубой.
- light_cyan_background()
Устанавливает цвет заднего плана на светло-голубой.
- light_green()
Устанавливает цвет фона на светло-зелёный.
- light_green_background()
Устанавливает цвет фона на светло-зелёный.
- light_magenta()
Устанавливает цвет текста на светло-пурпурный.
- light_magenta_background()
Устанавливает цвет фона на светло-пурпурный.
- light_red()
Устанавливает цвет текста на светло-красный.
- light_red_background()
Устанавливает цвет фона на светло-красный.
- light_white()
Устанавливает цвет текста на светло-белый.
- light_white_background()
Устанавливает цвет фона на светло-белый.
- light_yellow()
Устанавливает цвет текста на светло-жёлтый.
- light_yellow_background()
Устанавливает цвет фона на светло-жёлтый.
- magenta()
Устанавливает цвет текста на пурпурный.
- magenta_background()
Устанавливает цвет фона на пурпурный.
- no_underline()
Подчеркивание: нет.
- normal()
Нормальный цвет или интенсивность.
- not_framed_encircled()
Без рамки или окружения.
- not_italic()
Не курсив.
- not_overlined()
Без перечёркивания.
- overlined()
Перечёркнутый.
- primary_font()
Устанавливает основной (по умолчанию) шрифт.
- red()
Устанавливает цвет текста на красный.
- red_background()
Устанавливает цвет фона на красный.
- reset()
Сбрасывает все атрибуты.
- reverse()
Изображение: негатив. Меняет местами цвет текста и фона.
- reverse_off()
Изображение: позитив. Нормальный цвет текста и фона.
- syntax_colors()
Цвета синтаксиса, которые будут использоваться
Inspect.- underline()
Подчеркивание: одиночное.
- white()
Устанавливает цвет текста на белый.
- white_background()
Устанавливает цвет фона на белый.
- yellow()
Устанавливает цвет текста на жёлтый.
- yellow_background()
Устанавливает цвет фона на жёлтый.
Типы
Функции
black()Source
@spec black() :: String.t()
Устанавливает цвет переднего плана на черный.
black_background()Source
@spec black_background() :: String.t()
Устанавливает цвет фона на черный.
blink_off()Source
@spec blink_off() :: String.t()
Мерцание: выкл.
blink_rapid()Source
@spec blink_rapid() :: String.t()
Мерцание: быстро. ANSI.SYS MS-DOS; 150 или более вспышек в минуту; не широко поддерживается.
blink_slow()Source
@spec blink_slow() :: String.t()
Мерцание: медленно. Менее 150 вспышек в минуту.
blue()Source
@spec blue() :: String.t()
Устанавливает цвет переднего плана на синий.
blue_background()Source
@spec blue_background() :: String.t()
Устанавливает цвет фона на синий.
bright()Source
@spec bright() :: String.t()
Яркий (увеличенная интенсивность) или жирный.
clear()Source
@spec clear() :: String.t()
Очищает экран.
clear_line()Source
@spec clear_line() :: String.t()
Очищает строку.
color(code)Source
@spec color(0..255) :: String.t()
Устанавливает цвет переднего плана.
color(r, g, b)Source
@spec color(0..5, 0..5, 0..5) :: String.t()
Устанавливает цвет переднего плана из отдельных значений RGB.
Допустимые значения для каждого цвета находятся в диапазоне от 0 до 5.
color_background(code)Source
@spec color_background(0..255) :: String.t()
Устанавливает цвет фона.
color_background(r, g, b)Source
@spec color_background(0..5, 0..5, 0..5) :: String.t()
Устанавливает цвет фона из отдельных значений RGB.
Допустимые значения для каждого цвета находятся в диапазоне от 0 до 5.
conceal()Source
@spec conceal() :: String.t()
Скрыть. Не широко поддерживается.
crossed_out()Source
@spec crossed_out() :: String.t()
Зачеркнуто. Символы читаемы, но помечены для удаления. Не широко поддерживается.
cursor(line, column)Source
@spec cursor(non_neg_integer(), non_neg_integer()) :: String.t()
Перемещает курсор в абсолютную позицию, указанную line и column.
Строка 0 и столбец 0 означали бы верхний левый угол.
cursor_down(lines \\ 1)Source
@spec cursor_down(pos_integer()) :: String.t()
Перемещает курсор lines вниз.
cursor_left(columns \\ 1)Source
@spec cursor_left(pos_integer()) :: String.t()
Перемещает курсор columns влево.
cursor_right(columns \\ 1)Source
@spec cursor_right(pos_integer()) :: String.t()
Перемещает курсор columns вправо.
cursor_up(lines \\ 1)Source
@spec cursor_up(pos_integer()) :: String.t()
Перемещает курсор lines вверх.
cyan()Source
@spec cyan() :: String.t()
Устанавливает цвет переднего плана на голубой.
cyan_background()Source
@spec cyan_background() :: String.t()
Устанавливает цвет фона на голубой.
default_background()Source
@spec default_background() :: String.t()
Цвет фона по умолчанию.
default_color()Source
@spec default_color() :: String.t()
Цвет текста по умолчанию.
enabled?()Source
@spec enabled?() :: boolean()
Проверяет, поддерживается и включена ли ANSI-раскраска на этом компьютере.
Эта функция просто считывает значение конфигурации для :ansi_enabled в приложении :elixir. Значение по умолчанию false, если Elixir не может определить во время запуска, что stdout и stderr являются терминалами.
encircled()Source
@spec encircled() :: String.t()
Обведенная.
faint()Source
@spec faint() :: String.t()
Блеклый (уменьшенная интенсивность). Не широко поддерживается.
font_1()Source
@spec font_1() :: String.t()
Устанавливает альтернативный шрифт 1.
font_2()Source
@spec font_2() :: String.t()
Устанавливает альтернативный шрифт 2.
font_3()Source
@spec font_3() :: String.t()
Устанавливает альтернативный шрифт 3.
font_4()Source
@spec font_4() :: String.t()
Устанавливает альтернативный шрифт 4.
font_5()Source
@spec font_5() :: String.t()
Устанавливает альтернативный шрифт 5.
font_6()Source
@spec font_6() :: String.t()
Устанавливает альтернативный шрифт 6.
font_7()Source
@spec font_7() :: String.t()
Устанавливает альтернативный шрифт 7.
font_8()Source
@spec font_8() :: String.t()
Устанавливает альтернативный шрифт 8.
font_9()Source
@spec font_9() :: String.t()
Устанавливает альтернативный шрифт 9.
format(ansidata, emit? \\ enabled?())Source
@spec format(ansidata(), boolean()) :: IO.chardata()
Форматирует аргумент типа chardata, преобразуя именованные ANSI-последовательности в фактические ANSI-коды.
Именованные последовательности представлены атомами.
Также будет добавлен IO.ANSI.reset/0 к chardata при выполнении преобразования. Если вы этого не хотите, используйте format_fragment/2.
В качестве необязательного параметра можно передать булево значение для включения или выключения вывода фактических ANSI-кодов. Когда false, ANSI-коды не будут выводиться. По умолчанию проверяет, включен ли ANSI, используя функцию enabled?/0.
Будет выброшено исключение ArgumentError, если предоставлен неверный ANSI-код.
Примеры
iex> IO.ANSI.format(["Hello, ", :red, :bright, "world!"], true) [[[[[[], "Hello, "] | "\e[31m"] | "\e[1m"], "world!"] | "\e[0m"]
format_fragment(ansidata, emit? \\ enabled?())Source
@spec format_fragment(ansidata(), boolean()) :: IO.chardata()
Форматирует аргумент типа chardata, преобразуя именованные ANSI-последовательности в фактические ANSI-коды.
Именованные последовательности представлены атомами.
В качестве необязательного параметра можно передать булево значение для включения или выключения вывода фактических ANSI-кодов. Когда false, ANSI-коды не будут выводиться. По умолчанию проверяет, включен ли ANSI, используя функцию enabled?/0.
Примеры
iex> IO.ANSI.format_fragment([:bright, ~c"Word"], true) [[[[[[] | "\e[1m"], 87], 111], 114], 100]
framed()Source
@spec framed() :: String.t()
Оформлено рамкой.
green()Source
@spec green() :: String.t()
Устанавливает цвет переднего плана на зеленый.
green_background()Source
@spec green_background() :: String.t()
Устанавливает цвет фона на зеленый.
home()Source
@spec home() :: String.t()
Перемещает курсор в начало.
inverse()Source
@spec inverse() :: String.t()
Инверсия. Меняет местами передний и задний планы.
inverse_off()Source
@spec inverse_off() :: String.t()
Обратная инверсия. Восстановление нормальных цветов переднего и заднего планов.
italic()Source
@spec italic() :: String.t()
Курсив: включен. Не широко поддерживается. Иногда обрабатывается как инверсия.
light_black()Source
@spec light_black() :: String.t()
Устанавливает цвет переднего плана на светло-черный.
light_black_background()Source
@spec light_black_background() :: String.t()
Устанавливает цвет фона на светло-черный.
light_blue()Source
@spec light_blue() :: String.t()
Устанавливает цвет переднего плана на светло-голубой.
light_blue_background()Source
@spec light_blue_background() :: String.t()
Устанавливает цвет фона на светло-голубой.
light_cyan()Source
@spec light_cyan() :: String.t()
Устанавливает цвет переднего плана на светло-голубой.
light_cyan_background()Source
@spec light_cyan_background() :: String.t()
Устанавливает цвет фона на светло-голубой.
light_green()Source
@spec light_green() :: String.t()
Устанавливает цвет переднего плана на светло-зеленый.
light_green_background()Source
@spec light_green_background() :: String.t()
Устанавливает цвет фона на светло-зеленый.
light_magenta()Source
@spec light_magenta() :: String.t()
Устанавливает цвет переднего плана на светло-пурпурный.
light_magenta_background()Source
@spec light_magenta_background() :: String.t()
Устанавливает цвет фона на светло-пурпурный.
light_red()Source
@spec light_red() :: String.t()
Устанавливает цвет переднего плана на светло-красный.
light_red_background()Source
@spec light_red_background() :: String.t()
Устанавливает цвет фона на светло-красный.
light_white()Source
@spec light_white() :: String.t()
Устанавливает цвет переднего плана на светло-белый.
light_white_background()Source
@spec light_white_background() :: String.t()
Устанавливает цвет фона на светло-белый.
light_yellow()Source
@spec light_yellow() :: String.t()
Устанавливает цвет переднего плана на светло-желтый.
light_yellow_background()Source
@spec light_yellow_background() :: String.t()
Устанавливает цвет фона на светло-жёлтый.
magenta()Source
@spec magenta() :: String.t()
Устанавливает цвет переднего плана на пурпурный.
magenta_background()Source
@spec magenta_background() :: String.t()
Устанавливает цвет фона на пурпурный.
no_underline()Source
@spec no_underline() :: String.t()
Подчёркивание: нет.
normal()Source
@spec normal() :: String.t()
Нормальный цвет или интенсивность.
not_framed_encircled()Source
@spec not_framed_encircled() :: String.t()
Без рамки или окружения.
not_italic()Source
@spec not_italic() :: String.t()
Не курсив.
not_overlined()Source
@spec not_overlined() :: String.t()
Без черты сверху.
overlined()Source
@spec overlined() :: String.t()
С чертой сверху.
primary_font()Source
@spec primary_font() :: String.t()
Устанавливает основной (по умолчанию) шрифт.
red()Source
@spec red() :: String.t()
Устанавливает цвет переднего плана на красный.
red_background()Source
@spec red_background() :: String.t()
Устанавливает цвет фона на красный.
reset()Source
@spec reset() :: String.t()
Сбрасывает все атрибуты.
reverse()Source
@spec reverse() :: String.t()
Изображение: инвертированное. Меняет местами передний и задний план.
reverse_off()Source
@spec reverse_off() :: String.t()
Изображение: положительное. Обычный передний и задний план.
syntax_colors()Source
@spec syntax_colors() :: Keyword.t(ansidata())
Цвета синтаксиса, используемые Inspect.
Эти цвета используются в стандартной библиотеке Elixir, например, dbg/2 и IEx.
Цвета можно изменить, задав :ansi_syntax_colors в конфигурации приложения :elixir. Поддерживается конфигурация большинства встроенных типов данных: :atom, :binary, :boolean, :charlist, :list, :map, :nil, :number, :string, и :tuple. Значение по умолчанию:
[ atom: :cyan boolean: :magenta, charlist: :yellow, nil: :magenta, number: :yellow, string: :green ]
underline()Source
@spec underline() :: String.t()
Подчёркивание: одно.
white()Source
@spec white() :: String.t()
Устанавливает цвет переднего плана на белый.
white_background()Source
@spec white_background() :: String.t()
Устанавливает цвет фона на белый.
yellow()Source
@spec yellow() :: String.t()
Устанавливает цвет переднего плана на жёлтый.
yellow_background()Source
@spec yellow_background() :: String.t()
Устанавливает цвет фона на жёлтый.
© 2012-2024 The Elixir Team
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.17.2/IO.ANSI.html