Раскраска в редакторе текста с управляющими последовательностями
- HaRT
- Moderator
- Posts: 10663
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 210 times
- Been thanked: 338 times
Раскраска в редакторе текста с управляющими последовательностями
Попадаются мне порой логи с никсов, в которые включены управляющие последовательности (ANSI escape sequences). Выглядеть это может, например, , только куда длиннее.
Нет ли у кого желания наскриптовать раскраску для таких файлов в соответствии с этими управляющими последовательностями?
P.S.
Или в составе Colorer'а уже есть подходящая раскраска, которая бы не только раскрашивала шрифт/фон, но и делала сами коды блёклыми?
Нет ли у кого желания наскриптовать раскраску для таких файлов в соответствии с этими управляющими последовательностями?
P.S.
Или в составе Colorer'а уже есть подходящая раскраска, которая бы не только раскрашивала шрифт/фон, но и делала сами коды блёклыми?
Фар есть инструмент, а не нянька. © 2009 DrKnS
- NightRoman
- Posts: 6173
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Раскраска в редакторе текста с управляющими последовательностями
Использую свою версию схемы text.hrc с такой добавкой (довольно примитивной, но пока хватает)
Code: Select all
<region name="Ansi" parent="def:LabelStrong"/>
...
<!--ANSI-->
<regexp match="/(?{Ansi}\x1B\[[^m]*m)/"/>
- NightRoman
- Posts: 6173
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Раскраска в редакторе текста с управляющими последовательностями
Раскрашиваются только коды, а текст красится, как обычный text.hrc, а не цветами определяемыми кодами. Для раскраски и цветов одной схемы hrc, наверное, недостаточно, надо еще и специальный hrd с понятием "цвет консоли" (hrc не оперируем понятием "цвет" напрямую).
- NightRoman
- Posts: 6173
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Раскраска в редакторе текста с управляющими последовательностями
Кстати, есть и хотелка для колорера - поддерживать такие зоны, где можно задать цвет раскраски напрямую, литерально.
В свое время предлагал для раскраски самих hrd, где колорер подсвечивал бы задание цветов их настоящими цветами. Было отклонено по другой причине - hrd.hrc, оказывается, сгенерированная схема и менять ее таким ручным способом нельзя (и лень дорабатывать генератор). Что отклонено, неважно. Важно, что там тоже был юз-кейс раскраски литеральными цветами, а не тегами. Это я к тому, что такие случаи нет-нет появляются.
В свое время предлагал для раскраски самих hrd, где колорер подсвечивал бы задание цветов их настоящими цветами. Было отклонено по другой причине - hrd.hrc, оказывается, сгенерированная схема и менять ее таким ручным способом нельзя (и лень дорабатывать генератор). Что отклонено, неважно. Важно, что там тоже был юз-кейс раскраски литеральными цветами, а не тегами. Это я к тому, что такие случаи нет-нет появляются.
- HaRT
- Moderator
- Posts: 10663
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 210 times
- Been thanked: 338 times
Раскраска в редакторе текста с управляющими последовательностями
Спасибо за то, что поделились своим опытом, — может пригодиться.NightRoman wrote: ↑Fri 29 Apr, 2022 06:22 Раскрашиваются только коды, а текст красится, как обычный text.hrc, а не цветами определяемыми кодами. Для раскраски и цветов одной схемы hrc, наверное, недостаточно, надо еще и специальный hrd с понятием "цвет консоли" (hrc не оперируем понятием "цвет" напрямую).
И, чтобы не сужать контекст наперёд, всё-таки отмечу, что думаю в первую очередь о Lua/Moon-скрипте для раскраски (наподобие, например, CSV rainbow).
Фар есть инструмент, а не нянька. © 2009 DrKnS
-
- Posts: 131
- Joined: Sat 28 Jun, 2014 23:07
- Has thanked: 2 times
- Been thanked: 9 times
Раскраска в редакторе текста с управляющими последовательностями
Насколько я разбираюсь в Colorer, его задача - только раскрасить текст, содержимое при этом не меняется. В Вашем случае надо избавиться от нечитабельных ANSI-кодов и перевести их в цвет. Это принципиально важно? По своему опыту чтения больших логов желание их открывать в редакторе FAR возникает не часто - в основном, чтобы скопировать интересный фрагмент.
Раскраска в редакторе текста с управляющими последовательностями
Для этого не нужен редактор, скопировать можно и при просмотре.
- NightRoman
- Posts: 6173
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Раскраска в редакторе текста с управляющими последовательностями
Еще иногда так делаю (может, очевидно, а может, кому-как) -- просто взять лог файл и вывести его на консоль, которая понимает эти коды, и получается лог, "как в оригинале".
- HaRT
- Moderator
- Posts: 10663
- Joined: Tue 30 Aug, 2005 17:21
- Has thanked: 210 times
- Been thanked: 338 times
Раскраска в редакторе текста с управляющими последовательностями
В этой теме предлагаю обсуждать именно то, как раскрасить текст в соответствии с кодами, а сами коды при этом сделать блёклыми, чтобы не бросались в глаза. Просто избавиться от них я могу и заменой по регэкспу (разумеется, с потерей информации о раскраске).siberia-man wrote: ↑Sat 30 Apr, 2022 09:58 В Вашем случае надо избавиться от нечитабельных ANSI-кодов и перевести их в цвет.
Просто мне навигация в редакторе привычнее, чем в просмотрщике, а размер моих логов не так велик, чтобы открывать редактор было слишком накладно.
Фар есть инструмент, а не нянька. © 2009 DrKnS
-
- Posts: 131
- Joined: Sat 28 Jun, 2014 23:07
- Has thanked: 2 times
- Been thanked: 9 times
Раскраска в редакторе текста с управляющими последовательностями
Можно. Но SHIFT+arrows удобнее чем SHIFT+click+arrows.
Я понял Ваш посыл.
Коллега NightRoman поделился своим фрагментом hrc-схемы. Было бы интересно посмотреть, что в коде происходит дальше.
NightRoman wrote: ↑Fri 29 Apr, 2022 06:16 Использую свою версию схемы text.hrc с такой добавкой (довольно примитивной, но пока хватает)
Code: Select all
<region name="Ansi" parent="def:LabelStrong"/> ... <!--ANSI--> <regexp match="/(?{Ansi}\x1B\[[^m]*m)/"/>
Last edited by siberia-man on Thu 05 May, 2022 16:06, edited 1 time in total.
- NightRoman
- Posts: 6173
- Joined: Fri 18 Aug, 2006 13:52
- Location: Cambridge, UK
- Has thanked: 32 times
- Been thanked: 62 times
- Contact:
Раскраска в редакторе текста с управляющими последовательностями
Ничего дальше не происходит. Это весь код, как бы.siberia-man wrote: ↑Sun 01 May, 2022 18:55 Было бы интересно посмотреть, что в коде происходит дальше.
(1) Где-то в начале схемы определили наш регион Ansi как def:LabelStrong (могли этого и не делать, а просто использовать def:LabelStrong).
(2) Где-то, где все остальные подобные конструкции описаны, вставили regexp, распознающий этот синтаксис и назначающий регион Ansi