TheThe0.5.0
The/Возможности

Всё, что работает в 0.4.x — без обещаний.

Ниже только реализованное в текущей линейке. Планы вынесены отдельной страницей, чтобы их нельзя было спутать с готовым.

01 · редактирование

Правка не зависит от того, где вы находитесь в файле.

Мультикаретка и колоночное выделение

Буфер — persistent Piece Table: текст не переписывается целиком, а собирается из кусков. Поэтому вставка в начало файла на 800 МБ стоит столько же, сколько вставка в конец.

  • Несколько карет одновременно, колоночный (блочный) режим выделения.
  • Умные отступы: табы или пробелы, с автоопределением по файлу.
  • Подсветка парных скобок, свёртка блоков, закладки.
  • Практически бесплатная история отмен на снимках — откат мгновенный.

Перенос строк, который не ломается на длинной строке

Полноценный движок мягкого переноса с ленивой раскладкой поверх текстового буфера: раскладка считается только для видимой области, поэтому строка на несколько миллионов символов не подвешивает интерфейс.

мягкий перенос · ленивая раскладка · плавный зум колесом

Мягкий перенос
ленивая раскладка
Единый масштаб
по ширине · страница
Колоночный режим
мультикаретка
Свёртка блоков
закладки

02 · поиск и замена

Регулярные выражения на RE2 — и поиск по всему проекту.

Мы не пишем свой движок регулярных выражений: RE2 даёт предсказуемое время работы без катастрофического бэктрекинга.

Найти и заменить

Полноценная замена с регулярными выражениями, по выделению или по файлу.

Подсветка вхождений

Слово под курсором подсвечивается по всему видимому тексту.

Поиск по проекту

Результаты сгруппированы по файлам, с переходом к строке.

Мультикорневые пространства

Несколько корней в одном рабочем пространстве — поиск идёт по всем.

03 · синтаксис и языковой интеллект

Подсветка переразбирает только то, что вы изменили.

tree-sitter и LSP вместо самодельных парсеров

  • Инкрементальный разбор: подсветка не тормозит на большом файле.
  • Языки: C, C++, Go, JavaScript, Python.
  • Диагностика C/C++ по LSP через clangd — подключается по желанию.
  • Проекты Unreal Engine: .clangd генерируется автоматически.

границы честно

Переходы к определению, hover и автодополнение по LSP пока не реализованы — они в планах.

04 · git и изменения

Коммит собирается там же, где правится текст.

На libgit2: маркеры изменений у номеров строк, панель Source Control, стейджинг по отдельным ханкам, side-by-side diff и inline-peek к версии из HEAD.

05 · работа с файлами

Файл не должен пострадать от того, что вы его открыли.

Сохранение атомарное: на диске всегда либо старая целая версия, либо новая целая. Открытый файл заблокирован между процессами, а внешние изменения не применяются молча.

06 · оформление

Два дизайн-направления, обе темы, ваши шрифты.

Slate — спокойное
radius 6 · строка 24px
Graphite — плотное
radius 3 · строка 20px
Акцентные цвета
на выбор
Раздельные шрифты
код · ui · панели
Прозрачность окна
vibrancy · mica / acrylic
Масштаб документов
и PDF

07 · полный список

Одной таблицей.

Формулировки взяты из описания версии 0.4.x. Если чего-то нет в этой таблице — этого нет в продукте.

ОбластьЧто есть сейчас
Скорость и большие файлыОткрытие через mmap от 100 МБ, фоновая индексация строк, явные режимы Normal / LargeText / HugeSlice
РедактированиеМультикаретка, колоночное выделение, умные отступы с автоопределением, парные скобки, свёртка, закладки, история отмен на снимках
Перенос строкМягкий перенос с ленивой раскладкой поверх буфера
ПоискБыстрый поиск, «найти и заменить» с RE2, подсветка вхождений слова под курсором, поиск по проекту с группировкой по файлам
Синтаксисtree-sitter: C, C++, Go, JavaScript, Python — инкрементальный разбор
Языковой интеллектLSP: диагностика C/C++ через clangd, поддержка проектов Unreal Engine
ДанныеТабличный режим CSV/TSV: радуга колонок, закреплённая шапка, крупные номера строк
MarkdownПредпросмотр с диаграммами Mermaid во встроенном веб-движке
Книги и документыWYSIWYG для EPUB, FB2, RTF: лист, оглавление, засечная типографика, масштаб. PDF: миниатюры страниц, извлечение текстового слоя
Rich-текстЗаголовки, списки, выравнивание, ссылки, изображения; экспорт в PDF, сохранение в EPUB, FB2, RTF
ИзображенияВстроенный просмотр, включая корректный рендер SVG
GitМаркеры изменений, Source Control с коммитами, стейджинг по ханкам, side-by-side diff, inline-peek к HEAD (libgit2)
ОформлениеТёмная и светлая темы, направления Slate и Graphite, акцентные цвета, раздельные шрифты, прозрачность окна
МасштабЕдиный контрол 50–400%, режимы «по ширине» и «страница целиком», зум колесом
ПлагиныAPI на чистом C ABI, SDK и шаблон; в комплекте восемь плагинов
ФайлыАтомарное сохранение, блокировка между процессами, уведомление о внешних изменениях, недавние файлы, мультикорневые пространства

Проверьте на своём файле.