Раскраска в редакторе текста с управляющими последовательностями

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Раскраска в редакторе текста с управляющими последовательностями

Post by HaRT »

Попадаются мне порой логи с никсов, в которые включены управляющие последовательности (ANSI escape sequences). Выглядеть это может, например, , только куда длиннее.
Нет ли у кого желания наскриптовать раскраску для таких файлов в соответствии с этими управляющими последовательностями?

P.S.
Или в составе Colorer'а уже есть подходящая раскраска, которая бы не только раскрашивала шрифт/фон, но и делала сами коды блёклыми?
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Раскраска в редакторе текста с управляющими последовательностями

Post by NightRoman »

Использую свою версию схемы text.hrc с такой добавкой (довольно примитивной, но пока хватает)

Code: Select all

<region name="Ansi" parent="def:LabelStrong"/>
...
    <!--ANSI-->
    <regexp match="/(?{Ansi}\x1B\[[^m]*m)/"/>
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Раскраска в редакторе текста с управляющими последовательностями

Post by NightRoman »

Раскрашиваются только коды, а текст красится, как обычный text.hrc, а не цветами определяемыми кодами. Для раскраски и цветов одной схемы hrc, наверное, недостаточно, надо еще и специальный hrd с понятием "цвет консоли" (hrc не оперируем понятием "цвет" напрямую).
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Раскраска в редакторе текста с управляющими последовательностями

Post by NightRoman »

Кстати, есть и хотелка для колорера - поддерживать такие зоны, где можно задать цвет раскраски напрямую, литерально.

В свое время предлагал для раскраски самих hrd, где колорер подсвечивал бы задание цветов их настоящими цветами. Было отклонено по другой причине - hrd.hrc, оказывается, сгенерированная схема и менять ее таким ручным способом нельзя (и лень дорабатывать генератор). Что отклонено, неважно. Важно, что там тоже был юз-кейс раскраски литеральными цветами, а не тегами. Это я к тому, что такие случаи нет-нет появляются.
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Раскраска в редакторе текста с управляющими последовательностями

Post by HaRT »

NightRoman wrote: Fri 29 Apr, 2022 06:22 Раскрашиваются только коды, а текст красится, как обычный text.hrc, а не цветами определяемыми кодами. Для раскраски и цветов одной схемы hrc, наверное, недостаточно, надо еще и специальный hrd с понятием "цвет консоли" (hrc не оперируем понятием "цвет" напрямую).
Спасибо за то, что поделились своим опытом, — может пригодиться.
И, чтобы не сужать контекст наперёд, всё-таки отмечу, что думаю в первую очередь о Lua/Moon-скрипте для раскраски (наподобие, например, CSV rainbow).
Фар есть инструмент, а не нянька. © 2009 DrKnS
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

Раскраска в редакторе текста с управляющими последовательностями

Post by siberia-man »

Насколько я разбираюсь в Colorer, его задача - только раскрасить текст, содержимое при этом не меняется. В Вашем случае надо избавиться от нечитабельных ANSI-кодов и перевести их в цвет. Это принципиально важно? По своему опыту чтения больших логов желание их открывать в редакторе FAR возникает не часто - в основном, чтобы скопировать интересный фрагмент.
2useven10
Posts: 5205
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 18 times
Been thanked: 310 times

Раскраска в редакторе текста с управляющими последовательностями

Post by 2useven10 »

siberia-man wrote: Sat 30 Apr, 2022 09:58 в основном, чтобы скопировать интересный фрагмент.
Для этого не нужен редактор, скопировать можно и при просмотре.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Раскраска в редакторе текста с управляющими последовательностями

Post by NightRoman »

Еще иногда так делаю (может, очевидно, а может, кому-как) -- просто взять лог файл и вывести его на консоль, которая понимает эти коды, и получается лог, "как в оригинале".
User avatar
HaRT
Moderator
Posts: 10822
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Раскраска в редакторе текста с управляющими последовательностями

Post by HaRT »

siberia-man wrote: Sat 30 Apr, 2022 09:58 В Вашем случае надо избавиться от нечитабельных ANSI-кодов и перевести их в цвет.
В этой теме предлагаю обсуждать именно то, как раскрасить текст в соответствии с кодами, а сами коды при этом сделать блёклыми, чтобы не бросались в глаза. Просто избавиться от них я могу и заменой по регэкспу (разумеется, с потерей информации о раскраске).
siberia-man wrote: Sat 30 Apr, 2022 09:58 желание их открывать в редакторе FAR возникает не часто
Просто мне навигация в редакторе привычнее, чем в просмотрщике, а размер моих логов не так велик, чтобы открывать редактор было слишком накладно.
Фар есть инструмент, а не нянька. © 2009 DrKnS
siberia-man
Posts: 131
Joined: Sat 28 Jun, 2014 23:07
Has thanked: 2 times
Been thanked: 9 times

Раскраска в редакторе текста с управляющими последовательностями

Post by siberia-man »

2useven10 wrote: Sat 30 Apr, 2022 13:03 скопировать можно и при просмотре
Можно. Но SHIFT+arrows удобнее чем SHIFT+click+arrows.
HaRT wrote: Sat 30 Apr, 2022 15:53 как раскрасить текст в соответствии с кодами
HaRT wrote: Sat 30 Apr, 2022 15:53 в редакторе привычнее, чем в просмотрщике
Я понял Ваш посыл.

Коллега 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.
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

Раскраска в редакторе текста с управляющими последовательностями

Post by NightRoman »

siberia-man wrote: Sun 01 May, 2022 18:55 Было бы интересно посмотреть, что в коде происходит дальше.
Ничего дальше не происходит. Это весь код, как бы.
(1) Где-то в начале схемы определили наш регион Ansi как def:LabelStrong (могли этого и не делать, а просто использовать def:LabelStrong).
(2) Где-то, где все остальные подобные конструкции описаны, вставили regexp, распознающий этот синтаксис и назначающий регион Ansi
Post Reply

Return to “Нужна помощь”