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()
Мигание: быстрое. MS-DOS ANSI.SYS; 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.
Примеры
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, '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 Plataformatec
Licensed under the Apache License, Version 2.0.
https://hexdocs.pm/elixir/1.15.4/IO.ANSI.html