Skip to content

LexiQode 0.2.3

Choose a tag to compare

@KentoGasai KentoGasai released this 27 Oct 11:22
· 8 commits to main since this release

LexiQode 0.2.3

Скачайте LexiQode-0.2.3-win32-x64.zip, распакуйте куда угодно и запустите
LexiQode.exe. Ничего не устанавливается, права администратора не нужны. Сверьте
скачанное с файлом .sha256, приложенным рядом. Настройки и данные лежат вне папки
программы, поэтому распаковка поверх прежней версии их не трогает.

Это патч к 0.2.2: три вещи, которые в ней не могли работать ни при каких
настройках, и инструмент, которым это измеряется.

Что исправлено

window.prompt не существует — из-за него четыре кнопки молчали

Electron не реализует window.prompt: он возвращает null, ничего не показывая.
Четыре места в окне спрашивали имя именно так — создание файла, создание папки,
переименование и переключение ветки, — поэтому «+» в проводнике, «Переименовать» и
выбор ветки не делали ничего вообще: ни окна, ни поля, ни ошибки. Читалось это как
четыре несвязанные сломанные кнопки, а причина была одна строка кода в четырёх
местах.

  • Имя вводится в дереве, рядом с тем, что называется. «+» кладёт в нужную папку
    строку с полем (папку при этом раскрывает — новое внутри закрытой папки выглядит
    как «ничего не произошло»), а переименование подменяет собой подпись строки.
    Enter принимает имя, Escape отменяет, уход фокуса считается отменой. Замер
    probe-explorer-create.cjs печатает имя, нажимает Enter и ищет результат на
    диске
    .
  • Перерисовка больше не стирает поле. Дерево перерисовывается на каждое
    изменение на диске — включая то, которое вызвано только что созданным файлом, —
    и первая версия правки теряла из-за этого поле переименования: оно появлялось и
    исчезало вместе со своим же событием. Пока имя набирают, перерисовка
    откладывается и выполняется сразу после: ничего не теряется, только опаздывает.
    Это и поймал замер — без отсрочки поле переименования не переживало создания
    папки, сделанного секундой раньше.
  • Переключатель ветки вместо списка с номерами показывает ветки меню; текущая
    помечена словами, а не звёздочкой, которой в шрифте окна тоже нет.
  • Тест читает исходники окна и падает, если window.prompt появится снова: эту же
    ошибку уже сделали четыре раза.

Папки были помечены квадратами, потому что шрифт не знает этих знаков

  • Значок раскрытия был символом ▸/▾, а папка — ▣. Ни одного из трёх знаков в
    шрифте, которым окно рисует дерево, нет, и все они выводились пустыми квадратами:
    «какие-то квадраты» в отчёте — это отсутствующие глифы, а не украшение.
  • Теперь и то, и другое нарисовано: папка — тот же контур, что у вкладки
    проводника, а стрелка — шеврон, который повёрнут вправо у закрытой папки и вниз у
    открытой, как в VSCode. Направление говорит, куда папка двинется. Замер
    probe-explorer-create.cjs читает вычисленную трансформацию: у закрытой
    matrix(0, -1, 1, 0, 0, 0), у открытой matrix(1, 0, 0, 1, 0, 0).

Что ещё стоит знать

  • 196 тестов окна и 170 тестов ядра. Замеры, открывающие окно, запускайте по
    одному: два окна перекрывают друг друга, и кадры у фонового окна тормозятся.
  • Кроме этого замера поведение окна проверяют probe-explorer-live.cjs (дерево
    следует за диском, правый клик открывает меню), probe-run.cjs (вывод
    запущенного файла не только доходит, но и нарисован) и probe-chat-window.cjs
    (ассистент: шаги, предел с продолжением, остановка, переключатель рассуждений).