Юникод-картинки и Use Virtual Terminal for rendering

Здесь можно сообщить о найденных багах в Far.
Post Reply
User avatar
SlashNet
Posts: 638
Joined: Fri 20 Mar, 2009 09:43
Location: Львов
Has thanked: 16 times
Been thanked: 16 times

Юникод-картинки и Use Virtual Terminal for rendering

Post by SlashNet »

Текстовые файлы в которых используются юникодные символы-изображения при включённом Use Virtual Terminal for rendering в редакторе обрабатываются некорректно.

При отключённой функции Use Virtual Terminal for rendering эти символы отображаются с "правильной" двойной шириной символа, хоть и отрисовываются не совсем корректно (при наезжании на них курсором появляется "неизвестный" символ)
Clipboard_11.06.2022_17-00-11,51.png
Clipboard_11.06.2022_17-00-11,51.png (1.31 KiB) Viewed 2409 times

При включённой функции Use Virtual Terminal for rendering эти символы отображаются с одинарной шириной как "неизвестный" символ. Но при этом посреди строки появляются "дырки", будто редактор вспоминает что в строке присутствуют символы нестандартной ширины и начинает отрисовку строки с учётом двойной ширины символов (на скрине обвёл эти места красным цветом - символы и их цвет остались от названий файлов на панелях). Редактор с Колорером отображает дырки в одном месте, а если без него то в другом.
Clipboard_11.06.2022_17-04-59,00.png
Clipboard_11.06.2022_17-04-59,00.png (1.53 KiB) Viewed 2409 times

На проблему с азиатскими иероглифами не совсем похоже, так как они у меня при этом отображаются нормально (с учётом unicon.exe и опции Fullwidth-aware rendering)
Attachments
Clipboard_11.06.2022_16-25-43,36.txt
Текстовый файл для тестирования
(1.61 KiB) Downloaded 108 times
ədиw wo⊥є ʚ o⊥ʎнdəʚədəu əɔʚ
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Юникод-картинки и Use Virtual Terminal for rendering

Post by DrKnS »

It doesn't work as expected due to a bug (or rather a missing feature) in the host.
It has been fixed already, but, as usual, it takes ages for a new version to reach the users.

To get the best possible results (as of 2022):
  1. Use the latest console host.
    • conhost.exe in Windows 11 (or 10 Insider Preview) is probably good enough.
    • For older Windows 10 versions either install Windows Terminal Preview and take openconsole.exe from C:\Program Files\WindowsApps\Microsoft.WindowsTerminalPreview_... or build it yourself from source.
    • Alternatively, use Windows Terminal or DX renderer in conhost (HKCU\Console\UseDx = 1).
  2. Use the latest Far.
  3. Use vector fonts.
  4. Enable fullwidth-aware rendering.
  5. Enable virtual terminal for rendering.
With such setup both double width single characters (Hiragana, Katakana, other East Asian within BMP) and double width double characters (emojis, other East Asian outside of BMP) should work more or less nice. Internally Far should work with single width double characters too, but I haven't seen any working host implementation so far.

image.png
image.png (14.04 KiB) Viewed 2372 times
Post Reply

Return to “Глюки и баги”