Исходный код 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.
Будет выброшено исключение 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.18.1/IO.ANSI.html