Ниже только реализованное в текущей линейке. Планы вынесены отдельной страницей, чтобы их нельзя было спутать с готовым.
01 · редактирование
Буфер — persistent Piece Table: текст не переписывается целиком, а собирается из кусков. Поэтому вставка в начало файла на 800 МБ стоит столько же, сколько вставка в конец.
Полноценный движок мягкого переноса с ленивой раскладкой поверх текстового буфера: раскладка считается только для видимой области, поэтому строка на несколько миллионов символов не подвешивает интерфейс.
мягкий перенос · ленивая раскладка · плавный зум колесом
02 · поиск и замена
Мы не пишем свой движок регулярных выражений: RE2 даёт предсказуемое время работы без катастрофического бэктрекинга.
Полноценная замена с регулярными выражениями, по выделению или по файлу.
Слово под курсором подсвечивается по всему видимому тексту.
Результаты сгруппированы по файлам, с переходом к строке.
Несколько корней в одном рабочем пространстве — поиск идёт по всем.
03 · синтаксис и языковой интеллект
.clangd генерируется автоматически.границы честно
Переходы к определению, hover и автодополнение по LSP пока не реализованы — они в планах.
04 · git и изменения
На libgit2: маркеры изменений у номеров строк, панель Source Control, стейджинг по отдельным ханкам, side-by-side diff и inline-peek к версии из HEAD.
05 · работа с файлами
Сохранение атомарное: на диске всегда либо старая целая версия, либо новая целая. Открытый файл заблокирован между процессами, а внешние изменения не применяются молча.
06 · оформление
07 · полный список
Формулировки взяты из описания версии. Если чего-то нет в этой таблице — этого нет в продукте.
| Область | Что есть сейчас |
|---|---|
| Скорость и большие файлы | Открытие через mmap от 100 МБ, фоновая индексация строк, явные режимы Normal / LargeText / HugeSlice |
| Редактирование | Мультикаретка, колоночное выделение, семантическое выделение, умные отступы с автоопределением, парные скобки, подсветка парной скобки и переход к ней, свёртка, закладки, история отмен на снимках |
| Перенос строк | Мягкий перенос с ленивой раскладкой поверх буфера |
| Поиск | Быстрый поиск, «найти и заменить» с RE2, подсветка вхождений слова под курсором, поиск по проекту с группировкой по файлам |
| Синтаксис | tree-sitter: C, C++, Go, JavaScript, Python, Markdown, HTML — инкрементальный разбор |
| Языковой интеллект | LSP: диагностика C/C++ через clangd, поддержка проектов Unreal Engine |
| Данные | Табличный режим CSV/TSV: радуга колонок, закреплённая шапка, крупные номера строк |
| Предпросмотр | Markdown с диаграммами Mermaid и HTML во встроенном веб-движке; превью HTML только для чтения, игнорирует скрипты и стили страницы и ничего не загружает из сети |
| Книги и документы | WYSIWYG для EPUB, FB2, RTF: лист, оглавление, засечная типографика, масштаб. PDF: миниатюры страниц, извлечение текстового слоя |
| Rich-текст | Заголовки, списки, выравнивание, ссылки, изображения; экспорт в PDF, сохранение в EPUB, FB2, RTF |
| Изображения | Вкладка-просмотрщик: вписать в окно, 1:1, зум колесом, панорама; SVG тоже |
| Git | Маркеры изменений, Source Control с коммитами, стейджинг по ханкам, side-by-side diff, inline-peek к HEAD (libgit2) |
| Оформление | Тёмная и светлая темы, направления Slate и Graphite, акцентные цвета, раздельные шрифты, прозрачность окна, иконки типов файлов, сетка колонок для широких символов (иероглифы, эмодзи) |
| Язык интерфейса | Английский, русский или испанский — выбирается в настройках |
| Масштаб | Единый контрол 50–400%, режимы «по ширине» и «страница целиком», зум колесом |
| Плагины | API на чистом C ABI, SDK и шаблон; в комплекте пятнадцать плагинов |
| Кодировки | UTF-8, UTF-8 с BOM, UTF-16 LE/BE, Windows-1251, CP866, Windows-1252: определяются при открытии и сохраняются при записи; переоткрытие и преобразование из строки состояния; символ, которого нет в кодировке, останавливает сохранение с вопросом |
| Файлы | Атомарное сохранение, блокировка между процессами, уведомление о внешних изменениях, недавние файлы, мультикорневые пространства, вопрос перед открытием двоичного файла как текста, карантин для файлов, роняющих приложение |