all dispatches
· #ryad· #windows· #rust· #open-source· #lezneve

ryad: маленький редактор, який пам'ятає чернетки

ryad: маленький редактор, який пам'ятає чернетки

Роками моїм чорнетковим блокнотом був Notepad++. Тиснеш ctrl+n, кидаєш туди думку, посилання, шматок логу, закриваєш усе, а наступного дня воно на місці. Стандартний Блокнот Windows теж навчився чогось схожого, але я хотів своє: маленьке, швидке й без зайвого.

Тож ось ryad («ряд»), друга утиліта lezneve після kadr. Маленький редактор для Windows, який пам'ятає чернетки між запусками.

ryad із markdown-файлом і предпросмотром, темна тема

що він вміє

  • Чернетки без файлів. Нова вкладка не просить назви й збереження. Те, що ти пишеш, за секунду після паузи лягає в папку ryad і повертається після закриття вікна. Навіть якщо процес вбити, повернеться остання збережена копія.
  • Файл змінюється тільки тоді, коли ти скажеш. Правки відкритого файла після закриття повертаються як локальна копія, а сам файл лишається як був до ctrl+s. Якщо його тим часом змінила інша програма, ryad спитає, перш ніж перезаписати: зберегти копію, перечитати чи перезаписати.
  • Звичайний текст, як був. UTF-8 з BOM і без, UTF-16, Windows-1251 на вимогу; CRLF, LF чи CR записуються назад такими, якими прийшли.
  • Вкладки з власним undo, пошук і заміна («замінити все» скасовується одним ctrl+z), перехід до рядка, alt+z, щоб перенести довгі рядки логу.
  • Предпросмотр markdown праворуч від .md файлів: заголовки, списки задач, цитати, код, таблиці. Він іде за світлою чи темною темою, а посилання й смужка цитат беруть акцентний колір Windows.

та сама нотатка у світлій темі

темний до кінця

Стандартна смуга меню Windows у темній темі лишається світлою, і документованого способу це змінити немає. Тому смуга меню в ryad своя, а кожне меню намальоване в кольорах вікна. Клавіатура працює як звикли: alt, F10, alt+F.

меню file у темній темі

чому він такий легкий

Як і kadr, ryad написаний на Rust і чистому Win32: без Electron і без webview. Поле тексту — системний rich edit, той самий, що й у самої Windows, тож набір, IME, буфер обміну й undo поводяться як скрізь у системі. На моєму ноутбуці:

  • від запуску до готовності друкувати: ~80 мс;
  • у простої: ~3 МБ пам'яті й 0 % CPU;
  • лог на 10 МБ відкривається менше ніж за секунду, 50 МБ — приблизно за 4 с;
  • уся програма — один exe на 0,6 МБ, він же інсталятор.

Окремо цікаво було з'ясувати, чому один довгий рядок вантажився 5 секунд. Справа виявилась не в довжині, а в тому, що Windows перемикає шрифти на кожній межі латиниці й кирилиці. Для великих файлів це вимкнено, і завантаження стало в 40 разів швидшим.

інсталятор

У тому ж стилі, що й у kadr: тільки для твого облікового запису, без прав адміністратора. Є необов'язковий перемикач «замінити Блокнот Windows»: ryad прибирає застосунок Блокнот для тебе й відкриває сторінку налаштувань, де один клік робить ryad типовим для текстових файлів (Windows не дозволяє програмам самим ставати типовими, цей клік за тобою). Під час видалення ryad запропонує повернути Блокнот, а чернетки залишить.

інсталятор

знову вайбкодинг

Як і з kadr, більшість коду написав AI (Claude): я писав завдання, тестував збірки й казав, що не так. Він і сам багато тестував: 78 сценаріїв проганяються на справжньому exe, від «процес вбили посеред запису сесії» до «файл змінила інша програма». Усе відкрите, MIT.

поки не ідеально

  • Файли ще не підписані: SmartScreen попередить при першому запуску, «Докладніше» → «Усе одно запустити». Біля кожного файла лежить SHA-256.
  • Незбережений текст живе в %LOCALAPPDATA%\ryad, зокрема й після видалення, тож повторна установка його знайде.
  • Не перевірено на Windows 10, на масштабі, відмінному від 150 %, і з екранним диктором поза полем тексту.

завантажити

Якщо щось зламалось або бракує чогось із Notepad++, пиши.